
:root{font-family:Inter,ui-sans-serif,system-ui,Arial;color:#edf1ff;background:#0b1020}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 18%,#26355a 0,#111a30 45%,#090e1a 100%)}button{font:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:default}.app{max-width:1230px;margin:auto;padding:16px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-weight:900;letter-spacing:.06em}.brand small{display:block;color:#91a0c0;font-size:11px;letter-spacing:.14em;margin-top:4px}.btn{border:1px solid #657ba5;color:white;background:#223554;border-radius:12px;padding:11px 15px;font-weight:750}.btn.primary{background:linear-gradient(135deg,#fba32e,#e85e25);border-color:#ffbd6a;color:#231708}.notice{padding:10px 16px;min-height:45px;text-align:center;color:#e5eaf9;font-weight:650}.board{position:relative;border:1px solid #556c95;box-shadow:0 26px 75px #0007,inset 0 0 55px #4c618028;border-radius:23px;background:radial-gradient(ellipse at center,#314660 0%,#1a2c43 48%,#131b30 100%);padding:16px;overflow:hidden}.board:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 88px,#ffffff05 89px 90px);pointer-events:none}.hero{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;margin:4px auto 12px}.portrait{border:2px solid #8395b4;background:#1a2740;width:51px;height:51px;border-radius:50%;display:grid;place-items:center;font-size:27px}.hero .health{border-radius:20px;background:#6e2534;border:1px solid #d76172;padding:6px 11px;font-weight:900}.hero-label{font-weight:850}.sub{font-size:12px;color:#9cafd0}.lane{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(5px,1.3vw,15px);max-width:950px;margin:auto;min-height:174px;align-items:center}.slot{width:100%;max-width:152px;height:158px;margin:auto;border:2px dashed #8394aa48;border-radius:17px;background:#00000015;position:relative;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}.slot.can-drop{border-color:#ffc05b;background:#e58c232e}.slot.hover{background:#f69f4259;transform:translateY(-2px)}.slot.empty:after{content:'+';font-size:28px;color:#ffffff2b}.divider{height:15px;max-width:950px;margin:14px auto;background:linear-gradient(90deg,transparent,#c0e9ff30 35%,#b7dbf852 50%,#c0e9ff30 65%,transparent);border-radius:100%}.unit{width:100%;height:100%;border-radius:15px;position:relative;background:linear-gradient(160deg,#466e77 0%,#192a3e 55%,#101728 100%);border:2px solid #97bec7;box-shadow:0 8px 16px #0006;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;overflow:visible;cursor:pointer}.unit.fire{background:linear-gradient(160deg,#734531,#3c2429 64%,#121927);border-color:#ffb05d}.unit.water{border-color:#80c9ff}.unit.selected{outline:3px solid #ffcf60;outline-offset:3px}.unit.sleeping{filter:saturate(.65)}.unit .name{font-size:12px;font-weight:900;text-shadow:0 1px 3px black;margin-bottom:6px;z-index:3}.mini-3d{height:99px;width:100%;position:absolute;left:0;top:4px;overflow:hidden;border-radius:15px;pointer-events:none}.mini-3d canvas{width:100%;height:100%;display:block}.fallback-mini{height:100%;display:grid;place-items:center;font-size:64px;filter:drop-shadow(0 7px 3px #0008)}.stats{width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 8px 8px;z-index:3}.stat{background:#12233c;border:1px solid #8da6c4;border-radius:9px;padding:4px 8px;font-size:14px;font-weight:900}.hp{color:#ff8799}.atk{color:#ffd570}.unit.summon{animation:summon .65s cubic-bezier(.2,1.6,.4,1)}.unit.hit{animation:hit .3s ease}.unit.attacking{animation:attack .43s ease}.unit.ko{animation:ko .45s forwards}@keyframes summon{0%{transform:scale(.05) translateY(90px) rotate(-15deg);opacity:0;filter:brightness(5)}55%{filter:brightness(2.3)}100%{transform:scale(1);opacity:1;filter:brightness(1)}}@keyframes hit{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px);filter:brightness(2)}75%{transform:translateX(8px)}}@keyframes attack{0%,100%{transform:translateY(0)}50%{transform:translateY(-19px) scale(1.07)}}@keyframes ko{to{opacity:0;transform:translateY(35px) scale(.5);filter:grayscale(1)}}.particle{position:absolute;inset:20%;border-radius:50%;pointer-events:none;animation:burst .7s forwards;background:radial-gradient(circle,#ffe397aa,transparent 60%)}@keyframes burst{0%{transform:scale(.2);opacity:1}100%{transform:scale(2.8);opacity:0}}.player-row{display:flex;justify-content:space-between;align-items:center;max-width:950px;margin:15px auto 2px;gap:10px}.energy{font-weight:900;color:#8fcbff;border:1px solid #4486ae;background:#19364e;padding:10px 13px;border-radius:12px}.hand-area{display:flex;flex-direction:column;align-items:center;gap:10px;margin:14px auto}.hand{min-height:185px;display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}.hand-card{width:125px;height:168px;border-radius:14px;border:2px solid #ffbd5d;background:linear-gradient(155deg,#a65b37,#442b39 56%,#252038);box-shadow:0 9px 19px #0006;position:relative;padding:10px 7px;display:flex;flex-direction:column;align-items:center;text-align:center;user-select:none;touch-action:none;transition:transform .15s;cursor:grab}.hand-card.water{border-color:#7dcaff;background:linear-gradient(155deg,#337aa1,#233d60 55%,#222640)}.hand-card:hover{transform:translateY(-13px)}.hand-card.disabled{opacity:.43;cursor:not-allowed}.hand-card .orb{height:71px;width:85px;display:grid;place-items:center;font-size:49px}.hand-card .cost{position:absolute;top:-10px;left:-8px;border:2px solid #a8dcff;border-radius:50%;height:32px;width:32px;display:grid;place-items:center;background:#226fac;font-weight:900}.hand-card .card-name{font-weight:900;font-size:14px}.hand-card .card-description{font-size:10px;color:#ced9ea;margin-top:8px}.hand-card .card-stats{font-size:12px;font-weight:850;position:absolute;bottom:7px}.instructions{color:#b5c4dc;text-align:center;font-size:13px;line-height:1.6}.footer{color:#7f91ad;text-align:center;font-size:12px;margin:25px 0}.modal-cover{position:fixed;z-index:30;inset:0;background:#030914c9;display:flex;align-items:center;justify-content:center;padding:20px}.modal{max-width:480px;width:100%;text-align:center;padding:35px;background:linear-gradient(145deg,#243a59,#131d34);border:1px solid #8da5c5;border-radius:22px;box-shadow:0 30px 90px #000a}.modal h1{font-size:36px}.hidden{display:none!important}.pill{border-radius:50px;border:1px solid #8299b7;padding:6px 11px;font-size:12px;color:#bccbe4}@media(max-width:690px){.app{padding:8px}.top{padding:7px}.board{padding:8px;border-radius:15px}.lane{min-height:113px;gap:4px}.slot{height:105px;border-radius:10px}.unit{border-radius:9px}.unit .name{font-size:9px;margin-bottom:3px}.mini-3d{height:69px}.stats{padding:0 3px 4px}.stat{font-size:10px;padding:2px 3px}.hero{margin:5px auto}.portrait{width:37px;height:37px;font-size:20px}.hand-card{width:97px;height:143px;padding:9px 4px}.hand-card .orb{height:57px;font-size:38px}.hand-card .card-name{font-size:12px}.notice{font-size:12px;padding:9px}.btn{padding:9px}.pill{display:none}}

.enemy-hero{font:inherit;color:inherit;border:0;background:none;cursor:crosshair;padding:0}.enemy-hero:focus-visible{outline:3px solid #ffcf60;outline-offset:4px;border-radius:12px}.model-canvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:2;pointer-events:none}
.has-model .fallback-mini{visibility:hidden}
.unit.grass{background:linear-gradient(160deg,#416b46,#1d3a38 64%,#121927);border-color:#8ddd87}.hand-card.grass{border-color:#9bdf84;background:linear-gradient(155deg,#4f8d54,#294638 55%,#222640)}.unit-meta{position:absolute;top:4px;left:4px;right:4px;z-index:3;text-align:center;font-size:10px;font-weight:800;color:#f5f8ff;text-shadow:0 1px 3px #000;background:#0b1524aa;border-radius:7px;padding:2px}.unit.provoker{box-shadow:0 0 0 2px #94d8ff,0 8px 16px #0006}.unit.targetable,.enemy-hero.targetable{outline:3px solid #ffcf60;outline-offset:3px}.hand-card .card-description{line-height:1.3}@media(max-width:690px){.unit-meta{font-size:7px;padding:1px;top:1px}}
.unit{font:inherit;color:inherit;padding:0}.unit:focus-visible{outline:3px solid #ffcf60;outline-offset:3px}

/* Alpha 0.4 visual system */
body{background:radial-gradient(circle at 50% -10%,#415778 0,#152039 34%,#080e1b 78%);color:#f6f1e4}
.app{max-width:1280px;padding:20px clamp(12px,2.5vw,30px)}
.top{padding:10px 16px;margin-bottom:8px;border:1px solid #c7a66555;border-radius:16px;background:linear-gradient(110deg,#182942e8,#101b30e6);box-shadow:0 14px 36px #0005}
.brand{color:#fff2cf;text-shadow:0 2px 14px #d9a34e55;font-size:clamp(15px,2vw,22px)}
.brand small{color:#c9b783}
.notice{margin:0 auto 12px;max-width:900px;border:1px solid #bda06b55;border-radius:12px;background:#0d1a2bdc;box-shadow:inset 0 1px #ffffff13;color:#f6e8c8}
.board{background:linear-gradient(180deg,#0b1520a6 0%,#0b152080 33%,#0b152070 68%,#0b1520b8 100%),url('assets/battlefield.jpg') center 52%/cover no-repeat;border:2px solid #c9a967a8;box-shadow:0 24px 65px #000b,inset 0 0 0 3px #1b2b40,inset 0 0 65px #030917aa;padding:18px 18px 14px}
.board:before{background:linear-gradient(90deg,#0711217a,transparent 18%,transparent 82%,#0711217a)}
.hero{padding:6px 14px;border-radius:30px;background:#0a1626c9;border:1px solid #d5b77766;box-shadow:0 5px 20px #0006;max-width:max-content}
.enemy-hero{padding:6px 14px;background:#0a1626c9;border:1px solid #d5b77766}
.hero .health{background:linear-gradient(#842d3c,#5e1c2c);border-color:#f2a1a6;box-shadow:inset 0 1px #ffffff38}
.portrait{background:radial-gradient(circle at 30% 25%,#4f6680,#18253b);border-color:#d4b776}
.lane{min-height:184px}
.slot{height:166px;background:linear-gradient(180deg,#9db6cb0e,#07132272);border:2px dashed #dec18766;box-shadow:inset 0 0 28px #05101aa8}
.slot.can-drop{border-color:#f4c66b;background:#efad4438;box-shadow:inset 0 0 28px #ffbd4a40,0 0 14px #e8ad4b4d}
.divider{height:3px;margin:18px auto;background:linear-gradient(90deg,transparent,#fff2bfbb,transparent);box-shadow:0 0 18px #f6d58788}
.unit{border-width:2px;border-color:#c1d4e0;box-shadow:0 10px 22px #000a,inset 0 1px #ffffff44;background:linear-gradient(150deg,#34485f,#111c30)}
.unit.fire{border-color:#efaf62}.unit.water{border-color:#84d4f0}.unit.grass{border-color:#a8db86}
.unit .name{font-size:13px;letter-spacing:.02em;color:#fff4d7}
.unit-meta{background:#081522c7;border:1px solid #ffffff24}
.fallback-mini{font-size:0;overflow:hidden;border-radius:12px}
.fallback-mini img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 42%;filter:saturate(.96)}
.stats{padding:0 7px 7px}.stat{background:#0b192adf;border-color:#c5b4829c;min-width:43px}
.energy{background:linear-gradient(130deg,#214f72,#102d48);border-color:#90cdeb;box-shadow:0 0 15px #54b7ee42}
.hand-area{margin:17px auto 0;padding:18px 16px;border:1px solid #c9a96755;border-radius:18px;background:linear-gradient(180deg,#17243bda,#0d1527e8);box-shadow:0 15px 45px #0006}
.hand{gap:14px;min-height:230px}
.hand-card,.hand-card.water,.hand-card.grass{width:158px;height:220px;flex:0 0 158px;padding:8px;border:3px solid #d7b767;border-radius:13px;background:linear-gradient(150deg,#faf1d1 0%,#b68c53 20%,#4f3540 68%,#241d30 100%);box-shadow:0 2px 0 #fff4c186 inset,0 0 0 1px #5b3d1d,0 12px 24px #0009;text-align:left;display:flex;align-items:stretch;gap:4px;overflow:hidden;touch-action:pan-x;transition:transform .18s,box-shadow .18s}
.hand-card.water{background:linear-gradient(150deg,#e4f7fa 0%,#73bdd7 20%,#28567d 68%,#18283f 100%);border-color:#a8dbe8}
.hand-card.grass{background:linear-gradient(150deg,#f1f9d6 0%,#a4c870 20%,#386b4c 68%,#20352d 100%);border-color:#c2dc91}
.hand-card:hover{transform:translateY(-12px) rotate(-1deg);box-shadow:0 2px 0 #fff4c1a0 inset,0 0 0 1px #5b3d1d,0 18px 28px #000b,0 0 20px #f4d48c5c}
.hand-card.disabled{opacity:.52;filter:saturate(.55)}
.card-top{height:25px;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:0 2px}
.hand-card .card-name{font-size:14px;color:#fff8dd;text-shadow:0 1px 3px #0b142b;font-weight:900;white-space:nowrap}
.hand-card .cost{position:static;flex:0 0 auto;width:auto;height:24px;padding:1px 6px;border-radius:20px;font-size:12px;line-height:19px;background:#16669b;border:1px solid #d9f2ff;box-shadow:0 1px 5px #0008}
.card-art{height:105px;flex:0 0 105px;border:2px solid #f9eac4;border-radius:6px;overflow:hidden;box-shadow:0 0 0 1px #56472a,0 3px 8px #0008;background:#12223a}
.card-art img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 43%}
.card-type{font-size:11px;font-weight:900;color:#fff3cd;white-space:nowrap;text-shadow:0 1px 3px #000}
.hand-card .card-description{font-size:10px;line-height:1.25;color:#f1e9da;margin:0;min-height:23px}
.hand-card .card-stats{position:static;margin-top:auto;display:flex;justify-content:space-between;gap:4px;font-size:12px;color:#fff7dc}
.card-stats span{padding:2px 8px;border:1px solid #ffffff64;border-radius:7px;background:#091728a8;box-shadow:inset 0 1px #ffffff25}
.btn{border-color:#bba46c;background:linear-gradient(#30445d,#1b2d46);box-shadow:inset 0 1px #ffffff24,0 3px 10px #0005}
.btn.primary{background:linear-gradient(#ffd17b,#da803b);border-color:#ffe0a6;box-shadow:inset 0 1px #fff6d6,0 4px 16px #bd6f2559}
@media(max-width:690px){.app{padding:8px}.top{padding:8px 10px}.board{padding:10px 5px;background-position:center}.lane{min-height:117px}.slot{height:108px}.unit .name{font-size:9px}.unit-meta{font-size:7px}.mini-3d{height:70px}.fallback-mini{border-radius:7px}.stats{padding:0 3px 3px}.stat{min-width:0;font-size:10px}.hero{padding:4px 7px}.hand-area{padding:13px 8px}.hand{width:100%;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;min-height:202px;padding:6px 3px 10px;scroll-snap-type:x proximity}.hand-card,.hand-card.water,.hand-card.grass{width:132px;height:188px;flex-basis:132px;scroll-snap-align:center;padding:6px}.card-art{height:82px;flex-basis:82px}.hand-card .card-name{font-size:12px}.card-type{font-size:9px}.hand-card .card-description{font-size:9px;min-height:22px}.card-stats span{padding:2px 5px}}

/* Official Pokédex art sits on color fields rather than being cropped. */
.card-art.fire,.fallback-mini.fire{background:radial-gradient(circle at 50% 40%,#ffdd9d,#de7539 58%,#683229)}
.card-art.water,.fallback-mini.water{background:radial-gradient(circle at 50% 40%,#d6f5ff,#59a9ce 58%,#285078)}
.card-art.grass,.fallback-mini.grass{background:radial-gradient(circle at 50% 40%,#eff6b6,#88bd76 58%,#325d46)}
.card-art img,.fallback-mini img{object-fit:contain;object-position:center;filter:drop-shadow(0 4px 4px #0b152d80)}
.card-art.has-model img{visibility:hidden}
.top-actions{display:flex;align-items:center;gap:10px}.visual-status{padding:6px 10px;border:1px solid #8f9bad88;border-radius:20px;background:#112239;color:#aebbd0;font-size:11px;font-weight:800;white-space:nowrap}.visual-status.active{color:#b9efbe;border-color:#78c881a0;background:#183726}@media(max-width:460px){.visual-status{font-size:9px;padding:5px 7px}.top-actions{gap:5px}}

/* Lightweight 2D motion preserves the official artwork exactly. */
.unit-art{height:99px;width:100%;position:absolute;left:0;top:4px;overflow:hidden;border-radius:12px;pointer-events:none}
.unit-portrait{height:100%;width:100%;position:relative;display:grid;place-items:center;overflow:hidden}



.unit-portrait img{height:100%;width:100%;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 5px 3px #0b152d8c)}
.unit-art.fire .unit-portrait{background:radial-gradient(circle at 50% 46%,#ffdc9b,#bd6538 70%,#5f302b)}
.unit-art.water .unit-portrait{background:radial-gradient(circle at 50% 46%,#d6f4ff,#4d9bc3 70%,#274b72)}
.unit-art.grass .unit-portrait{background:radial-gradient(circle at 50% 46%,#eef5bc,#79aa71 70%,#355d48)}
.card-art{position:relative;isolation:isolate}
.card-art img{position:relative;z-index:1}
.card-art:after,.unit-portrait:after{content:'';position:absolute;left:25%;right:25%;bottom:5px;height:9px;background:#07142478;border-radius:50%;filter:blur(5px);animation:shadow-breathe 3.4s ease-in-out infinite}
.card-art img,.unit-art img{transform-origin:50% 82%;will-change:transform;animation:pokemon-idle 3.4s ease-in-out infinite}
.hand-card.water .card-art img,.unit.water .unit-art img{animation-name:pokemon-idle-water;animation-duration:3.9s}
.hand-card.grass .card-art img,.unit.grass .unit-art img{animation-name:pokemon-idle-grass;animation-duration:4.2s}
.hand-card:nth-child(even) .card-art img,.slot:nth-child(even) .unit-art img{animation-delay:-1.5s}
.unit.attacking .unit-art img{animation:pokemon-lunge .43s ease-in-out 1}
.unit.hit .unit-art img{animation:pokemon-recoil .34s ease-in-out 1}
@keyframes pokemon-idle{0%,100%{transform:translateY(2px) rotate(-2deg)}50%{transform:translateY(-6px) rotate(2deg)}}
@keyframes pokemon-idle-water{0%,100%{transform:translateY(1px) rotate(2deg)}50%{transform:translateY(-5px) rotate(-2deg)}}
@keyframes pokemon-idle-grass{0%,100%{transform:translateY(2px) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}
@keyframes shadow-breathe{0%,100%{opacity:.65;transform:scaleX(1)}50%{opacity:.35;transform:scaleX(.72)}}
@keyframes pokemon-lunge{0%,100%{transform:translate(0,0) scale(1)}45%{transform:translate(0,-15px) scale(1.13)}}
@keyframes pokemon-recoil{0%,100%{transform:translateX(0)}35%{transform:translateX(-9px) rotate(-5deg)}70%{transform:translateX(6px) rotate(3deg)}}
@media(max-width:690px){.unit-art{height:70px;border-radius:7px}}
@media(prefers-reduced-motion:reduce){.card-art img,.unit-art img,.card-art:after,.unit-portrait:after{animation:none;will-change:auto}}

/* Card-to-field summon and combat feedback. Effects use transforms and opacity only. */
.hand-card.chosen{outline:3px solid #ffe08a;outline-offset:3px;box-shadow:0 0 0 1px #fff9d7,0 0 28px #ffcb6fa8,0 16px 28px #0009;transform:translateY(-10px)}
.unit.materializing{opacity:0}
.summon-layer{position:fixed;inset:0;z-index:60;pointer-events:none;overflow:hidden}
.summon-card-ghost{z-index:1;transform-origin:center center;box-shadow:0 0 38px #ffe19c,0 18px 42px #000b!important}
.summon-creature{position:fixed;z-index:2;object-fit:contain;transform-origin:center 80%;pointer-events:none}
.pokeball{position:fixed;z-index:3;width:48px;height:48px;pointer-events:none;filter:drop-shadow(0 4px 8px #000b) drop-shadow(0 0 12px #fff8)}
.pokeball-top,.pokeball-bottom{position:absolute;left:0;width:48px;height:24px;border:3px solid #20242d;overflow:hidden}
.pokeball-top{top:0;border-radius:26px 26px 0 0;background:linear-gradient(150deg,#ff8882 3%,#e62c37 43%,#a51026 100%);border-bottom:0;transform-origin:bottom center}
.pokeball-bottom{bottom:0;border-radius:0 0 26px 26px;background:linear-gradient(155deg,#fff 0%,#e5e9ef 75%,#a7b1bf 100%);border-top:0;transform-origin:top center}
.pokeball-band{position:absolute;left:1px;top:21px;width:46px;height:6px;background:#20242d}
.pokeball-button{position:absolute;left:17px;top:17px;width:14px;height:14px;border:3px solid #20242d;border-radius:50%;background:#f9ffff;box-shadow:0 0 9px #fff}
.pokeball.opening .pokeball-top{animation:ball-top-open .26s ease-out forwards}
.pokeball.opening .pokeball-bottom{animation:ball-bottom-open .26s ease-out forwards}
.pokeball.opening .pokeball-band,.pokeball.opening .pokeball-button{animation:ball-center-flash .25s ease-out forwards}
@keyframes ball-top-open{to{transform:translateY(-20px) rotate(-28deg);opacity:0}}
@keyframes ball-bottom-open{to{transform:translateY(20px) rotate(28deg);opacity:0}}
@keyframes ball-center-flash{40%{filter:brightness(5) drop-shadow(0 0 20px #fff)}to{opacity:0}}
.summon-burst{position:fixed;width:0;height:0;z-index:61;pointer-events:none}
.summon-burst:before{content:'';position:absolute;left:-18px;top:-18px;width:36px;height:36px;border:4px solid #ffe9a5;border-radius:50%;box-shadow:0 0 24px 10px #ffcf7baa;animation:summon-ring .7s ease-out forwards}
.summon-burst.water:before{border-color:#a6e9ff;box-shadow:0 0 24px 10px #77d3ff99}
.summon-burst.grass:before{border-color:#d8f3aa;box-shadow:0 0 24px 10px #9cdc8899}
.summon-burst i{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:#ffe49a;box-shadow:0 0 11px #fff6ca;animation:summon-spark .75s ease-out forwards}
.summon-burst.water i{background:#9ce9ff;box-shadow:0 0 11px #c7f5ff}
.summon-burst.grass i{background:#bced9b;box-shadow:0 0 11px #e0ffd1}
.damage-pop{position:fixed;z-index:70;pointer-events:none;transform:translate(-50%,-50%);font-size:27px;font-weight:1000;color:#ff8b94;text-shadow:0 2px 2px #26111a,0 0 16px #ff364e;white-space:nowrap;animation:damage-rise .9s ease-out forwards}
.damage-pop.weak{font-size:24px;color:#ffe286;text-shadow:0 2px 2px #34220b,0 0 20px #ffc75b}
.damage-pop.resisted{font-size:20px;color:#9be5ff;text-shadow:0 2px 2px #0b2334,0 0 16px #59c7ee}
.battle-banner{position:fixed;left:50%;top:42%;z-index:55;pointer-events:none;white-space:nowrap;padding:12px 28px;border:2px solid #f6d78d;border-radius:12px;background:linear-gradient(90deg,#10233ff0,#304868f0,#10233ff0);box-shadow:0 0 45px #f0bd6666,0 16px 40px #000b;color:#fff5cf;font-size:clamp(18px,4vw,32px);font-weight:1000;letter-spacing:.12em;text-shadow:0 2px 8px #000;animation:battle-banner 1.1s ease-in-out forwards}
@keyframes summon-ring{0%{transform:scale(.3);opacity:1}100%{transform:scale(6);opacity:0}}
@keyframes summon-spark{0%{transform:translate(0,0) scale(.4);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(.25);opacity:0}}
@keyframes damage-rise{0%{transform:translate(-50%,-20%) scale(.4);opacity:0}20%{transform:translate(-50%,-55%) scale(1.35);opacity:1}100%{transform:translate(-50%,-170%) scale(.9);opacity:0}}
@keyframes battle-banner{0%{transform:translate(-50%,-25%) scale(.55);opacity:0}20%{transform:translate(-50%,-50%) scale(1.06);opacity:1}68%{transform:translate(-50%,-50%) scale(1);opacity:1}100%{transform:translate(-50%,-75%) scale(1.04);opacity:0}}
@media(prefers-reduced-motion:reduce){.summon-burst:before,.summon-burst i,.damage-pop,.battle-banner{animation:none}.summon-burst,.damage-pop,.battle-banner{display:none}}

/* Alpha 1.0: clearer trainer HUD, choices and touch controls. */
.portrait{overflow:hidden;padding:0;flex:0 0 auto}
.portrait img{display:block;width:100%;height:100%;object-fit:cover}
.avatar-button{position:relative;border:0;background:none;padding:0;border-radius:50%;display:grid;place-items:center}
.avatar-button:focus-visible,.avatar-choice:focus-visible,.slot:focus-visible,.hand-card:focus-visible{outline:3px solid #ffe18f;outline-offset:3px}
.avatar-edit{position:absolute;right:-6px;bottom:-4px;width:21px;height:21px;border:1px solid #f5d89b;border-radius:50%;background:#233a56;color:#fff3ce;font-size:13px;line-height:18px;text-align:center}
.player-row{width:100%;max-width:950px}
.player-row .hero{margin:0;justify-content:flex-start}
.hud-stats{display:flex;align-items:center;gap:8px}
.turn-pill{padding:9px 12px;border-radius:11px;background:#1c4d36;border:1px solid #70cd8b;color:#d3ffde;font-size:12px;font-weight:900;white-space:nowrap;box-shadow:0 0 16px #60ce793b}
.turn-pill.waiting{background:#44392c;border-color:#c9ad77;color:#f3dfb5;box-shadow:none}
.hand-area{gap:0;align-items:stretch;width:100%;max-width:1100px}
.hand-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 3px 8px}
.hand-heading strong{display:block;color:#fff2cf;font-size:16px}
.hand-heading small{display:block;color:#b9cbe0;font-size:12px;margin-top:2px}
.btn.subtle{padding:7px 11px;background:#29384d;border-color:#8fa4b8;font-size:12px;white-space:nowrap}
.hand{width:100%;min-height:224px}
.action-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border-top:1px solid #c4ad7866;padding:12px 4px 0;color:#b9cbe0;font-size:12px;font-weight:700}
.action-bar .btn.primary{min-width:185px;min-height:44px;font-size:14px}
.avatar-modal h2{margin:0 0 8px;color:#fff2ce}
.avatar-modal p{margin:0 0 18px;color:#bdcee0}
.avatar-options{display:flex;justify-content:center;gap:12px;margin-bottom:20px}
.avatar-choice{display:grid;gap:5px;justify-items:center;min-width:88px;padding:8px;border:2px solid #657c9a;border-radius:12px;background:#1b2b43;color:#f2f4fb;font-weight:800}
.avatar-choice.active{border-color:#ffd47e;background:#3b3940;box-shadow:0 0 20px #ffcc6b55}
.avatar-choice img{width:64px;height:64px;border-radius:9px}
.name-field{display:grid;gap:6px;text-align:left;color:#e9e3d4;font-size:13px;font-weight:800;margin:0 auto 18px;max-width:300px}
.name-field input{width:100%;padding:11px 12px;border:1px solid #8ea9bf;border-radius:9px;background:#0d1b2d;color:white;font:inherit}
.name-field input:focus{outline:2px solid #ffd47e}
@media(max-width:690px){
  .top{gap:6px}.brand{font-size:14px}.brand small{font-size:9px}.visual-status{display:none}
  .board{padding:8px 5px}.player-row{gap:6px;margin-top:8px}.player-row .hero{padding:4px 6px;gap:6px}.player-row .hero-label{font-size:11px}.player-row .sub{display:none}.hero .health{font-size:11px;padding:4px 6px}
  .hud-stats{gap:4px;flex-wrap:wrap;justify-content:flex-end}.turn-pill,.energy{font-size:10px;padding:5px 7px}
  .hand-area{position:sticky;bottom:0;z-index:20;margin:8px auto 0;padding:9px 8px 7px;border-radius:14px 14px 0 0;background:linear-gradient(180deg,#1b2a42f7,#0c1627fa);box-shadow:0 -10px 32px #000b}
  .hand-heading{padding-bottom:4px}.hand-heading strong{font-size:13px}.hand-heading small{font-size:10px;max-width:230px}.btn.subtle{font-size:10px;padding:5px 7px}
  .hand{min-height:154px;padding:2px 3px 5px;gap:8px}.hand-card,.hand-card.water,.hand-card.grass{width:110px;height:150px;flex-basis:110px}.card-art{height:60px;flex-basis:60px}.hand-card .card-description{display:none}.hand-card .card-stats{font-size:10px}.hand-card .card-name{font-size:11px}
  .action-bar{padding-top:7px}.action-bar .btn.primary{min-width:140px;min-height:39px}.instructions{font-size:11px;padding:0 5px}.footer{margin:12px 0}
}

/* Alpha 1.1: readable board states and distinct card families. */
.unit{isolation:isolate}
.unit-badges{position:absolute;z-index:5;top:3px;left:3px;right:3px;display:flex;flex-wrap:wrap;justify-content:center;gap:2px;pointer-events:none}
.unit-badge{padding:2px 4px;border-radius:5px;background:#223c58e8;border:1px solid #c8dcf6;color:white;font-size:9px;font-weight:1000;line-height:1.1;text-shadow:0 1px 2px #000;white-space:nowrap}
.unit-badge.provoke{background:#295c96;border-color:#c1e7ff;box-shadow:0 0 12px #91cfff}
.unit-badge.boosted{background:#805b11;border-color:#ffe37f;box-shadow:0 0 12px #ffdd62}
.unit-badge.shielded{background:#44616f;border-color:#c2eef8;box-shadow:0 0 12px #a4edff}
.unit-badge.evolved{background:#583f8c;border-color:#d8c0ff}
.unit-badge.burned{background:#8a301e;border-color:#ffb66c;box-shadow:0 0 12px #ff682e}
.unit-badge.trait-fire{background:#773527;border-color:#ffbc6c;box-shadow:0 0 10px #ff853c88}
.unit-badge.trait-grass{background:#315e40;border-color:#b9e995;box-shadow:0 0 10px #8ed76b77}
.unit.burning .unit-art{box-shadow:inset 0 0 20px #ff713566,0 0 15px #ff713577}
.unit.provoker{box-shadow:0 0 0 2px #96dbff,0 0 20px #5ebdff8a,0 8px 16px #0007}
.unit.can-use{outline:3px solid #8cf3ac;outline-offset:2px;cursor:pointer}
.unit-weak,.unit-ready{position:absolute;z-index:4;bottom:51px;padding:2px 4px;border-radius:5px;background:#081627da;color:#e8e8e2;font-size:9px;font-weight:900;line-height:1.2;white-space:nowrap}
.unit-weak{left:4px;color:#ffcebe}
.unit-ready{right:4px;color:#c5d2dd}
.unit-ready.active{color:#baf4c1;background:#194d32e8}
.unit .name{z-index:4;margin-bottom:3px;background:#0c1c2dca;border-radius:5px;padding:1px 4px}
.hp-meter{z-index:4;width:calc(100% - 14px);height:5px;margin:0 7px 4px;border-radius:5px;background:#401d2b;box-shadow:inset 0 1px 3px #000a;overflow:hidden}
.hp-meter span{display:block;height:100%;background:linear-gradient(90deg,#47b875,#a8ed9b);border-radius:5px;transition:width .25s}
.hp-meter.low span{background:linear-gradient(90deg,#d64f49,#ffbb67)}
.hand-card.item{border-color:#d8c5eb;background:linear-gradient(155deg,#f5e9ff,#7754a1 28%,#2d2b50 75%)}
.card-art.item{display:grid;place-items:center;background:radial-gradient(circle,#b69ce0,#4d3771 67%,#26223f)}
.item-symbol{font-size:70px;line-height:1;filter:drop-shadow(0 8px 8px #1a1038);animation:item-float 3s ease-in-out infinite}
.hand-card.item .card-stats span{width:100%;text-align:center}
.hand-card.item .card-type{color:#ecd6ff}
@keyframes item-float{50%{transform:translateY(-8px) rotate(5deg)}}
@media(max-width:690px){.unit-badge{font-size:8px;padding:1px 2px}.unit-weak,.unit-ready{font-size:7px;bottom:35px;padding:1px 2px}.unit .name{font-size:8px;padding:0 2px;margin-bottom:1px}.hp-meter{height:3px;margin-bottom:2px}.item-symbol{font-size:44px}}
@media(prefers-reduced-motion:reduce){.item-symbol{animation:none}}
.board-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:5px 12px;max-width:950px;margin:10px auto 0;color:#f3e9cf;font-size:10px;font-weight:800;text-shadow:0 1px 3px #000}
.board-legend span{padding:3px 7px;border:1px solid #cbb78377;border-radius:6px;background:#09172bc7}
@media(max-width:690px){.board-legend{gap:3px;font-size:8px;margin-top:7px}.board-legend span{padding:2px 4px}}

/* Alpha 1.2: playable units and a fanned, inspectable hand. */
#player-lane .unit.ready{border-color:#9df6ae;box-shadow:0 0 0 2px #54d97a,0 0 22px #64e38d96,0 8px 18px #0009;filter:saturate(1.18) brightness(1.08)}
#player-lane .unit.sleeping:not(.can-use){filter:grayscale(.5) saturate(.5) brightness(.7);box-shadow:0 7px 14px #0009}
#player-lane .unit.ready .unit-ready{background:#156b3ae8;color:#e5ffe8;border-color:#b4f8c4;box-shadow:0 0 13px #70ee94}
#player-lane .unit.selected{outline:3px solid #ffe189;outline-offset:4px;box-shadow:0 0 0 2px #ffce59,0 0 28px #ffd465ad}
#player-lane .unit.can-use{filter:none;box-shadow:0 0 0 2px #a4ffd0,0 0 23px #7fffad99}
#cpu-lane .unit.ready{border-color:#a3e8c2;box-shadow:0 0 0 1px #6bcc93,0 0 14px #8fe5a76e,0 8px 16px #0008}
#cpu-lane .unit.sleeping{filter:grayscale(.4) saturate(.6) brightness(.76)}
.hand-area{position:relative;z-index:12;overflow:visible}
.hand{min-height:290px;align-items:flex-end;flex-wrap:nowrap;gap:0;overflow:visible;padding:48px 30px 15px}
.hand-card,.hand-card.water,.hand-card.grass,.hand-card.item{margin-left:-46px;transform:translateY(var(--fan-drop,0px)) rotate(var(--fan-angle,0deg));transform-origin:50% 90%;transition:transform .22s cubic-bezier(.2,.75,.2,1),box-shadow .22s,filter .22s,opacity .22s;flex-shrink:0}
.hand-card:first-child{margin-left:0}
.hand-card.chosen,.hand-card.water.chosen,.hand-card.grass.chosen,.hand-card.item.chosen{z-index:40;transform:translateY(-26px) scale(1.12) rotate(0deg)}
@media(hover:hover) and (pointer:fine){
  .hand-card:hover,.hand-card.water:hover,.hand-card.grass:hover,.hand-card.item:hover,.hand-card.disabled:hover{z-index:60;transform:translateY(-48px) scale(1.28) rotate(0deg);opacity:1;filter:none;box-shadow:0 2px 0 #fff4c1a0 inset,0 0 0 1px #5b3d1d,0 25px 48px #000d,0 0 25px #f4d48c8a}
}
@media(max-width:690px){
  .hand{min-height:178px;align-items:flex-end;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;gap:0;padding:13px 12px 13px;scroll-snap-type:x proximity}
  .hand-card,.hand-card.water,.hand-card.grass,.hand-card.item{margin-left:-17px;transform:translateY(var(--fan-drop,0px)) rotate(var(--fan-angle,0deg))}
  .hand-card:first-child{margin-left:0}
  .hand-card.chosen,.hand-card.water.chosen,.hand-card.grass.chosen,.hand-card.item.chosen{transform:translateY(-8px) scale(1.04) rotate(0deg)}
  #player-lane .unit.ready{box-shadow:0 0 0 1px #54d97a,0 0 10px #64e38d96,0 5px 10px #0009}
}
@media(prefers-reduced-motion:reduce){.hand-card,.hand-card.water,.hand-card.grass,.hand-card.item{transition:none}}

/* Alpha 1.3 campaign map and deck builder. */
.menu-screen{max-width:1420px;margin:auto;padding:28px clamp(12px,3vw,40px) 45px;color:#f5efdf}
.menu-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;padding:23px 28px;border:1px solid #d7ba7a88;border-radius:22px;background:linear-gradient(120deg,#18304ce9,#142038e9 55%,#413049d9),url('assets/battlefield.jpg') center/cover;box-shadow:0 20px 55px #0009}
.menu-kicker{color:#f5d485;font-size:11px;font-weight:1000;letter-spacing:.2em}
.menu-header h1{font-size:clamp(28px,4vw,52px);line-height:1.05;margin:8px 0;color:#fff2c9;text-shadow:0 4px 18px #000}
.menu-header p{margin:0;color:#e4d6be;font-size:14px}
.menu-progress{padding:10px 15px;white-space:nowrap;border:1px solid #f5d894;border-radius:30px;background:#17283fe8;color:#ffe4a1;font-weight:900;box-shadow:0 0 20px #d9aa5d48}
.campaign-layout{display:grid;grid-template-columns:minmax(310px,370px) minmax(0,1fr);gap:18px;align-items:start}
.campaign-panel,.deck-panel{border:1px solid #cbb37b77;border-radius:20px;padding:20px;background:linear-gradient(155deg,#1b2d46f5,#111d32f6);box-shadow:0 16px 38px #0008}
.campaign-panel{position:sticky;top:16px}
.section-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:15px}
.section-heading>span{display:grid;place-items:center;min-width:36px;height:36px;border:1px solid #e2c585;border-radius:10px;color:#ffe3a1;background:#6a4d2b;font-weight:1000}
.section-heading h2{font-size:22px;margin:0 0 3px;color:#fff1c8}
.section-heading h2 span{font-size:15px;color:#f7d087}
.section-heading p{margin:0;color:#adbed0;font-size:12px;line-height:1.4}
.trainer-map{display:grid;gap:10px}
.trainer-stage{width:100%;display:flex;align-items:center;gap:10px;padding:10px;border:2px solid #66798c;border-radius:14px;color:#f3f4f4;background:linear-gradient(100deg,#253951,#17273d);text-align:left;box-shadow:inset 0 1px #ffffff22;transition:transform .16s,border-color .16s,box-shadow .16s}
.trainer-stage:not(:disabled):hover{transform:translateX(4px);border-color:#f2c870}
.trainer-stage.selected{border-color:#ffce72;box-shadow:0 0 20px #f0b9546e,inset 0 1px #ffffff44}
.trainer-stage.fire{border-left:5px solid #f3a160}.trainer-stage.water{border-left:5px solid #7dcaf1}.trainer-stage.grass{border-left:5px solid #a5dc80}.trainer-stage.mixed{border-left:5px solid #dfc085}
.trainer-stage.won{background:linear-gradient(100deg,#2a4844,#172b39)}
.trainer-stage:disabled{opacity:.52;cursor:not-allowed}
.trainer-stage img{width:52px;height:52px;border-radius:10px;border:1px solid #d2bd88;object-fit:cover}
.stage-number{align-self:flex-start;color:#c7a971;font-size:11px;font-weight:900}
.stage-copy{display:grid;gap:1px;min-width:0;flex:1}
.stage-copy strong{font-size:15px;color:#fff2d2}.stage-copy small{font-size:11px;color:#d7dce7}.stage-copy em{font-size:10px;color:#aebed2;font-style:normal;line-height:1.25}
.stage-medal{display:grid;justify-items:center;gap:2px;min-width:62px;font-size:25px;text-align:center}.stage-medal small{font-size:9px;font-weight:800;color:#dccaa5}
.campaign-start,.deck-start{width:100%;margin-top:16px;min-height:47px;font-size:15px}
.deck-feedback{padding:10px 12px;margin:0 0 12px;border:1px solid #ae9c6c77;border-radius:9px;background:#29354b;color:#f1e3bd;font-size:12px;font-weight:750}
.deck-preview{display:flex;gap:6px;flex-wrap:wrap;min-height:44px;margin-bottom:17px}
.deck-chip{display:flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #9ab1bd;border-radius:8px;background:#243b50;color:#f6f0de;font-size:11px}
.deck-chip.fire{border-color:#edab7b}.deck-chip.water{border-color:#91d0ed}.deck-chip.grass{border-color:#a6d89e}.deck-chip.item{border-color:#d0b8e4}
.deck-chip img{width:21px;height:21px;object-fit:contain}.deck-chip span{font-size:16px}.deck-chip b{font-weight:750}.deck-chip strong{color:#ffe098}
.deck-panel h3{margin:0 0 12px;color:#e7d5ad;font-size:14px;letter-spacing:.06em}
.collection{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.collection-card{display:grid;grid-template-rows:90px auto auto;min-height:175px;border:2px solid #b79269;border-radius:12px;background:linear-gradient(#48404c,#242c41);overflow:hidden;box-shadow:0 6px 17px #0006}
.collection-card.water{border-color:#82c8e9;background:linear-gradient(#395c7a,#222b45)}.collection-card.grass{border-color:#9ed28d;background:linear-gradient(#4a7253,#253845)}.collection-card.item{border-color:#bf9cdd;background:linear-gradient(#615078,#2d294b)}
.collection-art{display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#ffffff58,transparent 65%);overflow:hidden}
.collection-art img{width:100%;height:90px;object-fit:contain;filter:drop-shadow(0 4px 4px #0008)}.collection-art span{font-size:49px}
.collection-info{display:grid;gap:2px;padding:7px 9px}.collection-info strong{font-size:12px;color:#fff4d9}.collection-info small{font-size:10px;color:#d8e2eb;line-height:1.2;min-height:25px}
.collection-controls{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 7px;color:#ffe9b3;font-size:12px;font-weight:900}
.collection-controls button{width:27px;height:27px;padding:0;border:1px solid #f0d18a;border-radius:7px;background:#26384c;color:#fff4cd;font-size:18px;font-weight:900;line-height:1}
.collection-controls button:not(:disabled):hover{background:#c9853c;color:#20180d}
.end-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.medal-reward{padding:12px;border:1px solid #efcd76;border-radius:12px;background:#463c2e;color:#ffe6a3;font-weight:900}
.medal-reward:not(.hidden){animation:medal-appear .65s cubic-bezier(.18,1.5,.45,1)}
@keyframes medal-appear{from{transform:scale(.55);opacity:0;box-shadow:0 0 0 #f8d76d00}to{transform:scale(1);opacity:1;box-shadow:0 0 26px #f8d76d66}}
@media(max-width:900px){.campaign-layout{grid-template-columns:1fr}.campaign-panel{position:static}.collection{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}}
@media(max-width:600px){.menu-screen{padding:8px 8px 25px}.menu-header{padding:18px;align-items:flex-start;flex-direction:column;margin-bottom:10px}.menu-header p{font-size:12px}.campaign-layout{gap:10px}.campaign-panel,.deck-panel{padding:13px;border-radius:14px}.collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.collection-card{min-height:160px;grid-template-rows:76px auto auto}.collection-art img{height:76px}.stage-medal{min-width:52px}.trainer-stage img{width:43px;height:43px}.stage-copy em{display:none}.deck-chip{font-size:10px}}
@media(max-width:600px){.enemy-hero .hero-label{font-size:11px;max-width:170px}.enemy-hero .sub{font-size:9px}.end-actions .btn{flex:1 1 135px}}
@media(prefers-reduced-motion:reduce){.medal-reward:not(.hidden){animation:none}}

/* Alpha 1.4: physical card faces in the collection and hand. */
.collection{grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:13px}
.collection-card{--card-accent:#e9b475;display:flex;flex-direction:column;min-height:292px;padding:5px;border:3px solid var(--card-accent);border-radius:15px;background:linear-gradient(155deg,#986c3e,#302337 58%,#111c2d);box-shadow:inset 0 1px #fff7d488,0 9px 20px #0009}
.collection-card.water{--card-accent:#91d6ef;background:linear-gradient(155deg,#6ebad9,#233c61 58%,#111c2d)}
.collection-card.grass{--card-accent:#b8db8f;background:linear-gradient(155deg,#a9c979,#315442 58%,#111c2d)}
.collection-card.item{--card-accent:#d8b9f2;background:linear-gradient(155deg,#ae86ca,#4a355d 58%,#171b35)}
.collection-face{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0;padding:6px;border:1px solid #fff7d677;border-radius:9px;background:linear-gradient(165deg,#ffffff21,#0b14224a 42%,#06111cb0);box-shadow:inset 0 1px #fff8df4d}
.collection-card .card-top,.hand-card .card-top{height:auto;min-height:23px;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:0 1px}
.collection-card .card-name,.hand-card .card-name{font-weight:1000;font-size:14px;color:#fff9e7;text-shadow:0 2px 4px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.collection-card .cost,.hand-card .cost{position:static;flex:0 0 auto;border:1px solid #f4e6b4;background:#183751;color:#fff8d8;border-radius:30px;padding:2px 6px;height:auto;width:auto;font-size:11px;font-weight:900;line-height:1.25;box-shadow:0 2px 5px #0008}
.card-stage{align-self:flex-start;padding:2px 6px;border:1px solid #f8eac174;border-radius:5px;background:#0b1826a8;color:#ffe9a9;font-size:9px;font-weight:1000;letter-spacing:.08em;line-height:1.2}
.collection-card .card-art,.hand-card .card-art{width:100%;height:103px;flex:0 0 103px;display:block;border:2px solid #f7e6ac;border-radius:7px;overflow:hidden;box-shadow:0 0 0 1px #3a2f28,0 3px 9px #0009}
.collection-card .card-art img,.hand-card .card-art img{width:100%;height:100%;object-fit:contain;display:block}
.collection-card .card-art.item,.hand-card .card-art.item{background:#312d58}
.collection-card .card-art.item img,.hand-card .card-art.item img{object-fit:cover;filter:none;animation:none}
.card-move{display:flex;justify-content:space-between;align-items:center;gap:4px;min-height:22px;padding:2px 5px;border:1px solid #fff1c866;border-radius:6px;background:#091727a8;color:#fff2ca;font-size:11px;line-height:1.15}
.card-move strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-move b{color:#ffd08b;white-space:nowrap}
.collection-card .card-description,.hand-card .card-description{color:#eef2e9;font-size:10px;line-height:1.22;margin:0;padding:2px 3px;min-height:37px;overflow:hidden}
.collection-card .card-stats,.hand-card .card-stats{position:static;display:flex;justify-content:space-between;align-items:center;gap:3px;width:100%;margin-top:auto;color:#fff5d8;font-size:10px;font-weight:900}
.collection-card .card-stats span,.hand-card .card-stats span{padding:3px 4px;border:1px solid #fff5d26e;border-radius:6px;background:#081728b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.collection-card .collection-controls{border-top:1px solid #fff1c866;margin-top:5px;padding:7px 5px 2px}
.hand-card,.hand-card.water,.hand-card.grass,.hand-card.item{height:239px;padding:7px;gap:3px}
.hand-card .card-art{height:81px;flex-basis:81px}
.hand-card .card-description{min-height:31px;font-size:9px}
.hand-card .card-move{font-size:10px;min-height:20px}
.hand{min-height:305px}
@media(max-width:690px){
  .collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .collection-card{min-height:273px;padding:4px}
  .collection-face{padding:5px}
  .collection-card .card-art{height:91px;flex-basis:91px}
  .collection-card .card-name{font-size:12px}
  .collection-card .card-description{font-size:9px;min-height:38px}
  .hand{min-height:177px}
  .hand-card,.hand-card.water,.hand-card.grass,.hand-card.item{width:112px;height:154px;flex-basis:112px;padding:5px;gap:1px}
  .hand-card .card-name{font-size:10px}
  .hand-card .cost{font-size:8px;padding:1px 3px}
  .hand-card .card-stage{font-size:7px;padding:1px 3px}
  .hand-card .card-art{height:63px;flex-basis:63px}
  .hand-card .card-move{min-height:16px;font-size:8px;padding:1px 3px}
  .hand-card .card-description{display:none}
  .hand-card .card-stats{font-size:7px}
  .hand-card .card-stats span{padding:2px}
}

/* Alpha 1.6: a shared collectible frame and illustrated worlds behind every Pokémon. */
.collection-card,.hand-card{--foil:#ffe4a0;--edge:#ecb872}
.collection-card.water,.hand-card.water{--foil:#d2faff;--edge:#83d9ed}
.collection-card.grass,.hand-card.grass{--foil:#edffbb;--edge:#a9de8d}
.collection-card.item,.hand-card.item{--foil:#f0ddff;--edge:#caa9ef}
.collection-card{position:relative;min-height:332px;border-color:var(--edge);background:linear-gradient(145deg,#fff2c9 0%,var(--edge) 4%,#263750 20%,#0d182a 88%,var(--edge) 100%);box-shadow:inset 0 0 0 1px #fff4ce,0 12px 25px #000a,0 0 16px color-mix(in srgb,var(--edge) 28%,transparent);transition:transform .2s,box-shadow .2s}
.collection-card.water,.collection-card.grass,.collection-card.item{background:linear-gradient(145deg,#fff8db 0%,var(--edge) 4%,#263750 20%,#0d182a 88%,var(--edge) 100%)}
.collection-card:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px #fff4ce,0 18px 34px #000b,0 0 23px var(--edge)}
.collection-face{position:relative;isolation:isolate;gap:5px;border-color:#fff5d0a8;background:linear-gradient(165deg,#ffffff29,#10213da8 38%,#081424e8);overflow:hidden}
.collection-face:before,.hand-card:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(125deg,transparent 0 25px,#fff5dd09 26px 27px,transparent 28px 52px),radial-gradient(circle at 50% -15%,var(--foil),transparent 54%);opacity:.27}
.collection-card .card-top,.hand-card .card-top{border-bottom:1px solid #fff1bb77;padding-bottom:3px}
.collection-card .card-name,.hand-card .card-name{color:#fff8dc;text-shadow:0 1px 1px #25150d,0 0 12px var(--edge)}
.collection-card .card-stage,.hand-card .card-stage{border-color:var(--edge);background:linear-gradient(90deg,#27334b,#111b2d);color:var(--foil);box-shadow:0 1px 7px #0008}
.collection-card .card-art,.hand-card .card-art{position:relative;isolation:isolate;height:136px;flex-basis:136px;border:3px solid var(--edge);border-radius:9px;background-position:center;background-size:cover;box-shadow:inset 0 0 0 1px #fff8df,0 0 0 1px #1a1829,0 6px 13px #000b,0 0 13px color-mix(in srgb,var(--edge) 45%,transparent)}
.collection-card .card-art.fire,.hand-card .card-art.fire{background-image:url('assets/card-bg-fire.svg')}
.collection-card .card-art.water,.hand-card .card-art.water{background-image:url('assets/card-bg-water.svg')}
.collection-card .card-art.grass,.hand-card .card-art.grass{background-image:url('assets/card-bg-grass.svg')}
.collection-card .card-art:before,.hand-card .card-art:before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(120deg,#fff9d536 0%,transparent 30%,transparent 68%,#fff8df24 100%)}
.collection-card .card-art img,.hand-card .card-art img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 2px #091020ac) drop-shadow(0 0 11px #fff8cb66);transform:scale(1.08);animation:none}
.collection-card .card-art:after,.hand-card .card-art:after{z-index:1;bottom:7px;left:27%;right:27%;background:#091322a0}
.collection-card .card-art.item,.hand-card .card-art.item{background:#2f3155}
.collection-card .card-art.item img,.hand-card .card-art.item img{transform:none;filter:none}
.collection-card .card-move,.hand-card .card-move{border-color:var(--edge);background:linear-gradient(90deg,#0d1e32,#25314a 55%,#0d1e32);color:var(--foil);box-shadow:inset 0 1px #ffffff31}
.collection-card .card-move b,.hand-card .card-move b{color:#fff4bd}
.collection-card .card-description,.hand-card .card-description{min-height:39px;line-height:1.3;color:#f4f2e9}
.collection-card .card-stats span,.hand-card .card-stats span{border-color:var(--edge);background:#091b2de0;color:var(--foil)}
.collection-card.final-evolution,.hand-card.final-evolution{--edge:#f7df90;--foil:#fff9d2;box-shadow:inset 0 0 0 1px #fff9e2,0 12px 28px #000b,0 0 19px #f9dc7999}
.collection-card.final-evolution .collection-face,.hand-card.final-evolution{background-image:linear-gradient(145deg,#fff5c83b,#354877a8 36%,#121c39e8 72%,#6e4f5b8c)}
.collection-card.final-evolution .card-art,.hand-card.final-evolution .card-art{box-shadow:inset 0 0 0 1px #fff8df,0 0 0 1px #1a1829,0 6px 13px #000b,0 0 20px #ffe18cc9}
.hand-card,.hand-card.water,.hand-card.grass,.hand-card.item{height:261px;border-color:var(--edge);background:linear-gradient(145deg,#fff2d4 0%,var(--edge) 4%,#314765 17%,#101d32 90%,var(--edge) 100%);box-shadow:inset 0 0 0 1px #fff6d6,0 13px 25px #000a;isolation:isolate}
.hand-card .card-art{height:104px;flex-basis:104px}
.hand-card .card-description{min-height:34px}
.hand{min-height:326px}
@media(max-width:690px){
  .collection-card{min-height:300px}
  .collection-card .card-art{height:111px;flex-basis:111px}
  .hand{min-height:185px}
  .hand-card,.hand-card.water,.hand-card.grass,.hand-card.item{width:116px;height:166px;flex-basis:116px}
  .hand-card .card-art{height:70px;flex-basis:70px}
}

/* Alpha 1.7: one shared utility-card gallery with isolated item artwork. */
.collection-card .card-art.item,.hand-card .card-art.item{background:#333358 url('assets/card-bg-item.svg') center/cover no-repeat}
.collection-card .card-art.item img,.hand-card .card-art.item img{width:100%;height:100%;object-fit:contain;object-position:center;transform:scale(.83);filter:drop-shadow(0 7px 5px #101126a6);animation:none}
.collection-card .card-art.item:after,.hand-card .card-art.item:after{bottom:7px;left:30%;right:30%;opacity:.45}

/* Alpha 1.8: campaign hub and deck building hierarchy. */
.menu-screen{max-width:1500px;padding-top:24px}
.menu-header{position:relative;overflow:hidden;min-height:170px;align-items:center;padding:30px 36px;background:linear-gradient(105deg,#0c1a2af5 0%,#162e49d9 50%,#271c39a8 100%),url('assets/battlefield.jpg') center 53%/cover;border-color:#e0bc74a6}
.menu-header:after{content:'';position:absolute;right:-60px;top:-120px;width:390px;height:390px;border:2px solid #ffde9b17;border-radius:50%;box-shadow:0 0 0 45px #ffe2ab09,0 0 0 95px #ffe2ab08;pointer-events:none}
.menu-header>div{position:relative;z-index:1}.menu-header h1{max-width:760px;font-size:clamp(35px,4.5vw,62px);letter-spacing:-.045em}.menu-header p{font-size:15px;color:#f3e4c6}
.menu-progress{font-size:13px;box-shadow:inset 0 1px #fff5cb88,0 0 22px #eab75d55}
.campaign-layout{grid-template-columns:minmax(325px,390px) minmax(0,1fr);gap:20px}
.campaign-panel,.deck-panel{background:linear-gradient(160deg,#203550f7,#13243cf8 40%,#0f1a2df9);border-color:#cdb68296;box-shadow:inset 0 1px #ffffff18,0 22px 45px #0008}
.section-heading{padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid #dcc4914d}.section-heading>span{min-width:39px;height:39px;background:linear-gradient(145deg,#8d6334,#4a352b);box-shadow:inset 0 1px #ffe4a488}.section-heading h2{font-size:23px;letter-spacing:-.025em}.section-heading p{font-size:12px;color:#c5d2df}
.campaign-path{display:flex;align-items:center;justify-content:space-between;gap:5px;margin:3px 4px 19px}
.path-node{display:grid;place-items:center;flex:0 0 35px;height:35px;border:1px solid #758ba1;border-radius:50%;background:#24344d;color:#c3d0dc;font-size:12px;font-weight:1000;box-shadow:inset 0 1px #ffffff25}
.path-node.current{border-color:#ffdb88;background:#7d5737;color:#fff0bd;box-shadow:0 0 0 4px #ffc86e20,0 0 20px #ffc86e66}
.path-node.won{border-color:#c9dfac;background:#315b48;color:#fff3be;font-size:18px}
.path-line{flex:1;height:2px;background:linear-gradient(90deg,#a9b3b9,#697d91);opacity:.65}
.trainer-map{gap:9px}.trainer-stage{position:relative;min-height:78px;gap:9px;border-width:1px;padding:9px 11px}.trainer-stage.selected{background:linear-gradient(110deg,#3a4d60,#1e3048 75%);box-shadow:0 0 0 1px #e8bd6b,0 0 20px #eab35542}.trainer-stage:disabled{opacity:.57}
.stage-number{font-size:10px;letter-spacing:.08em}.stage-copy strong{font-size:15px}.stage-copy small{font-size:11px}.stage-copy em{margin-top:3px;font-size:10px}.stage-medal{min-width:61px}.stage-medal small{line-height:1.1}
.trainer-detail{margin-top:16px;padding:15px;border:1px solid #d8ba7d88;border-radius:14px;background:linear-gradient(140deg,#283f58,#14243c);box-shadow:inset 0 1px #ffffff2b}
.trainer-detail-head{display:flex;align-items:center;gap:11px}.trainer-detail-head img{width:58px;height:58px;border:2px solid #eed496;border-radius:11px}.trainer-detail-head>div{display:grid;gap:2px;flex:1}.trainer-detail-head small{font-size:9px;letter-spacing:.13em;color:#efcd89;font-weight:1000}.trainer-detail-head strong{font-size:19px;color:#fff4d4}.trainer-detail-head span{font-size:11px;color:#c4d2e1}.trainer-detail-head b{font-size:27px}.trainer-detail p{font-size:12px;line-height:1.5;color:#e6eaf0;margin:13px 0}.trainer-prize{padding-top:9px;border-top:1px solid #d7bb8066;color:#ffe2a1;font-size:11px;font-weight:900}
.campaign-start,.deck-start{min-height:52px;font-size:15px;letter-spacing:.01em}
.deck-overview{padding:15px 17px;margin-bottom:10px;border:1px solid #b8c3ba69;border-radius:14px;background:linear-gradient(110deg,#253f4b,#203349 55%,#2f3547);box-shadow:inset 0 1px #ffffff28}
.deck-overview-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.deck-overview-top strong{color:#fff2ce;font-size:16px}.deck-overview-top span{color:#d8e5e8;font-size:12px;font-weight:800}.deck-meter{height:9px;margin:11px 0;border:1px solid #dfd0a37d;border-radius:20px;background:#0b1828;overflow:hidden}.deck-meter span{display:block;height:100%;width:0;background:linear-gradient(90deg,#e6a65d,#ffe3a0);border-radius:20px;transition:width .22s}
.deck-breakdown{display:flex;flex-wrap:wrap;gap:7px}.deck-breakdown span{padding:4px 8px;border:1px solid #c6d2d34d;border-radius:30px;background:#12273b;color:#dfe8ea;font-size:10px;font-weight:900}.deck-breakdown span:first-child{border-color:#9fd2a7;color:#d5f3d9}.deck-breakdown span:last-child{border-color:#d2b5e7;color:#efd9fa}
.deck-feedback{margin-bottom:10px;padding:9px 12px;background:#1b3246;color:#ffe1ab;border-color:#d8af7366}
.deck-actions{display:flex;gap:8px;margin:0 0 18px}.deck-actions .btn{font-size:11px;padding:8px 12px}.deck-actions .btn:disabled{opacity:.4}
.deck-preview-heading,.collection-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:8px}.deck-preview-heading h3,.collection-heading h3{margin:0;color:#fff0cb;font-size:15px}.deck-preview-heading small,.collection-heading small{font-size:11px;color:#aebed1}
.deck-preview{padding:10px;min-height:57px;margin-bottom:21px;border:1px dashed #a8b9c46e;border-radius:11px;background:#09182786}
.deck-chip{cursor:pointer;min-height:34px;box-shadow:inset 0 1px #ffffff22}.deck-chip:hover{background:#35506a;border-color:#f4d08c}.deck-chip:focus-visible,.collection-filters button:focus-visible,.collection-controls button:focus-visible{outline:3px solid #ffe098;outline-offset:2px}
.deck-chip:after{content:'×';font-size:15px;color:#ffdaa5;margin-left:2px}.deck-empty{margin:8px;color:#bacddd;font-size:12px}
.collection-heading{align-items:center;margin:0 0 13px;flex-wrap:wrap}.collection-filters{display:flex;flex-wrap:wrap;gap:5px}.collection-filters button{padding:7px 10px;border:1px solid #8495a7;border-radius:8px;background:#20364d;color:#dae5eb;font-size:11px;font-weight:900}.collection-filters button.active{border-color:#ffe09a;background:linear-gradient(#7b5c37,#59452f);color:#fff0ca;box-shadow:0 0 12px #e7bd6555}.collection-filters button:hover{border-color:#ffe09a}
.collection{gap:12px}.collection-controls{gap:10px}.collection-controls button{width:31px;height:30px}.collection-controls span{font-size:12px;letter-spacing:.02em}
@media(max-width:1000px){.campaign-layout{grid-template-columns:1fr}.campaign-panel{position:static}.trainer-map{grid-template-columns:repeat(2,minmax(0,1fr))}.trainer-detail{max-width:none}}
@media(max-width:690px){.menu-screen{padding:9px 9px 24px}.menu-header{min-height:0;padding:22px 18px;gap:15px}.menu-header h1{font-size:35px}.menu-header p{font-size:12px}.campaign-panel,.deck-panel{padding:14px}.trainer-map{grid-template-columns:1fr}.trainer-stage{min-height:68px}.stage-copy em{display:block}.deck-overview{padding:12px}.deck-actions{margin-bottom:16px}.deck-preview-heading{align-items:start;flex-direction:column;gap:2px}.collection-heading{align-items:start;flex-direction:column;gap:9px}.collection-filters{width:100%}.collection-filters button{flex:1;padding:8px 5px;font-size:10px}.collection{gap:9px}}

/* Alpha 2.0: visible 50/50 coin toss for type passives. */
.coin-toss{position:fixed;z-index:90;display:grid;justify-items:center;gap:7px;min-width:146px;pointer-events:none;transform:translate(-50%,-65%);filter:drop-shadow(0 8px 16px #000b)}
.coin-disk{width:67px;height:67px;display:grid;place-items:center;border:5px solid #ffea9e;border-radius:50%;background:radial-gradient(circle at 34% 26%,#fff8cf,#f2b942 45%,#a96420 82%);box-shadow:inset 0 0 0 3px #b7792d,0 0 18px #ffdc70d9;color:#6f3b1b;font-size:13px;font-weight:1000;text-shadow:0 1px #fff5be;animation:coin-flip .52s ease-in-out}
.coin-toss small{padding:4px 9px;border:1px solid #ffe3a3;border-radius:7px;background:#15243beb;color:#fff2c9;font-size:10px;font-weight:1000;letter-spacing:.06em;white-space:nowrap;text-shadow:0 1px 3px #000}
.coin-toss.result .coin-disk{animation:coin-land .27s ease-out}.coin-toss.tails .coin-disk{background:radial-gradient(circle at 34% 26%,#e3eaf2,#8da6ba 52%,#3e5b74 90%);border-color:#d5e6f1;box-shadow:inset 0 0 0 3px #59728a,0 0 16px #bbd0dd91;color:#294155;text-shadow:0 1px #fff}
.coin-toss.heads small{border-color:#ffe08c;color:#fff2bb}.coin-toss.tails small{border-color:#a9bfce;color:#dfebf3}
@keyframes coin-flip{0%{transform:translateY(8px) scaleX(1) rotate(-20deg)}25%{transform:translateY(-29px) scaleX(.18) rotate(0)}50%{transform:translateY(-39px) scaleX(1) rotate(16deg)}75%{transform:translateY(-21px) scaleX(.18) rotate(0)}100%{transform:translateY(0) scaleX(1) rotate(0)}}
@keyframes coin-land{from{transform:translateY(-14px) scale(.8);opacity:.6}to{transform:translateY(0) scale(1);opacity:1}}
@media(max-width:690px){.coin-disk{width:52px;height:52px;font-size:11px}.coin-toss small{font-size:8px}}
@media(prefers-reduced-motion:reduce){.coin-disk,.coin-toss.result .coin-disk{animation:none}}

/* Alpha 2.1: make collection entries read as printed, collectible cards. */
.collection-card{--shine-x:50%;--shine-y:35%;position:relative;isolation:isolate;overflow:hidden;border:2px solid #fff0bf;border-radius:18px;padding:7px;transform-style:preserve-3d;transform:perspective(1000px) rotateX(var(--rotate-x,0deg)) rotateY(var(--rotate-y,0deg));transition:transform .18s ease-out,box-shadow .2s,border-color .2s;box-shadow:inset 0 0 0 2px #2c2739,inset 0 0 0 4px color-mix(in srgb,var(--edge) 75%,#fff4cf),inset 0 9px 14px #fff7d22a,0 3px 0 #806541,0 11px 18px #000b}
.collection-card:before{content:'';position:absolute;z-index:3;inset:4px;border:1px solid #fff4d59c;border-radius:12px;box-shadow:inset 0 0 0 1px #1719278f;pointer-events:none}
.collection-card:after{content:'';position:absolute;z-index:4;inset:-20%;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(ellipse at var(--shine-x) var(--shine-y),#fffbd885 0%,#fff5c92b 17%,transparent 48%),linear-gradient(115deg,transparent 35%,#ffffff36 48%,#ffffff08 51%,transparent 63%);mix-blend-mode:screen;transition:opacity .2s}
.collection-card:hover{transform:perspective(1000px) rotateX(var(--rotate-x,0deg)) rotateY(var(--rotate-y,0deg)) translateY(-5px) scale(1.025);z-index:8;border-color:#fff7d9;box-shadow:inset 0 0 0 2px #2c2739,inset 0 0 0 4px color-mix(in srgb,var(--edge) 75%,#fff4cf),inset 0 9px 14px #fff7d238,0 4px 0 #806541,0 20px 30px #000d,0 0 24px color-mix(in srgb,var(--edge) 58%,transparent)}
.collection-card:hover:after{opacity:.72}
.collection-face{position:relative;z-index:1;padding:8px;gap:6px;border:1px solid #fff4d9;border-radius:10px;background:linear-gradient(145deg,#fff7d52a,#1421398c 35%,#071322e8 92%);box-shadow:inset 0 1px #fff9e966,inset 0 0 18px #0007,0 1px 2px #0008}
.collection-card .card-top{height:26px;min-height:26px;padding:0 4px 4px;border-bottom:1px solid #fff0c978}
.collection-card .card-name{font-family:Georgia,'Times New Roman',serif;font-size:15px;font-weight:900;letter-spacing:.01em;text-shadow:0 1px 1px #1b1520,0 0 8px color-mix(in srgb,var(--edge) 45%,transparent)}
.collection-card .cost{min-width:31px;border:2px solid #fff0bb;background:radial-gradient(circle at 30% 22%,#ffe6a5,#ab6b30 75%);box-shadow:inset 0 1px #fffbd9,0 2px 4px #0009;color:#fff9e3}
.collection-card .card-identity{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:17px}
.collection-card .card-stage{align-self:auto;border:1px solid #fff4d69c;box-shadow:inset 0 1px #ffffff42,0 1px 3px #0008}
.collection-card .card-id{color:#f2e1bb;font-family:Georgia,'Times New Roman',serif;font-size:8px;font-weight:800;letter-spacing:.09em;text-shadow:0 1px 3px #000;white-space:nowrap}
.collection-card .card-art{height:136px;flex-basis:136px;border:4px ridge color-mix(in srgb,var(--edge) 78%,#fff0c8);border-radius:9px;box-shadow:inset 0 0 0 1px #fffbd9,0 0 0 1px #191827,0 4px 6px #000b,0 0 10px color-mix(in srgb,var(--edge) 37%,transparent)}
.collection-card .card-art:before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(135deg,#fff8d636,transparent 26%,transparent 72%,#fff0c426),repeating-linear-gradient(0deg,#fff2cd08 0 1px,transparent 1px 4px)}
.collection-card .card-art img{transform:scale(1.12) translateZ(12px);filter:drop-shadow(0 5px 2px #08101cbf) drop-shadow(0 0 8px #fff9c977)}
.collection-card .card-move{min-height:24px;border-width:1px 0;border-radius:2px;box-shadow:inset 0 1px #ffffff36,inset 0 -1px #0008,0 1px 3px #0007;font-family:Georgia,'Times New Roman',serif;letter-spacing:.02em}
.collection-card .card-description{min-height:42px;text-shadow:0 1px 2px #000}
.collection-card .card-stats{padding-top:5px;border-top:1px solid #fff1c35c}
.collection-card .card-stats span{border-radius:4px;box-shadow:inset 0 1px #fff4d642,0 1px 3px #0009}
.collection-card .collection-controls{position:relative;z-index:2;margin:6px 2px 0;padding:6px 8px 2px;border-top:1px solid #fff1c97a;color:#fff4d2;text-shadow:0 1px 2px #000}
.collection-card .collection-controls button{border:1px solid #fff0bd;border-radius:7px;background:linear-gradient(145deg,#465772,#17263b);box-shadow:inset 0 1px #fff7d688,0 2px 3px #0009}
.collection-card .collection-controls button:not(:disabled):hover{background:linear-gradient(145deg,#ffe5a1,#b97837);color:#2b1a0f}
.collection-card.final-evolution{border-color:#fff1b5;background:linear-gradient(145deg,#fff3c8,#f2d68c 6%,#413653 24%,#171a30 86%,#ffe29a);box-shadow:inset 0 0 0 2px #463b32,inset 0 0 0 4px #fff1bb,inset 0 9px 14px #fff9da3b,0 4px 0 #a28142,0 12px 22px #000c,0 0 20px #ffdf7d79}
.collection-card.final-evolution:after{opacity:.14;background:repeating-linear-gradient(115deg,transparent 0 13px,#fffbd938 14px 16px,transparent 17px 28px),radial-gradient(ellipse at var(--shine-x) var(--shine-y),#fffbdcaa,transparent 55%);animation:foil-glint 5s ease-in-out infinite}
.collection-card.final-evolution:hover:after{opacity:.8}
@keyframes foil-glint{0%,100%{background-position:0 0,0 0}50%{background-position:80px 0,0 0}}
@media(max-width:690px){.collection-card{padding:5px;border-radius:14px}.collection-card:before{inset:3px;border-radius:10px}.collection-face{padding:6px;gap:5px}.collection-card .card-name{font-size:12px}.collection-card .card-id{font-size:7px}.collection-card .card-art{height:111px;flex-basis:111px}.collection-card .card-description{min-height:39px;font-size:8px}.collection-card .collection-controls{padding:5px 5px 1px}}
@media(prefers-reduced-motion:reduce){.collection-card,.collection-card:after{transition:none;animation:none}}

/* Alpha 2.2: deck copy controls sit outside the collectible card. */
.collection-entry{display:grid;align-content:start;gap:9px;min-width:0}
.collection-entry .collection-card{width:100%;min-width:0}
.collection-entry .collection-controls{display:flex;position:relative;z-index:auto;align-items:center;justify-content:center;gap:9px;min-height:41px;margin:0;padding:4px 8px;border:1px solid #778ba1;border-radius:10px;background:linear-gradient(180deg,#24354a,#17263a);box-shadow:inset 0 1px #ffffff21,0 3px 8px #0007;color:#edf2f6;text-shadow:none}
.collection-entry .collection-controls small{margin-right:auto;color:#aebed0;font-size:8px;font-weight:900;letter-spacing:.1em}
.collection-entry .collection-controls button{width:29px;height:28px;border:1px solid #899bac;border-radius:7px;background:linear-gradient(145deg,#3a4c60,#1c2b3d);box-shadow:inset 0 1px #ffffff30,0 2px 3px #0008;color:#f5f0e5;font-size:17px}
.collection-entry .collection-controls button:not(:disabled):hover{border-color:#ffe2a0;background:linear-gradient(145deg,#f2cc7e,#a66c39);color:#2e2115}
.collection-entry .collection-controls button:disabled{opacity:.38;box-shadow:none}
.collection-entry .copy-count{min-width:39px;color:#fff1c9;font-size:12px;font-weight:1000;text-align:center;letter-spacing:.04em}
.collection-entry .collection-card:hover{z-index:8}
@media(max-width:690px){.collection-entry{gap:7px}.collection-entry .collection-controls{min-height:37px;padding:3px 6px;gap:6px}.collection-entry .collection-controls small{font-size:7px}.collection-entry .collection-controls button{width:26px;height:25px}.collection-entry .copy-count{min-width:34px;font-size:11px}}

/* Alpha 2.3: rebalance the printed layout around the card text. */
.collection-card .card-art{height:108px;flex-basis:108px}
.collection-card .card-art img{transform:scale(1.02) translateZ(8px)}
.collection-card .card-description{min-height:53px;line-height:1.32}
.collection-card .card-move{min-height:25px}
.collection-card .card-stats{margin-top:auto}
@media(max-width:690px){.collection-card .card-art{height:88px;flex-basis:88px}.collection-card .card-art img{transform:scale(1) translateZ(5px)}.collection-card .card-description{min-height:48px}}

/* Alpha 2.4: use a compact, familiar trading-card proportion. */
.collection-entry .collection-card{height:auto;min-height:0;aspect-ratio:.70}
.collection-card .collection-face{height:100%;min-height:0;gap:4px;padding:6px}
.collection-card .card-top{height:23px;min-height:23px;padding-bottom:2px}
.collection-card .card-name{font-size:12.5px}
.collection-card .cost{min-width:28px;padding:1px 4px;font-size:9px}
.collection-card .card-identity{min-height:15px}
.collection-card .card-stage{font-size:7px;padding:1px 4px}
.collection-card .card-id{font-size:7px}
.collection-card .card-art{height:clamp(72px,8vw,84px);flex-basis:clamp(72px,8vw,84px);border-width:3px}
.collection-card.final-evolution .card-art{height:clamp(72px,8vw,84px);flex-basis:clamp(72px,8vw,84px)}
.collection-card .card-art img{transform:scale(1) translateZ(5px)}
.collection-card .card-move{min-height:21px;font-size:10px;padding:1px 4px}
.collection-card .card-description{flex:0 0 38px;min-height:38px;max-height:38px;padding:1px 2px;font-size:8px;line-height:1.2}
.collection-card .card-stats{gap:3px;padding-top:3px;font-size:8px}
.collection-card .card-stats span{padding:2px 4px}
.collection-card.final-evolution .card-art{box-shadow:inset 0 0 0 1px #fff8df,0 0 0 1px #1a1829,0 4px 9px #000b,0 0 13px #ffe18ca8}
@media(max-width:690px){
  .collection-entry .collection-card{aspect-ratio:.70}
  .collection-card .collection-face{padding:5px;gap:3px}
  .collection-card .card-art{height:clamp(64px,23vw,78px);flex-basis:clamp(64px,23vw,78px)}
  .collection-card.final-evolution .card-art{height:clamp(64px,23vw,78px);flex-basis:clamp(64px,23vw,78px)}
  .collection-card .card-description{flex-basis:36px;min-height:36px;max-height:36px;font-size:7.5px}
  .collection-card .card-name{font-size:11px}
}

/* Alpha 2.5: clearer TCG card hierarchy and navigable 150-Pokémon binder. */
.collection-heading h3{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.collection-heading h3 small{padding:3px 7px;border:1px solid #7b91a8;border-radius:99px;background:#18283c;color:#b8cadb;font-size:9px;font-weight:800}
.collection-tools{display:flex;align-items:center;gap:9px;margin:0 0 12px}
.collection-search,.collection-type-filter{display:flex;align-items:center;gap:7px;min-height:37px;padding:0 10px;border:1px solid #657c95;border-radius:9px;background:linear-gradient(180deg,#263b53,#16283d);color:#e7d7ae;box-shadow:inset 0 1px #ffffff16}
.collection-search{flex:1;font-size:18px}
.collection-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#f8f3e8;font:inherit;font-size:12px}
.collection-search input::placeholder{color:#91a4b9}
.collection-type-filter{color:#aebfd1;font-size:10px;font-weight:900}
.collection-type-filter select{max-width:150px;border:0;outline:0;background:transparent;color:#f5e9ca;font:inherit;font-size:11px}
.collection-type-filter option{background:#1d2d42;color:#f5e9ca}
.collection{grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:13px}
.collection-entry .collection-card{height:auto;min-height:0;aspect-ratio:.715;padding:6px;border-radius:15px}
.collection-card .collection-face{height:100%;min-height:0;gap:4px;padding:6px;border-radius:9px}
.collection-card .card-top{height:25px;min-height:25px;gap:5px;padding:0 2px 4px}
.collection-card .card-name{font-size:14px;letter-spacing:.01em}
.collection-card .card-hp{flex:0 0 auto;padding:3px 6px;border:1px solid var(--edge);border-radius:99px;background:#071626d9;color:#fff4cf;font-size:9px;font-weight:1000;white-space:nowrap}
.collection-card .card-identity{min-height:17px;gap:4px}
.collection-card .card-stage{max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7.5px}
.collection-card .card-id{font-size:7px}
.collection-card .card-art{height:87px;flex:0 0 87px;border-width:3px;background-color:color-mix(in srgb,var(--edge) 55%,#17233a);background-image:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--foil) 70%,transparent),transparent 66%),linear-gradient(135deg,#ffffff1c,transparent 48%,#07152955)}
.collection-card .card-art img{transform:scale(.96) translateZ(3px);filter:drop-shadow(0 5px 4px #071020ad)}
.collection-card .card-move{display:flex;align-items:center;justify-content:space-between;min-height:25px;padding:2px 5px;border-radius:5px;font-size:9px}
.collection-card .card-move strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collection-card .card-move b{flex:0 0 auto;margin-left:5px;font-size:10px}
.collection-card .card-description{flex:1 1 auto;min-height:35px;max-height:49px;padding:3px 3px;border-left:2px solid var(--edge);font-size:8px;line-height:1.26;overflow:hidden}
.collection-card .card-stats{display:grid;grid-template-columns:auto 1fr;align-items:stretch;gap:4px;margin-top:auto;padding-top:4px;font-size:8px}
.collection-card .card-stats span{display:flex;align-items:center;justify-content:center;min-height:24px;padding:3px 5px;border-radius:5px}
.collection-card .card-stats span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collection-card.item .card-description{border-left-color:#caa9ef}
.collection-empty{grid-column:1/-1;margin:8px 0;padding:22px;border:1px dashed #71869d;border-radius:10px;color:#b8c8d8;text-align:center;font-size:12px}
.unit-weak{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collection-entry{min-width:0}
.collection-entry .collection-card{aspect-ratio:.72;min-height:0;transform:perspective(900px) rotateX(var(--rotate-x,0deg)) rotateY(var(--rotate-y,0deg));transition:transform .18s ease,filter .18s ease}
.collection-card .collection-face{display:grid;grid-template-rows:21px 14px minmax(40px,1fr) 12px 19px minmax(32px,36px) 20px;gap:2px;padding:6px;overflow:hidden}
.collection-card .card-top{height:auto;min-height:0;border-bottom:1px solid #fff4d566}
.collection-card .card-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:900 14px/1.1 Georgia,'Times New Roman',serif;text-shadow:0 1px 2px #000}
.collection-card .card-hp{padding:2px 5px;font-size:8px}
.collection-card .card-identity{min-height:0;display:flex;align-items:center;justify-content:space-between;gap:3px}
.collection-card .card-stage{max-width:75%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px}
.collection-card .card-id{font-size:6px;white-space:nowrap}
.collection-card .card-art{width:100%;height:auto;min-height:0;flex:none;position:relative;overflow:hidden;border:2px solid color-mix(in srgb,var(--edge) 90%,#fff);border-radius:5px;box-shadow:inset 0 0 0 1px #fff9d155,0 2px 6px #0009}
.collection-card .card-art img{width:100%;height:100%;object-fit:contain;transform:scale(.94);filter:drop-shadow(0 3px 3px #000a)}
.collection-card .card-evolution{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#dce8ed;font-size:7px;line-height:14px}
.collection-card .card-move{min-height:0;height:23px;overflow:hidden;background:linear-gradient(90deg,#ffffff12,transparent);font-size:9px}
.collection-card .card-description{display:grid;grid-template-rows:10px 1fr;min-height:0;max-height:none;flex:none;padding:2px 4px;overflow:hidden;border-left:2px solid var(--edge);font-size:8px;line-height:1.24}
.collection-card .card-description:not([title]){grid-template-rows:1fr}
.collection-card .card-description .coin-label{color:#ffd982;font-size:6px;font-weight:1000;letter-spacing:.08em;white-space:nowrap}
.collection-card .card-description .ability-copy{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.collection-card .card-description[title]::after{content:none}
.collection-card .card-stats{display:grid;grid-template-columns:auto minmax(0,1fr);min-height:0;margin:0;padding-top:3px;gap:4px;font-size:7px}
.collection-card .card-stats span{min-width:0;min-height:19px;padding:2px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collection-card.locked-card{filter:saturate(.36) brightness(.73)}
.collection-card.locked-card .card-art img{filter:grayscale(.72) drop-shadow(0 3px 3px #000a)}
.collection-card.locked-card:before{content:'🔒';position:absolute;z-index:4;top:42%;left:50%;transform:translate(-50%,-50%);width:36px;height:36px;display:grid;place-items:center;border:1px solid #f6d28c;border-radius:50%;background:#121a2cdb;font-size:17px;box-shadow:0 2px 12px #000b}
.collection-card .collection-controls{display:grid;grid-template-columns:minmax(0,1fr) 30px 42px 30px;align-items:center;gap:5px;min-height:35px}
.collection-card .collection-controls small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px}
.collection-card .collection-controls .copy-count{text-align:center;font-size:10px;font-weight:900}
.collection-heading h3 small{white-space:nowrap}
@media(max-width:690px){
  .collection-tools{align-items:stretch}
  .collection-type-filter{gap:3px;padding:0 7px}
  .collection-type-filter select{max-width:112px}
  .collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .collection-entry .collection-card{aspect-ratio:.715;padding:4px}
  .collection-card .collection-face{padding:5px;gap:3px}
  .collection-card .card-name{font-size:12px}
  .collection-card .card-hp{padding:2px 4px;font-size:8px}
  .collection-card .card-art{height:clamp(68px,22vw,82px);flex-basis:clamp(68px,22vw,82px)}
  .collection-card .card-description{min-height:32px;font-size:7.5px}
  .collection-card .collection-face{grid-template-rows:20px 13px minmax(36px,1fr) 11px 18px minmax(30px,34px) 18px;gap:2px;padding:5px}
  .collection-card .card-name{font-size:11px}
  .collection-card .card-evolution{font-size:6.5px}
  .collection-card .card-description{min-height:0;max-height:none;font-size:7px}
  .collection-card .card-stats{font-size:6.5px}
  .collection-card .collection-controls{grid-template-columns:minmax(0,1fr) 25px 34px 25px;gap:3px}
}
.hand-card,.hand-card.water,.hand-card.grass,.hand-card.item{width:154px;height:216px;flex:0 0 154px;display:grid;grid-template-rows:21px 15px minmax(48px,1fr) 12px 20px 36px 20px;gap:3px;padding:7px;align-items:stretch;border-radius:13px}
.hand-card .card-top{height:auto;min-height:0;display:flex;justify-content:space-between;align-items:center;gap:4px;padding:0 2px 3px}
.hand-card .card-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.hand-card .card-hp{flex:0 0 auto;padding:2px 4px;border:1px solid var(--edge);border-radius:99px;background:#071626dc;font-size:7px;white-space:nowrap}
.hand-card .card-identity{min-height:0;display:flex;align-items:center;justify-content:space-between;gap:2px}
.hand-card .card-stage{max-width:76%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:6px}
.hand-card .card-id{font-size:5px;white-space:nowrap}
.hand-card .card-art{width:100%;height:auto;min-height:0;flex:none;overflow:hidden;border-width:2px;border-radius:5px}
.hand-card .card-art img{width:100%;height:100%;object-fit:contain;transform:scale(.92)}
.hand-card .card-evolution{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e1eaf1;font-size:6px;line-height:14px}
.hand-card .card-move{min-height:0;height:22px;padding:2px 4px;font-size:8px}
.hand-card .card-description{display:grid;grid-template-rows:9px 1fr;min-height:0;max-height:none;flex:none;padding:2px 3px;overflow:hidden;font-size:7px;line-height:1.22;text-align:left}
.hand-card .card-description .coin-label{font-size:5px;line-height:9px}
.hand-card .card-description .ability-copy{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.hand-card .card-stats{position:static;display:grid;grid-template-columns:auto minmax(0,1fr);width:100%;min-height:0;gap:3px;margin:0;padding-top:3px;font-size:6px}
.hand-card .card-stats span{display:flex;align-items:center;justify-content:center;min-width:0;min-height:18px;padding:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hand-card:hover{z-index:12;transform:translateY(-13px) scale(1.08)}
@media(max-width:690px){
  .hand-card,.hand-card.water,.hand-card.grass,.hand-card.item{width:132px;height:184px;flex-basis:132px;grid-template-rows:19px 14px minmax(45px,1fr) 11px 19px 34px 18px;gap:2px;padding:5px}
  .hand-card .card-name{font-size:10px}
  .hand-card .card-description{font-size:6.5px}
  .hand-card .card-stats{font-size:5.5px}
}
.hero-state{min-height:12px;margin-top:3px;color:#ffd98a;font-size:8px;font-weight:850;line-height:1.25}
.menu-progress{white-space:nowrap;box-shadow:inset 0 1px #fff5d4,0 4px 14px #0005}
.collection-card .card-description .ability-copy{line-height:1.22}
.collection-card .card-art img,.hand-card .card-art img{object-position:50% 50%;margin:auto}
.trainer-stage .stage-medal small{max-width:85px;line-height:1.2;text-align:center}
@media(max-width:690px){.hero-state{font-size:7px}.menu-progress{white-space:normal}.trainer-stage .stage-medal small{max-width:70px}}

/* Main menu pages and readable card inspection. */
.menu-screen{max-width:1560px;padding:22px clamp(12px,3vw,38px) 48px}
.menu-header{margin-bottom:14px}
.main-nav{position:sticky;top:0;z-index:20;display:flex;gap:8px;padding:9px;margin:0 0 18px;border:1px solid #afc2d13b;border-radius:14px;background:#0c1929ed;backdrop-filter:blur(14px);box-shadow:0 8px 20px #0005}
.main-nav-button{display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 16px;border:1px solid transparent;border-radius:10px;background:transparent;color:#d4dfeb;font-family:inherit;font-size:13px;font-weight:800;line-height:1.2;cursor:pointer;transition:background .16s,border-color .16s,color .16s}
.main-nav-button:hover{background:#ffffff0c;border-color:#91a6bc55}
.main-nav-button.active{border-color:#e3c27d;background:linear-gradient(135deg,#59432e,#26364a);color:#fff0c4;box-shadow:inset 0 1px #fff5d23d,0 3px 12px #0005}
.main-nav-button.upcoming span{padding:3px 6px;border:1px solid #d7bb7d77;border-radius:20px;color:#f1cc82;font-size:8px;letter-spacing:.08em}
.menu-view{min-width:0;animation:view-arrive .18s ease-out}
.menu-view.hidden{display:none}
@keyframes view-arrive{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.campaign-layout{display:block;min-width:0}
.campaign-panel{position:static;min-width:0}
.campaign-path{display:grid;grid-template-columns:repeat(7,minmax(28px,38px));justify-content:start;gap:8px;margin:4px 0 15px}
.path-node{width:36px;height:36px;min-width:0;flex:none}
.path-line{display:none}
.trainer-map{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:10px}
.trainer-stage{min-width:0;min-height:83px}
.stage-copy em{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.trainer-detail{max-width:none}
.campaign-start{max-width:440px}
.open-collection{display:block;width:100%;max-width:440px;min-height:44px;margin:9px 0 0}
.deck-panel{min-width:0;width:100%;padding:clamp(14px,2vw,26px)}
.collection{grid-template-columns:repeat(auto-fill,minmax(min(100%,168px),1fr));align-items:start}
.collection-entry{min-width:0}
.collection-card{cursor:zoom-in}
.collection-card:focus-visible{outline:3px solid #ffe098;outline-offset:4px}
.coming-panel{display:grid;justify-items:center;max-width:760px;margin:4vh auto;padding:clamp(24px,6vw,64px);border:1px solid #d6bb806b;border-radius:24px;background:radial-gradient(ellipse at 50% 0,#344a68,#172840 56%,#101b2d);box-shadow:0 24px 55px #0008;text-align:center}
.coming-icon{display:grid;place-items:center;width:88px;height:88px;margin:0 0 18px;border:1px solid #e4c980;border-radius:24px;background:linear-gradient(145deg,#526080,#282b49);font-size:42px;box-shadow:0 0 28px #bd9b5845}
.coming-panel .menu-kicker{margin:0 0 8px}.coming-panel h2{margin:0;color:#fff0c7;font-size:clamp(30px,5vw,48px)}.coming-panel>p:not(.menu-kicker){max-width:540px;color:#c9d5e2;line-height:1.6}
.coming-features{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:15px 0 24px}.coming-features span{padding:8px 11px;border:1px solid #b8c6d254;border-radius:30px;background:#0c192a80;color:#e6dfcb;font-size:11px;font-weight:800}
.card-modal{position:relative;width:min(920px,calc(100vw - 28px));max-width:none;max-height:min(92vh,880px);overflow:auto;padding:clamp(16px,3vw,30px);border:1px solid #d9bd7c;border-radius:22px;background:radial-gradient(ellipse at 18% 0,#304662,#17253b 48%,#101a2b);box-shadow:0 30px 100px #000d;color:#f5efdf}
.card-modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:17px}.card-modal-head h2{margin:0;color:#fff0c6;font-size:clamp(19px,3vw,26px)}.card-modal-head p{margin:4px 0 0;color:#bac9d9;font-size:12px}
.card-modal-close{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border:1px solid #d7c18a;border-radius:50%;background:#26364b;color:#fff1c8;font-size:24px;cursor:pointer}.card-modal-close:hover{background:#614b33}
.card-inspector{display:grid;grid-template-columns:minmax(230px,330px) minmax(0,1fr);align-items:start;gap:clamp(16px,3vw,30px)}
.inspect-card{--inspect-edge:#e3bd75;position:relative;display:grid;gap:9px;min-width:0;padding:12px;border:5px solid var(--inspect-edge);border-radius:22px;background:linear-gradient(150deg,#fff2ce,#5b4738 8%,#1b2b42 48%,#0e1829);box-shadow:inset 0 0 0 2px #fff9dc, inset 0 0 0 5px #30253a,0 14px 32px #0009;overflow:hidden}
.inspect-card.fire{--inspect-edge:#ee9c62}.inspect-card.water{--inspect-edge:#80cbea}.inspect-card.grass{--inspect-edge:#a6d27c}.inspect-card.item{--inspect-edge:#ceabe8}
.inspect-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 3px 8px;border-bottom:1px solid #fff3ce77}.inspect-card-name{min-width:0;color:#fff9e8;font:900 22px/1.1 Georgia,serif;text-shadow:0 2px 5px #000}.inspect-card-hp{flex:none;padding:5px 8px;border:1px solid var(--inspect-edge);border-radius:30px;background:#0a1526;color:#fff1d1;font-size:13px;font-weight:950}
.inspect-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#e9d59d;font-size:10px;font-weight:900;letter-spacing:.04em}
.inspect-card-art{position:relative;display:grid;place-items:center;height:clamp(190px,29vw,285px);overflow:hidden;border:3px solid var(--inspect-edge);border-radius:12px;background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--inspect-edge) 64%,#17233a),#16243a 74%);box-shadow:inset 0 0 0 2px #fff7d9,0 4px 12px #000a}
.inspect-card-art img{width:100%;height:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 8px 7px #000c)}.inspect-card-art.item-art img{transform:scale(.75);filter:drop-shadow(0 8px 6px #000a)}
.inspect-attack{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid #fff2c37a;border-radius:10px;background:#081629a8}.inspect-attack strong{font:900 17px Georgia,serif;color:#fff1c8}.inspect-attack b{color:#ffdd90;font-size:20px;white-space:nowrap}
.inspect-ability{padding:11px 12px;border-left:3px solid var(--inspect-edge);border-radius:4px 10px 10px 4px;background:#ffffff0c}.inspect-ability small{display:block;margin-bottom:5px;color:#ffdb91;font-size:9px;font-weight:1000;letter-spacing:.12em}.inspect-ability p{margin:0;color:#f0eee6;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.inspect-footer{display:grid;gap:7px;padding-top:8px;border-top:1px solid #fff4d55c}.inspect-footer div{display:flex;justify-content:space-between;gap:8px;color:#c9d5df;font-size:11px}.inspect-footer b{color:#ffdfa1;text-align:right}
.inspect-details{display:grid;gap:12px}.inspect-details h3{margin:0 0 3px;color:#fff0c7;font-size:18px}.inspect-details>p{margin:0;color:#c8d4df;font-size:12px;line-height:1.55}.inspect-detail-box{padding:13px;border:1px solid #adbed045;border-radius:12px;background:#0c192988}.inspect-detail-box small{display:block;margin-bottom:6px;color:#f2cf86;font-size:9px;font-weight:950;letter-spacing:.1em}.inspect-detail-box p{margin:0;color:#e4e8eb;font-size:13px;line-height:1.5}
@media(max-width:1050px){.trainer-map{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-path{grid-template-columns:repeat(7,36px)}}
@media(max-width:700px){.main-nav{position:static;display:grid;grid-template-columns:1fr 1fr}.main-nav-button{justify-content:center;padding:9px 7px;font-size:11px}.main-nav-button.upcoming{grid-column:1/-1}.menu-screen{padding:10px 10px 30px}.menu-header{align-items:flex-start;flex-direction:column;min-height:0;padding:22px 18px}.trainer-map{grid-template-columns:1fr}.campaign-panel{padding:14px}.campaign-path{grid-template-columns:repeat(7,minmax(26px,34px));gap:6px}.path-node{width:32px;height:32px;font-size:10px}.collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.collection-entry .collection-card{aspect-ratio:.72}.card-inspector{grid-template-columns:minmax(0,1fr);justify-items:center}.inspect-card{width:min(100%,350px)}.inspect-details{width:100%}.card-modal{max-height:94vh;padding:14px}.inspect-card-art{height:clamp(175px,55vw,245px)}}
@media(prefers-reduced-motion:reduce){.menu-view{animation:none}}

/* Alpha 2.6: separate menu destinations and a single, readable card inspection. */
.main-home{max-width:1180px;margin:clamp(18px,5vh,64px) auto 0}
.home-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}
.home-destination{position:relative;display:flex;min-height:270px;flex-direction:column;align-items:flex-start;gap:12px;padding:22px;border:1px solid #94a8bd5c;border-radius:18px;background:radial-gradient(ellipse at 90% 5%,#60799555,transparent 48%),linear-gradient(145deg,#263b55,#14243a 68%,#111b2d);color:#f5f0e4;text-align:left;box-shadow:0 16px 34px #0005,inset 0 1px #ffffff20;transition:transform .18s,border-color .18s,box-shadow .18s}
.home-destination:hover{transform:translateY(-4px);border-color:#edc77c;box-shadow:0 22px 42px #0007,0 0 20px #e6be6540,inset 0 1px #ffffff30}
.home-destination:focus-visible,.back-home:focus-visible{outline:3px solid #ffdb8b;outline-offset:3px}
.home-destination strong{font-size:clamp(22px,2.5vw,30px);color:#fff0c6}
.home-destination p{max-width:340px;margin:0;color:#c3d0de;font-size:13px;line-height:1.55}
.destination-kicker{color:#f2cb7d;font-size:9px;font-weight:950;letter-spacing:.16em}
.destination-progress{display:grid;width:100%;gap:8px;margin-top:auto;color:#e4d5b4;font-size:11px;font-weight:800}
.destination-meter{height:7px;overflow:hidden;border:1px solid #fff4cd33;border-radius:20px;background:#0b1728}
.destination-meter b{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e39a4b,#ffe199);transition:width .3s}
.destination-cta{display:flex;width:100%;align-items:center;justify-content:space-between;padding-top:11px;border-top:1px solid #ffffff20;color:#fff0c6;font-size:12px;font-weight:900}
.collection-destination{background:radial-gradient(ellipse at 88% 0%,#8275a64f,transparent 48%),linear-gradient(145deg,#293951,#19273d 70%,#121c2d)}
.multiplayer-destination{background:radial-gradient(ellipse at 85% 0%,#478d8c44,transparent 48%),linear-gradient(145deg,#223d4c,#152a3a 70%,#111d2c)}
.coming-soon-pill{justify-self:start;padding:5px 8px;border:1px solid #d9bd7c88;border-radius:20px;color:#ffdc91;font-size:9px;letter-spacing:.08em}
.section-page-head{display:flex;align-items:center;gap:20px;margin:2px 0 18px;padding:4px 0 15px;border-bottom:1px solid #d8d5c62b}
.section-page-head h1{margin:4px 0 0;color:#fff0c6;font-size:clamp(25px,3vw,36px)}
.back-home{min-height:39px;padding:8px 12px;border:1px solid #8599b0;border-radius:10px;background:linear-gradient(180deg,#2a3d54,#19283c);color:#e9dfc8;font-size:11px;font-weight:850;white-space:nowrap}
.back-home:hover{border-color:#f0ca7a;color:#fff0c6}
.collection-card .card-identity{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px}
.collection-card .card-stage{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collection-card .card-id{max-width:40px;overflow:hidden;text-overflow:clip;letter-spacing:0}
.modal-cover#card-modal{z-index:100;display:grid;place-items:center;overflow:auto;padding:18px;background:#050914d9;backdrop-filter:blur(9px)}
.modal-cover#card-modal.hidden{display:none}
.card-modal{width:min(520px,calc(100vw - 28px));max-width:520px;max-height:calc(100dvh - 36px);overflow:visible;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.card-modal-head{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;margin:0 3px 9px;color:#e8d59f;font-size:10px;font-weight:950;letter-spacing:.17em}
.card-modal-close{width:34px;height:34px;border-color:#c9b77f;background:#18263a;color:#fff1c8;font-size:20px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.card-inspector{display:grid;width:100%;grid-template-columns:minmax(0,1fr);justify-items:center;gap:0}
.inspect-card{--inspect-edge:#e3bd75;position:relative;display:grid;width:min(100%,440px);max-height:calc(100dvh - 94px);aspect-ratio:.715;grid-template-rows:auto auto minmax(0,1fr) auto auto auto;gap:clamp(5px,1.15vh,10px);overflow:hidden;padding:clamp(9px,1.5vw,14px);border:7px solid var(--inspect-edge);border-radius:25px;background:linear-gradient(155deg,#fff4d7 0,#52463e 5%,#17283e 34%,#0d182a 100%);box-shadow:inset 0 0 0 2px #fff5d3,inset 0 0 0 5px #292337,0 20px 55px #000d,0 0 24px color-mix(in srgb,var(--inspect-edge) 25%,transparent);color:#f7f1e2}
.inspect-card.fire{--inspect-edge:#ee9c62}.inspect-card.water{--inspect-edge:#80cbea}.inspect-card.grass{--inspect-edge:#a6d27c}.inspect-card.item{--inspect-edge:#ceabe8}
.inspect-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;padding:0 1px 6px;border-bottom:1px solid #fff3ce77}
.inspect-stage-badge{max-width:72px;padding:4px 5px;border:1px solid var(--inspect-edge);border-radius:5px;background:#091527;color:#fff0c9;font-size:clamp(7px,1.8vw,9px);font-weight:950;text-align:center}
.inspect-card-name{min-width:0;overflow:hidden;color:#fff9e8;font:900 clamp(16px,4vw,24px)/1 Georgia,serif;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 2px 5px #000}
.inspect-card-hp{padding:4px 6px;border:1px solid var(--inspect-edge);border-radius:22px;background:#0a1526;color:#fff1d1;font-size:clamp(9px,2vw,12px);font-weight:950;white-space:nowrap}
.inspect-card-meta{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:6px;color:#e9d59d;font-size:clamp(8px,1.8vw,10px);font-weight:900}
.inspect-card-meta span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inspect-card-art{position:relative;display:grid;min-height:0;place-items:center;overflow:hidden;border:3px solid var(--inspect-edge);border-radius:10px;background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--inspect-edge) 55%,#17233a),#16243a 75%);box-shadow:inset 0 0 0 2px #fff7d9,0 4px 12px #000a}
.inspect-card-art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 7px 6px #000c)}
.inspect-card-art.item-art img{width:74%;height:74%;object-fit:contain;transform:none}
.inspect-evolution{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:5px;color:#d8ddea;font-size:clamp(8px,1.8vw,10px)}
.inspect-evolution b{color:#fff0c6}.inspect-evolution span{flex:none;padding:3px 5px;border:1px solid #a8d8ff70;border-radius:5px;color:#c5ebff;font-size:8px;font-weight:950}
.inspect-attack{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:7px 8px;border:1px solid #fff2c37a;border-radius:8px;background:#081629c9}
.inspect-attack strong{overflow:hidden;color:#fff1c8;font:900 clamp(13px,3.2vw,17px)/1.1 Georgia,serif;text-overflow:ellipsis;white-space:nowrap}
.inspect-attack>b{color:#ffdd90;font-size:clamp(15px,3.5vw,20px);white-space:nowrap}.inspect-attack>b:not(:empty){text-align:right}
.inspect-ability{min-height:0;overflow:auto;padding:8px 9px;border-left:3px solid var(--inspect-edge);border-radius:3px 8px 8px 3px;background:#ffffff0c}
.inspect-ability small{display:block;margin-bottom:4px;color:#ffdb91;font-size:8px;font-weight:1000;letter-spacing:.1em}
.inspect-ability p{margin:0;color:#f0eee6;font-size:clamp(10px,2.2vw,12px);line-height:1.35;overflow-wrap:anywhere}
.inspect-footer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding-top:6px;border-top:1px solid #fff4d55c}
.inspect-footer div{display:grid;min-width:0;gap:3px;text-align:center}.inspect-footer small{color:#b7c4d0;font-size:7px;font-weight:950;letter-spacing:.06em}.inspect-footer b{overflow:hidden;color:#ffdfa1;font-size:clamp(8px,1.8vw,10px);text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.home-menu-grid{grid-template-columns:1fr}.home-destination{min-height:205px}.main-home{margin-top:12px}.section-page-head{align-items:flex-start;flex-direction:column;gap:10px}.section-page-head h1{font-size:28px}}
@media(max-width:520px){.modal-cover#card-modal{padding:9px}.card-modal{width:min(100%,390px);max-height:calc(100dvh - 18px)}.inspect-card{max-height:calc(100dvh - 68px);border-width:5px;border-radius:19px;padding:8px}.inspect-card-art.item-art img{width:70%;height:70%}}
@media(max-height:700px){.inspect-card{aspect-ratio:auto;height:calc(100dvh - 92px);grid-template-rows:auto auto minmax(95px,1fr) auto auto auto}.inspect-ability{overflow:auto}}
@media(prefers-reduced-motion:reduce){.home-destination,.destination-meter b{transition:none}}

/* Alpha 2.7: campaign route and integrated battle table. */
.campaign-path{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 14px;padding:10px 13px;border:1px solid #c9b77f55;border-radius:12px;background:#0b1929a8}
.campaign-map-status{display:flex;align-items:center;gap:10px}.campaign-map-status>b{display:grid;place-items:center;width:38px;height:38px;border:1px solid #e7c56c;border-radius:11px;background:linear-gradient(145deg,#765637,#26334a);font-size:21px}.campaign-map-status span{display:grid;gap:2px}.campaign-map-status strong{font-size:13px;color:#fff1c7}.campaign-map-status small,.campaign-map-hint{font-size:10px;color:#b9c9d8}
.kanto-badge-icon{display:inline-block;width:25px;height:25px;object-fit:contain;vertical-align:middle}.campaign-map-status .kanto-badge-icon{width:29px;height:29px}.trainer-detail-head>b.trainer-earned-medal .kanto-badge-icon{width:31px;height:31px}.trainer-medal-reward b .kanto-badge-icon{width:23px;height:23px;margin-right:5px}#ending-icon .kanto-badge-icon{width:50px;height:50px}.map-trainer.won .map-node-ring>b.map-earned-medal .kanto-badge-icon{width:19px;height:19px}
.kanto-badge-icon{display:inline-block;width:25px;height:25px;object-fit:contain;vertical-align:middle}.campaign-map-status .kanto-badge-icon{width:29px;height:29px}.trainer-detail-head>b.trainer-earned-medal .kanto-badge-icon{width:31px;height:31px}.trainer-medal-reward b .kanto-badge-icon{width:23px;height:23px;margin-right:5px}#ending-icon .kanto-badge-icon{width:50px;height:50px}.map-trainer.won .map-node-ring>b.map-earned-medal .kanto-badge-icon{width:19px;height:19px}
.campaign-map-wrap{padding:10px;border:1px solid #d6bc7b70;border-radius:18px;background:linear-gradient(145deg,#16263a,#0d1a2a);box-shadow:inset 0 1px #ffffff18,0 12px 25px #0004}
.campaign-map-legend{display:flex;justify-content:space-between;gap:10px;padding:2px 4px 10px;color:#b9c9d8;font-size:10px}.campaign-map-legend span:first-child{color:#f5d68c;font-weight:1000;letter-spacing:.12em}
.trainer-map{position:relative;display:block;isolation:isolate;min-height:clamp(470px,50vw,650px);overflow:hidden;border:1px solid #83a4a055;border-radius:14px;background:radial-gradient(ellipse at 52% 53%,#9bc7a62b 0 9%,transparent 9.4%),radial-gradient(ellipse at 16% 75%,#83b8799c 0 12%,transparent 12.5%),radial-gradient(ellipse at 40% 25%,#a2ca7770 0 19%,transparent 19.5%),radial-gradient(ellipse at 80% 44%,#77bcbd75 0 18%,transparent 18.5%),radial-gradient(ellipse at 79% 13%,#c0a8d27c 0 18%,transparent 18.5%),linear-gradient(145deg,#284c50,#315d52 40%,#2a4c4b 67%,#283d50);background-size:cover}
.trainer-map:before,.trainer-map:after{position:absolute;z-index:-1;content:"";pointer-events:none}.trainer-map:before{inset:0;background:repeating-linear-gradient(18deg,transparent 0 36px,#e9f2cd0a 37px 39px),radial-gradient(ellipse at 52% 50%,transparent 28%,#07152142 100%)}.trainer-map:after{inset:0;opacity:.32;background-image:radial-gradient(ellipse at 20% 76%,#142c3f 0 4%,transparent 4.3%),radial-gradient(ellipse at 67% 30%,#163447 0 5%,transparent 5.3%),radial-gradient(ellipse at 49% 84%,#193443 0 3%,transparent 3.3%)}
.kanto-route-art{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.route-shadow{fill:none;stroke:#06131bbd;stroke-width:23;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4 2}.route-line{fill:none;stroke:url(#route-gradient);stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2 2;filter:url(#route-glow);opacity:.9}.map-landmarks{fill:none;stroke:#e8d49b55;stroke-width:3}.map-region{position:absolute;color:#f2e4b5;font-size:clamp(8px,1vw,11px);font-weight:1000;letter-spacing:.12em;line-height:1.35;text-align:center;text-shadow:0 2px 6px #07131c;opacity:.86;pointer-events:none}.region-rock{left:4%;top:57%}.region-water{right:3%;top:42%}.region-forest{left:37%;top:21%}.region-volcano{right:18%;top:54%}.region-league{left:44%;top:2%}.map-compass{position:absolute;right:15px;top:14px;display:grid;justify-items:center;color:#fff0be;font-size:10px;font-weight:1000}.map-compass span{font-size:23px}.map-marker{position:absolute;padding:5px 8px;border:1px solid #f4d68c;border-radius:8px;background:#12243ad9;color:#ffedbd;font-size:8px;font-weight:950;letter-spacing:.08em;text-align:center;pointer-events:none}.route-start{left:2%;bottom:5%}
.trainer-stage.map-trainer{position:absolute;z-index:2;display:grid;width:clamp(100px,12vw,140px);min-height:0;grid-template-columns:43px minmax(0,1fr);align-items:center;gap:6px;padding:5px;border:1px solid #edcf8b;background:linear-gradient(145deg,#16233beF,#0c1629ed);border-radius:13px;color:#f6f1e4;text-align:left;box-shadow:0 5px 13px #06101a99;transform:translate(-50%,-50%);transition:transform .16s,border-color .16s,box-shadow .16s,opacity .16s;cursor:pointer}
.trainer-stage.map-trainer:hover:not(:disabled),.trainer-stage.map-trainer.selected{z-index:5;transform:translate(-50%,-50%) scale(1.08);border-color:#ffe090;box-shadow:0 0 0 2px #f4cd7866,0 8px 20px #050c16cc}
.map-node-ring{position:relative;display:block;width:41px;height:41px;border:2px solid #d8c17c;border-radius:50%;background:#263b50;box-shadow:0 0 0 3px #0b1928,0 0 15px #f3d58966}.map-node-ring img{width:100%;height:100%;object-fit:cover;border-radius:50%}.map-node-ring>b{position:absolute;right:-5px;bottom:-4px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 3px;border:1px solid #fff0bc;border-radius:20px;background:#29384b;color:#fff4d0;font-size:9px}.map-node-label{display:grid;min-width:0;gap:3px}.map-node-label strong{overflow:hidden;color:#fff1cc;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.map-node-label small{overflow:hidden;color:#b8c8d7;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.map-trainer.won .map-node-ring{border-color:#79dca4;box-shadow:0 0 0 3px #0b1928,0 0 18px #79dca466}.map-trainer.locked{filter:grayscale(.75);opacity:.48;cursor:not-allowed}.map-trainer.locked .map-node-label strong{color:#e7e8e8}.map-trainer.fire{border-left:3px solid #f19a57}.map-trainer.water{border-left:3px solid #66c8ef}.map-trainer.rock,.map-trainer.ground{border-left:3px solid #d0b373}.map-trainer.grass{border-left:3px solid #98d77a}.map-trainer.electric{border-left:3px solid #f3d44d}.map-trainer.psychic,.map-trainer.ghost{border-left:3px solid #bf9af0}.map-trainer.poison{border-left:3px solid #b886e0}.map-trainer.ice{border-left:3px solid #9ce8ed}.map-trainer.fighting{border-left:3px solid #e38c77}.map-trainer.dragon,.map-trainer.mixed{border-left:3px solid #ebbd6d}
.map-node-ring>i{display:grid;width:100%;height:100%;place-items:center;color:#e9d8a9;font-size:19px;font-style:normal;font-weight:900}
.deck-overview{position:relative;padding:17px 18px;border:1px solid #e2c47a80;border-radius:16px;background:radial-gradient(ellipse at 100% 0,#e5b6571c,transparent 40%),linear-gradient(135deg,#233850,#14243a 72%,#172037);box-shadow:inset 0 1px #ffffff20,0 12px 24px #0003}.deck-overview-top strong{font-size:16px}.deck-overview-top span{color:#ffe1a0;font-weight:900}.deck-meter{height:10px;margin:12px 0;background:#071322;border:1px solid #e1c07977}.deck-meter-fill{box-shadow:0 0 12px #ffd07199}.deck-breakdown span{padding:5px 9px;font-size:10px}.deck-preview{min-height:56px;max-height:148px;overflow:auto;align-content:start;padding:10px;background:linear-gradient(120deg,#0c1a2ad9,#17243a);border:1px dashed #9eb4c174;border-radius:13px}.deck-chip{max-width:190px;min-height:36px;box-shadow:0 4px 9px #0005}.deck-preview-heading{margin:18px 0 8px}.collection-heading{margin-top:20px;padding-top:15px;border-top:1px solid #d2c18b44}
.inspect-footer{grid-template-columns:minmax(0,1.5fr) minmax(65px,.65fr) minmax(90px,.85fr);align-items:stretch}.inspect-footer div{min-width:0;align-items:flex-start;flex-direction:column;justify-content:center;gap:4px;padding:5px 6px;border-radius:7px;background:#07152672}.inspect-footer b{max-width:100%;overflow-wrap:anywhere;text-align:left;white-space:normal;line-height:1.3}.inspect-footer .inspect-weakness b{font-size:clamp(8px,1.7vw,10px)}
.inspect-card-meta .inspect-top-cost{flex:none;padding:4px 7px;border:1px solid #f0c570;border-radius:18px;background:#2d261c;color:#ffe0a1;white-space:nowrap}.inspect-card.trainer-card .inspect-footer{grid-template-columns:repeat(2,minmax(0,1fr))}
.board{display:flex;flex-direction:column;gap:0}.board>.hand-area{width:100%;max-width:none;min-width:0;margin:11px 0 0;padding:12px 14px 10px;border:1px solid #d8bd7a7a;border-radius:15px;background:linear-gradient(180deg,#17283bdc,#0a1627ed);box-shadow:0 10px 28px #0008,inset 0 1px #ffffff1a}.board>.hand-area .hand{min-height:190px;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding:13px 12px 17px;scroll-snap-type:x proximity;scrollbar-color:#bf9e5f #101c2d;scrollbar-width:thin}.board>.hand-area .hand-card{flex:0 0 145px;width:145px;height:190px;scroll-snap-align:center}.board>.hand-area .hand-card:hover,.board>.hand-area .hand-card.chosen{z-index:3;transform:translateY(-11px) scale(1.035)}.board>.hand-area .action-bar{margin-top:4px}.board>.player-row{width:100%;max-width:950px}.board>.lane{width:100%}
@media(max-width:900px){.trainer-map{min-height:560px}.trainer-stage.map-trainer{width:112px;grid-template-columns:35px minmax(0,1fr);padding:4px}.map-node-ring{width:34px;height:34px}.map-node-label strong{font-size:10px}}
@media(max-width:600px){.campaign-path{align-items:flex-start;flex-direction:column}.campaign-map-legend{align-items:flex-start;flex-direction:column;gap:4px}.trainer-map{min-height:610px}.trainer-stage.map-trainer{width:93px;grid-template-columns:29px minmax(0,1fr);gap:4px}.map-node-ring{width:28px;height:28px}.map-node-ring>b{min-width:15px;height:15px;font-size:7px}.map-node-label strong{font-size:9px}.map-node-label small{font-size:7px}.map-region{font-size:7px}.board>.hand-area{padding:9px 7px}.board>.hand-area .hand{min-height:164px;gap:7px}.board>.hand-area .hand-card{flex-basis:115px;width:115px;height:154px}.board>.hand-area .card-art{height:57px;flex-basis:57px}}
.board>.hand-area{position:relative}
@media(prefers-reduced-motion:reduce){.trainer-stage.map-trainer,.board>.hand-area .hand-card{transition:none}}

/* Alpha 2.8: illustrated campaign atlas and readable in-play Pokémon cards. */
.trainer-map{background:linear-gradient(180deg,#08182718,#0b182733),url('assets/campaign-kanto.svg') center/cover no-repeat}
.kanto-route-art{z-index:1;pointer-events:none}.route-shadow{stroke-width:25;stroke:#08141dbd;stroke-dasharray:none}.route-line{stroke-width:8;stroke-dasharray:2 15;stroke-linecap:round;opacity:.98}
.map-compass{z-index:1;right:16px;top:15px;padding:5px;border:1px solid #eddbab88;border-radius:50%;background:#0b1a2bad;box-shadow:0 3px 9px #0007}.map-compass span{font-size:18px}
.trainer-stage.map-trainer{z-index:3;width:clamp(100px,11vw,132px);min-height:56px;grid-template-columns:40px minmax(0,1fr);gap:7px;padding:6px;border:1px solid #f0d99d;background:linear-gradient(135deg,#15233cf5,#091727f2);backdrop-filter:blur(5px)}.trainer-stage.map-trainer:hover:not(:disabled),.trainer-stage.map-trainer.selected{z-index:5;transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 0 2px #ffdb89a3,0 0 24px #ffcf6c8c,0 10px 20px #06101ad9}.map-node-ring{width:38px;height:38px}.map-node-label small{white-space:normal;line-height:1.12;max-height:2.3em}
.campaign-panel{overflow:visible}.campaign-map-wrap{padding:13px;background:linear-gradient(145deg,#1a3043,#0c1a2a);border-color:#e0c57d99;box-shadow:inset 0 1px #ffffff24,0 16px 35px #0006}.campaign-map-legend{align-items:center;min-height:29px}
.lane{max-width:1160px;min-height:272px;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(8px,1.2vw,16px);padding:6px 4px}.slot{width:100%;max-width:204px;height:250px;border:1px solid #e8cf927a;border-style:dashed;border-radius:16px;background:linear-gradient(145deg,#15253b88,#08152675);box-shadow:inset 0 1px #ffffff0c}.unit{display:grid;grid-template-rows:22px 72px auto 24px minmax(42px,1fr) 5px 14px;align-content:stretch;align-items:stretch;justify-items:stretch;gap:2px;width:100%;height:100%;min-height:0;padding:5px;border:2px solid var(--unit-edge,#c7b47d);border-radius:13px;overflow:hidden;background:linear-gradient(160deg,#253a52 0%,#111f34 58%,#0a1424 100%);box-shadow:0 9px 21px #000b,inset 0 1px #ffffff39;color:#f8f0db;text-align:left;cursor:pointer}
.unit.fire{--unit-edge:#f29d62;background:linear-gradient(160deg,#55372f,#1c2536 58%,#111724)}.unit.water{--unit-edge:#7cd3f2;background:linear-gradient(160deg,#244b68,#142a40 58%,#101928)}.unit.grass{--unit-edge:#a9dc7d;background:linear-gradient(160deg,#31533e,#192f34 58%,#101c26)}.unit.electric{--unit-edge:#f2d169}.unit.poison,.unit.psychic{--unit-edge:#c596df}.unit.rock,.unit.ground{--unit-edge:#d3b574}.unit.ice{--unit-edge:#9ce5e8}.unit.flying{--unit-edge:#a9bdf2}
.unit-head{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:4px;padding:0 1px;border-bottom:1px solid #fff4cf38}.unit .name{min-width:0;overflow:hidden;margin:0;padding:0;background:none;border-radius:0;color:#fff3d4;font:900 13px/1 Georgia,'Times New Roman',serif;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 4px #000}
.unit .unit-ready{position:static;flex:0 0 auto;max-width:92px;overflow:hidden;padding:3px 4px;border:1px solid #b1bfca66;border-radius:6px;background:#101c2ce8;color:#d5dce0;font-size:7px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.unit .unit-ready.active{border-color:#a5edb5;background:#17442ee8;color:#caffd4;box-shadow:0 0 11px #70ee9450}
.unit .unit-art{position:relative;inset:auto;width:100%;height:78px;min-height:78px;overflow:hidden;border:1px solid var(--unit-edge,#c7b47d);border-radius:8px;background:#17293a;box-shadow:inset 0 0 0 1px #fff5ce80,0 3px 8px #0008}.unit .unit-portrait{background-image:radial-gradient(ellipse at 50% 100%,#f4d58e44,transparent 70%)}.unit .unit-portrait img{object-fit:contain;padding:1px 3px;filter:drop-shadow(0 5px 4px #06111bbd)}
.unit .unit-badges{position:static;min-height:0;max-height:28px;overflow:hidden;align-content:center;justify-content:flex-start;gap:3px}.unit .unit-badges:empty{display:none}.unit .unit-badge{padding:2px 4px;border-radius:5px;font-size:8px;line-height:1}
.unit-move{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:5px;padding:3px 5px;border:1px solid #fff2c57d;border-radius:6px;background:#071526d9}.unit-move strong{overflow:hidden;color:#fff0c4;font:900 11px/1.1 Georgia,serif;text-overflow:ellipsis;white-space:nowrap}.unit-move b{flex:none;color:#ffdc8c;font-size:12px;white-space:nowrap}
.unit-passive{display:flex;min-height:0;flex-direction:column;justify-content:flex-start;gap:4px;padding:5px 6px;border-left:3px solid var(--unit-edge,#c7b47d);border-radius:4px 7px 7px 4px;background:#ffffff0d;overflow:hidden}.unit-passive small{color:#ffdc93;font-size:7px;font-weight:1000;letter-spacing:.04em;line-height:1.15}.unit-passive span{display:-webkit-box;overflow:hidden;color:#f3f1e8;font-size:9px;line-height:1.3;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:4}
.unit-health{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px}.unit-health .hp-meter{width:100%;height:6px;margin:0}.unit-health>strong{color:#ffd6d6;font-size:9px;white-space:nowrap}.unit .unit-weak{position:static;align-self:center;overflow:hidden;padding:1px 2px;background:transparent;color:#d8e4ee;font-size:7px;font-weight:800;text-overflow:clip;white-space:nowrap}
.unit.ready{filter:none!important}.unit.sleeping{filter:saturate(.58) brightness(.74)!important}.unit.ready .unit-art{filter:brightness(1.08)}.unit.provoker{box-shadow:0 0 0 2px #a6dfff,0 0 17px #5ebdff9c,0 8px 16px #0009}.unit.targetable{outline:4px solid #ffe083;outline-offset:2px;box-shadow:0 0 24px #ffd15fba}.unit.selected{outline:4px solid #ffe083;outline-offset:3px}.unit.can-use{outline:4px solid #8cf3ac;outline-offset:3px}
.board>.hand-area{background:linear-gradient(180deg,#0d1c30ed,#091525f5);border:1px solid #ceb36f99}.board>.hand-area .hand{min-height:208px}.board>.hand-area .hand-card{flex-basis:154px;width:154px;height:201px}.board>.hand-area .card-art{height:82px;flex-basis:82px}
@media(max-width:760px){.lane{max-width:none;grid-template-columns:repeat(5,145px);justify-content:start;overflow-x:auto;overflow-y:hidden;min-height:244px;padding:7px 8px 14px;scroll-snap-type:x proximity;scrollbar-color:#c3a45f #0d1a2c;scrollbar-width:thin}.slot{width:136px;max-width:none;height:224px;scroll-snap-align:center}.unit{grid-template-rows:21px 62px auto 23px minmax(44px,1fr) 5px 14px;gap:2px;padding:5px}.unit .unit-art{height:62px;min-height:62px}.unit-passive span{-webkit-line-clamp:4;font-size:8.5px}.unit-move strong{font-size:10px}.unit .unit-weak{font-size:6.5px}.board>.hand-area .hand{min-height:190px}.board>.hand-area .hand-card{flex-basis:139px;width:139px;height:180px}.board>.hand-area .card-art{height:70px;flex-basis:70px}}
@media(max-width:520px){.trainer-map{min-height:600px}.trainer-stage.map-trainer{width:96px;min-height:48px;grid-template-columns:30px minmax(0,1fr);gap:4px;padding:4px}.map-node-ring{width:28px;height:28px}.map-node-ring>b{min-width:15px;height:15px;font-size:7px}.map-node-label strong{font-size:9px}.map-node-label small{font-size:7px}.lane{grid-template-columns:repeat(5,136px);min-height:230px}.slot{width:128px;height:212px}.unit{grid-template-rows:20px 58px auto 22px minmax(39px,1fr) 4px 14px}.unit .unit-art{height:58px;min-height:58px}.unit .name{font-size:12px}.unit .unit-ready{font-size:6px}.board>.hand-area .hand{min-height:176px}.board>.hand-area .hand-card{flex-basis:130px;width:130px;height:166px}.board>.hand-area .card-art{height:60px;flex-basis:60px}}
@media(prefers-reduced-motion:reduce){.unit,.unit .unit-art img{animation:none!important;transition:none!important}}

/* Alpha 2.7: consistent artwork windows, type scenery, and pointer driven foil. */
.collection-card .card-art,.hand-card .card-art{height:100%;min-height:0;aspect-ratio:1.34;align-self:stretch;display:grid;place-items:center;background-position:center;background-size:cover;background-repeat:no-repeat}
.collection-card .card-art img,.hand-card .card-art img{display:block;width:auto;height:auto;max-width:88%;max-height:88%;object-fit:contain;object-position:center;transform:none!important;animation:none!important;filter:drop-shadow(0 6px 5px #08101dcc)}
.inspect-card{--inspect-edge:var(--type-base,#e3bd75);transform-style:preserve-3d;transform:perspective(1100px) rotateX(var(--rotate-x,0deg)) rotateY(var(--rotate-y,0deg));transition:transform .14s ease-out;will-change:transform}
.inspect-card>*{position:relative;z-index:1;transform:translateZ(7px)}
.inspect-card:after{content:"";position:absolute;z-index:3;inset:-20%;pointer-events:none;opacity:.3;background:radial-gradient(ellipse at var(--shine-x,50%) var(--shine-y,35%),#fffbdc5c 0%,#fff5c91b 19%,transparent 48%),linear-gradient(115deg,transparent 35%,#ffffff16 48%,#ffffff05 51%,transparent 63%);mix-blend-mode:screen;transition:opacity .16s}
.card-inspector:hover .inspect-card:after{opacity:.76}
.inspect-card-art{aspect-ratio:1.34;background-position:center;background-size:cover;background-repeat:no-repeat}
.inspect-card-art img{width:auto;height:auto;max-width:88%;max-height:88%;object-fit:contain;object-position:center;transform:none!important;animation:none!important;filter:drop-shadow(0 8px 7px #000c)}
.inspect-card-art.item-art img{max-width:68%;max-height:68%}
.inspect-card{grid-template-rows:auto auto minmax(0,1fr) auto auto minmax(42px,auto) auto}
.inspect-card.trainer-card{grid-template-rows:auto auto minmax(105px,1fr) auto minmax(52px,auto) auto}
.collection-card .card-art.normal,.hand-card .card-art.normal,.inspect-card-art.normal{background-image:url('assets/card-bg-normal.svg')}
.collection-card .card-art.fire,.hand-card .card-art.fire,.inspect-card-art.fire{background-image:url('assets/card-bg-fire.svg')}
.collection-card .card-art.water,.hand-card .card-art.water,.inspect-card-art.water{background-image:url('assets/card-bg-water.svg')}
.collection-card .card-art.grass,.hand-card .card-art.grass,.inspect-card-art.grass{background-image:url('assets/card-bg-grass.svg')}
.collection-card .card-art.electric,.hand-card .card-art.electric,.inspect-card-art.electric{background-image:url('assets/card-bg-electric.svg')}
.collection-card .card-art.ice,.hand-card .card-art.ice,.inspect-card-art.ice{background-image:url('assets/card-bg-ice.svg')}
.collection-card .card-art.fighting,.hand-card .card-art.fighting,.inspect-card-art.fighting{background-image:url('assets/card-bg-fighting.svg')}
.collection-card .card-art.poison,.hand-card .card-art.poison,.inspect-card-art.poison{background-image:url('assets/card-bg-poison.svg')}
.collection-card .card-art.ground,.hand-card .card-art.ground,.inspect-card-art.ground{background-image:url('assets/card-bg-ground.svg')}
.collection-card .card-art.flying,.hand-card .card-art.flying,.inspect-card-art.flying{background-image:url('assets/card-bg-flying.svg')}
.collection-card .card-art.psychic,.hand-card .card-art.psychic,.inspect-card-art.psychic{background-image:url('assets/card-bg-psychic.svg')}
.collection-card .card-art.bug,.hand-card .card-art.bug,.inspect-card-art.bug{background-image:url('assets/card-bg-bug.svg')}
.collection-card .card-art.rock,.hand-card .card-art.rock,.inspect-card-art.rock{background-image:url('assets/card-bg-rock.svg')}
.collection-card .card-art.ghost,.hand-card .card-art.ghost,.inspect-card-art.ghost{background-image:url('assets/card-bg-ghost.svg')}
.collection-card .card-art.dragon,.hand-card .card-art.dragon,.inspect-card-art.dragon{background-image:url('assets/card-bg-dragon.svg')}
.collection-card .card-art.steel,.hand-card .card-art.steel,.inspect-card-art.steel{background-image:url('assets/card-bg-steel.svg')}
.collection-card .card-art.fairy,.hand-card .card-art.fairy,.inspect-card-art.fairy{background-image:url('assets/card-bg-fairy.svg')}
.collection-card .card-art.dark,.hand-card .card-art.dark,.inspect-card-art.dark{background-image:url('assets/card-bg-dark.svg')}
.collection-card .card-art.item,.hand-card .card-art.item,.inspect-card-art.item{background-image:url('assets/card-bg-item.svg')}
@media(max-height:700px){.inspect-card{grid-template-rows:auto auto minmax(90px,1fr) auto auto minmax(36px,auto) auto}.inspect-card.trainer-card{grid-template-rows:auto auto minmax(90px,1fr) auto minmax(44px,auto) auto}}
@media(prefers-reduced-motion:reduce){.inspect-card{transition:none;will-change:auto}}

/* Alpha 2.8: larger binder cards, complete passive copy, and uncropped art. */
.collection{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:14px}
.collection-entry .collection-card{aspect-ratio:.715}
.collection-card .collection-face{grid-template-rows:21px 14px minmax(62px,1fr) 16px 22px minmax(48px,auto) 21px;gap:3px;padding:7px}
.collection-card .card-art{width:100%;height:100%;min-height:0;aspect-ratio:1.55;align-self:stretch;display:grid;place-items:center}
.collection-card .card-art img,.hand-card .card-art img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;transform:none!important;animation:none!important;filter:drop-shadow(0 5px 4px #071020c9)}
.collection-card .card-evolution{height:auto;min-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.1}
.collection-card .card-description{grid-template-rows:10px 1fr;min-height:48px;max-height:none;padding:4px 5px;font-size:8px;line-height:1.28;overflow:hidden}
.collection-card .card-description .ability-copy{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-height:1.28;overflow-wrap:anywhere}
.inspect-card-art{aspect-ratio:1.42}
.inspect-card-art img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;transform:none!important;animation:none!important}
.inspect-card-art.item-art img{width:72%;height:72%;max-width:72%;max-height:72%}
@media(max-width:760px){.collection{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}}
@media(max-width:560px){.collection{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-entry .collection-card{aspect-ratio:.69}.collection-card .collection-face{grid-template-rows:20px 13px minmax(54px,1fr) 15px 20px minmax(46px,auto) 19px;gap:2px;padding:5px}.collection-card .card-description{font-size:7px}.collection-card .card-description .ability-copy{-webkit-line-clamp:4}}

/* Keep the source canvas square and centered; never stretch it to the landscape frame. */
.collection-card .card-art,.hand-card .card-art,.inspect-card-art{display:grid;place-items:center;overflow:hidden}
.collection-card .card-art img,.hand-card .card-art img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:auto;object-fit:contain;object-position:center;transform:none!important;animation:none!important}
.inspect-card-art img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:auto;object-fit:contain;object-position:center;transform:none!important;animation:none!important}
.inspect-card-art.item-art img{width:72%;height:72%;inset:14%}

/* Equal card shell and fixed art window across the entire collection. */
.collection-entry{display:grid;grid-template-rows:auto auto;align-content:start;justify-items:stretch}
.collection-entry .collection-card{width:100%;height:auto;min-height:0;aspect-ratio:.69;align-self:start;overflow:hidden}
.collection-card .collection-face{height:100%;min-height:0;grid-template-rows:19px 12px 100px 12px 18px minmax(34px,1fr) 17px;gap:2px;padding:5px;align-content:stretch;overflow:hidden}
.collection-card .card-top,.collection-card .card-identity,.collection-card .card-art,.collection-card .card-evolution,.collection-card .card-move,.collection-card .card-description,.collection-card .card-stats{min-height:0;max-height:none}
.collection-card .card-art{height:100px;min-height:100px;max-height:100px;aspect-ratio:auto;align-self:stretch}
.collection-card .card-description{height:auto;min-height:0;max-height:none;padding:6px 5px 4px}
.collection-card .card-description .ability-copy{-webkit-line-clamp:4}
@media(max-width:560px){.collection-card .collection-face{grid-template-rows:18px 11px 100px 11px 17px minmax(32px,1fr) 16px}.collection-card .card-art{height:100px;min-height:100px;max-height:100px}}

/* Illustrated campaign map: location pins, revealed route and readable card costs. */
.campaign-map-wrap{overflow-x:auto;padding:10px;background:#0b1727;border:1px solid #d6ba747a;border-radius:20px;box-shadow:0 18px 42px #0008,inset 0 1px #fff2c61d}
.campaign-map-legend{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 8px 11px;color:#f5dda9;font-size:11px;font-weight:900;letter-spacing:.1em}
.campaign-map-legend span:last-child{color:#bfd0d3;font-size:10px;font-weight:700;letter-spacing:0}
.trainer-map{position:relative;display:block;width:100%;min-height:0;aspect-ratio:16/10;overflow:hidden;border:1px solid #e3c684a8;border-radius:13px;background:linear-gradient(180deg,#07132215,#06111e22),url('assets/campaign-kanto-v2.png') center/100% 100% no-repeat;box-shadow:inset 0 0 0 3px #071322aa,inset 0 0 80px #0611216b}
.trainer-map:before{z-index:0;inset:0;background:linear-gradient(180deg,#08152712 0%,transparent 22%,transparent 71%,#08152745 100%);pointer-events:none}
.trainer-map:after{display:none}
.kanto-route-art{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none}
.route-done-shadow,.route-next-shadow{fill:none;stroke:#08121fe3;stroke-width:14;stroke-linecap:round;stroke-linejoin:round}
.route-done{fill:none;stroke:#ffe0a0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px #ffde80)}
.route-next{fill:none;stroke:#fff3c3;stroke-width:4;stroke-linecap:round;stroke-dasharray:2 11;opacity:.9;filter:drop-shadow(0 0 4px #fff4b6)}
.map-compass{position:absolute;z-index:2;top:16px;right:17px;width:37px;height:47px;border:1px solid #ffe4a6a6;border-radius:8px;background:#0b1b2cdb;color:#ffedb8;text-align:center;box-shadow:0 3px 12px #0009}.map-compass span{display:block;font-size:20px;line-height:1}
.map-chapter{position:absolute;z-index:2;left:18px;top:16px;padding:7px 11px;border:1px solid #f7d999ad;border-radius:7px;background:#0b1a2de8;color:#ffdf9d;font-size:10px;font-weight:1000;letter-spacing:.15em;box-shadow:0 3px 12px #0009}
.trainer-stage.map-trainer{position:absolute;z-index:3;display:block;width:56px;height:56px;min-height:0;padding:3px;border:2px solid #ffe4a2;border-radius:50%;background:#091b2ae9;box-shadow:0 0 0 4px #0a1a2aba,0 6px 16px #000b;transform:translate(-50%,-50%);cursor:pointer}
.trainer-stage.map-trainer:hover:not(:disabled),.trainer-stage.map-trainer.selected{z-index:8;transform:translate(-50%,-50%) scale(1.16);border-color:#fff4c8;box-shadow:0 0 0 5px #fdd9877a,0 0 24px #ffd16e,0 7px 17px #000d}
.trainer-stage.map-trainer.selected{animation:map-current-pulse 2.5s ease-in-out infinite}
@keyframes map-current-pulse{50%{box-shadow:0 0 0 8px #fdd98745,0 0 31px #ffd16e,0 7px 17px #000d}}
.map-node-ring{display:block;width:100%;height:100%;border:0;border-radius:50%;background:#243d51;box-shadow:none}.map-node-ring img{width:100%;height:100%;border-radius:50%;object-fit:cover}.map-node-ring i{display:grid;place-items:center;width:100%;height:100%;color:#c7d2d3;font-size:15px;font-style:normal;font-weight:900}.map-node-ring>b{position:absolute;right:-8px;bottom:-8px;display:grid;place-items:center;min-width:24px;height:24px;padding:0 3px;border:2px solid #ffe0a0;border-radius:50%;background:#10243b;color:#fff0bb;font-size:9px;font-weight:1000}
.map-node-label{position:absolute;top:calc(100% + 12px);left:50%;display:grid;gap:2px;width:max-content;max-width:142px;padding:5px 8px;border:1px solid #f8dfadbd;border-radius:7px;background:#0c1a2df2;text-align:center;box-shadow:0 4px 13px #000a;transform:translateX(-50%);pointer-events:none}.map-node-label strong{overflow:visible;color:#fff0c4;font-size:11px;line-height:1.1;white-space:nowrap}.map-node-label small{overflow:visible;color:#d9e3e5;font-size:8px;line-height:1.15;white-space:normal}
.map-trainer.locked{width:36px;height:36px;border-color:#ccd1c69c;background:#102034d9;filter:none;opacity:.77;cursor:not-allowed}.map-trainer.locked .map-node-ring{background:#12243c}.map-trainer.locked .map-node-ring>b,.map-trainer.locked .map-node-label{display:none}.map-trainer.locked .map-node-ring i{font-size:10px}.map-trainer.won{border-color:#a6efb5;box-shadow:0 0 0 4px #0a1a2aba,0 0 17px #81e4a79c,0 6px 16px #000b}.map-trainer.won .map-node-ring>b{border-color:#aff0c0;background:#20533d;color:#e5ffe8}
.trainer-detail{margin-top:12px;padding:17px 20px;border:1px solid #e9ca8799;border-radius:15px;background:linear-gradient(115deg,#243c53,#12243b 69%);box-shadow:inset 0 1px #ffffff25,0 10px 24px #0005}.trainer-detail-head img{width:64px;height:64px;border:2px solid #f6d99b;border-radius:12px}.trainer-detail-head strong{font-size:22px}.trainer-detail p{max-width:75ch;font-size:13px;line-height:1.5}.trainer-prize{font-size:12px}
.inspect-attack{gap:10px}.inspect-attack strong{min-width:0;overflow:visible;text-overflow:clip;white-space:normal}.inspect-attack b{flex:none;font-size:15px;white-space:nowrap}
@media(max-width:760px){.trainer-map{width:max(100%,760px);min-height:0;aspect-ratio:16/10}.campaign-map-wrap{scrollbar-color:#bc995f #0a1828}.trainer-stage.map-trainer{width:51px;height:51px}.map-trainer.locked{width:34px;height:34px}.map-node-label{max-width:120px}.map-node-label small{font-size:8px}}
@media(prefers-reduced-motion:reduce){.trainer-stage.map-trainer.selected{animation:none}}

/* Campaign trainer dossier lives on the map, with the fight action inside it. */
.campaign-map-wrap{position:relative;overflow-x:auto}
.trainer-detail{position:absolute;z-index:20;top:51px;right:18px;bottom:18px;display:flex;flex-direction:column;width:min(390px,calc(100% - 36px));max-width:none;min-height:0;margin:0;padding:0;border:1px solid #f1d392b8;border-radius:17px;background:linear-gradient(155deg,#223b54f5,#0e1c31f8 44%,#0a1729fb);box-shadow:0 0 0 1px #0a1520,0 24px 65px #000d,inset 0 1px #ffffff31;backdrop-filter:blur(16px);overflow:hidden}
.trainer-detail[hidden]{display:none!important}
.trainer-detail-close{position:absolute;z-index:3;top:12px;right:12px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid #f7ddaabb;border-radius:50%;background:#0b1a2dc9;color:#fff0ca;font-size:23px;line-height:1;cursor:pointer}.trainer-detail-close:hover{background:#405574}
.trainer-detail-content{display:flex;flex:1;min-height:0;flex-direction:column}
.trainer-detail-head{position:relative;flex:none;display:flex;align-items:center;gap:13px;min-height:138px;padding:15px 48px 15px 15px;border-bottom:1px solid #edce876e;background:radial-gradient(circle at 16% 40%,#a8b58d5c,transparent 40%),linear-gradient(120deg,#334c61,#14263f);overflow:hidden}.trainer-detail-head.water,.trainer-detail-head.ice{background:radial-gradient(circle at 18% 35%,#48c5ed70,transparent 45%),linear-gradient(120deg,#275574,#152641)}.trainer-detail-head.fire,.trainer-detail-head.electric{background:radial-gradient(circle at 18% 35%,#f3976170,transparent 45%),linear-gradient(120deg,#6d4234,#172238)}.trainer-detail-head.grass,.trainer-detail-head.poison{background:radial-gradient(circle at 18% 35%,#7adf9370,transparent 45%),linear-gradient(120deg,#2b594c,#18263a)}.trainer-detail-head.psychic,.trainer-detail-head.ghost,.trainer-detail-head.dragon{background:radial-gradient(circle at 18% 35%,#b598f070,transparent 45%),linear-gradient(120deg,#4a406c,#18243c)}
.trainer-detail-head img{flex:none;width:106px;height:106px;border:2px solid #f4d392;border-radius:13px;background:#0a1b2c;object-fit:cover;object-position:center 22%;box-shadow:0 5px 17px #0007}.trainer-detail-head>div{display:grid;gap:3px;min-width:0}.trainer-detail-head small{color:#ffe0a3;font-size:9px;letter-spacing:.12em}.trainer-detail-head strong{color:#fff3d6;font-size:23px;line-height:1.05}.trainer-detail-head span{color:#e1e9ef;font-size:11px;line-height:1.25}.trainer-detail-head>b{position:absolute;right:18px;bottom:15px;font-size:26px;filter:drop-shadow(0 2px 4px #0008)}
.trainer-detail-body{flex:1;min-height:0;overflow-y:auto;padding:15px 17px 20px;scrollbar-color:#ba9d66 #102139;scrollbar-width:thin}
.trainer-difficulty{display:flex;align-items:center;gap:7px;padding:9px 10px;border:1px solid #d8c08a70;border-radius:9px;background:#ffffff0b}.trainer-difficulty>span:first-child{margin-right:auto;color:#aec6ce;font-size:9px;font-weight:1000;letter-spacing:.1em}.trainer-difficulty strong{color:#ffdfa0;font-size:12px}.difficulty-stars{color:#ffcc66;font-size:13px;white-space:nowrap}.difficulty-stars i{color:#6f7d8a;font-style:normal}
.trainer-detail .trainer-story{margin:13px 0;color:#f0f1e9;font-size:12px;line-height:1.5}.trainer-focus{display:grid;gap:4px;padding:10px 11px;border-left:3px solid #e9c87e;border-radius:4px 8px 8px 4px;background:#d2e7f00c}.trainer-focus small{color:#efd08d;font-size:9px;font-weight:1000;letter-spacing:.1em}.trainer-focus span{color:#dfe9eb;font-size:11px;line-height:1.35}
.trainer-team,.trainer-rewards{margin-top:18px}.trainer-panel-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:9px;padding-bottom:7px;border-bottom:1px solid #e1ca9570}.trainer-panel-heading strong{color:#fff1c7;font-size:13px}.trainer-panel-heading small{color:#b4c8d4;font-size:10px;white-space:nowrap}
.trainer-team-grid,.trainer-reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.trainer-team-pokemon,.trainer-reward-card{display:grid;grid-template-rows:57px auto;justify-items:center;align-content:start;gap:3px;min-width:0;min-height:84px;padding:5px 3px;border:1px solid #9db5bd64;border-radius:9px;background:linear-gradient(145deg,#2c435c9c,#112237e8);text-align:center}.trainer-team-pokemon img,.trainer-reward-card img{display:block;width:100%;height:57px;object-fit:contain;filter:drop-shadow(0 3px 4px #000a)}.trainer-team-pokemon span,.trainer-reward-card span{max-width:100%;color:#e7edf1;font-size:9px;font-weight:800;line-height:1.15;overflow-wrap:anywhere}.trainer-reward-card{border-color:#e7c88170;background:linear-gradient(145deg,#4b4153a3,#1d273de8)}
.trainer-medal-reward{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding:10px;border:1px solid #ebc57e87;border-radius:9px;background:#e1bc7320}.trainer-medal-reward span{color:#efd296;font-size:9px;font-weight:1000;letter-spacing:.08em}.trainer-medal-reward b{color:#fff0c0;font-size:11px;text-align:right}
.trainer-detail-actions{flex:none;display:grid;gap:7px;padding:11px 15px 14px;border-top:1px solid #ddc38d76;background:#08182bf5}.trainer-detail-actions .campaign-start,.trainer-detail-actions .open-collection{display:block;width:100%;max-width:none;min-height:43px;margin:0}.trainer-detail-actions .campaign-start{font-size:14px}.trainer-detail-actions .open-collection{min-height:35px;font-size:11px}
.map-deck-message{margin:0;color:#d6e4e6;font-size:10px;line-height:1.3;text-align:center}
@media(max-width:760px){.trainer-detail{position:fixed;z-index:200;inset:8vh 8px 8px;width:auto;max-width:none;max-height:none;border-radius:16px}.trainer-detail-head{min-height:113px}.trainer-detail-head img{width:82px;height:82px}.trainer-detail-head strong{font-size:21px}.trainer-detail-body{padding:12px 13px 18px}.trainer-team-grid,.trainer-reward-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.map-node-ring img{object-position:center 22%}.enemy-hero .portrait img{object-position:center 22%}

/* Home: an illustrated entrance to the three parts of the game. */
.main-home{max-width:1240px;margin:clamp(12px,3vh,34px) auto 0;padding-bottom:32px}
.main-home .menu-header{min-height:315px;margin-bottom:0;align-items:center;padding:36px clamp(25px,4vw,54px);border:1px solid #e9c88c9c;border-radius:22px;background:linear-gradient(90deg,#081528f7 0%,#081528dc 31%,#0815286b 58%,#08152819 100%),url('assets/home-league-v1.png') center 52%/cover no-repeat;box-shadow:0 24px 55px #0009,inset 0 1px #fff3}
.main-home .menu-header:after{right:-160px;top:-215px;width:510px;height:510px}
.home-hero-copy{max-width:660px}.main-home .menu-header h1{max-width:650px;margin:10px 0 12px;color:#fff2cc;font-size:clamp(45px,5.3vw,70px);line-height:.98;letter-spacing:-.055em;text-shadow:0 5px 22px #000d}.main-home .menu-header p{max-width:500px;color:#f5e9d4;font-size:clamp(12px,1.2vw,15px);line-height:1.45;text-shadow:0 2px 10px #000}
.home-continue{display:inline-flex;min-height:43px;align-items:center;justify-content:space-between;gap:30px;margin-top:24px;padding:10px 16px;border:1px solid #ffdb95;border-radius:10px;background:linear-gradient(180deg,#ffe1a3,#e4a453);box-shadow:0 6px 18px #0008,inset 0 1px #fff9;color:#34210d;font-size:12px;font-weight:1000;cursor:pointer;transition:transform .18s,box-shadow .18s}.home-continue span{font-size:18px;line-height:1}.home-continue:hover{transform:translateY(-3px);box-shadow:0 10px 22px #0009,0 0 22px #ffc7766b}.home-continue:focus-visible{outline:3px solid #fff1bf;outline-offset:3px}
.main-home .menu-progress{position:absolute;z-index:2;top:23px;right:27px;margin:0;background:#07182cbd;backdrop-filter:blur(8px)}
.home-menu-grid{gap:18px;margin-top:19px}.home-destination{min-height:390px;gap:8px;overflow:hidden;padding:0 18px 15px;border-color:#b1c0cb73;border-radius:17px;background:linear-gradient(150deg,#233b54,#13253b 70%,#101d30);cursor:pointer;transition:transform .22s,border-color .22s,box-shadow .22s}.home-destination:after{content:'';position:absolute;z-index:3;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(330px circle at var(--pointer-x,50%) var(--pointer-y,20%),#fff5d316,transparent 68%);opacity:0;transition:opacity .2s}.home-destination:hover:after{opacity:1}.home-destination:hover{transform:translateY(-7px);border-color:#efd396;box-shadow:0 25px 44px #0009,0 0 22px #f0c87924,inset 0 1px #ffffff37}.home-destination strong{position:relative;z-index:1;margin-top:0;color:#fff3cf;font-size:clamp(22px,2.25vw,29px);line-height:1.08}.home-destination p{position:relative;z-index:1;max-width:320px;min-height:39px;color:#d8e3ea;font-size:12px;line-height:1.48}.home-destination .destination-kicker{position:relative;z-index:1;margin-top:9px;color:#f4d296}.home-destination .destination-progress{position:relative;z-index:1;gap:5px;margin-top:auto;padding-top:7px;color:#f3e0b4}.home-destination .destination-cta{position:relative;z-index:1;margin-top:4px;padding-top:11px;border-color:#e3c9894d;font-size:12px}.home-destination .destination-cta b{font-size:18px;transition:transform .18s}.home-destination:hover .destination-cta b{transform:translateX(5px)}
.destination-media{position:relative;display:block;flex:none;width:calc(100% + 36px);height:174px;margin:0 -18px 3px;overflow:hidden;border-bottom:1px solid #f3dca954}.destination-media:before{content:'';position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,#0a172425 0%,transparent 45%,#0b1b30c9 100%);pointer-events:none}.campaign-media{background:linear-gradient(#07162921,#07162921),url('assets/campaign-kanto-v2.png') center 44%/cover no-repeat}.campaign-media:after{content:'';position:absolute;z-index:1;left:42%;top:24%;width:34%;height:45%;border:2px solid #ffe39f90;border-radius:50%;box-shadow:0 0 0 11px #ffd97d27,0 0 25px #ffdd8b8f;transform:rotate(-25deg);transition:transform .5s,box-shadow .5s}.campaign-destination:hover .campaign-media:after{transform:rotate(15deg) scale(1.12);box-shadow:0 0 0 16px #ffd97d29,0 0 36px #ffdd8bb0}.destination-rival{position:absolute;z-index:2;right:13px;bottom:12px;display:flex;align-items:center;gap:7px;max-width:75%;padding:6px 10px 6px 6px;border:1px solid #ffe1a5a6;border-radius:11px;background:#10233cdb;box-shadow:0 8px 20px #0008;backdrop-filter:blur(8px)}.destination-rival img{width:40px;height:40px;border-radius:8px;object-fit:cover;object-position:center 24%;border:1px solid #ffdea887}.destination-rival span{display:grid;gap:2px;min-width:0}.destination-rival small{color:#ffdf95;font-size:8px;font-weight:1000;letter-spacing:.11em}.destination-rival b{overflow:hidden;color:#fff4d7;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.collection-media{background:radial-gradient(circle at 50% 64%,#aa83a87d,transparent 49%),linear-gradient(135deg,#182c48,#314b62 54%,#20263f)}.collection-media:after{content:'';position:absolute;left:12%;right:12%;bottom:11px;height:17px;border-radius:50%;background:#030c18bd;filter:blur(11px)}.home-card-mini{position:absolute;z-index:2;bottom:11px;left:50%;display:grid;place-items:center;width:93px;height:126px;overflow:hidden;border:4px solid #ebd8ad;border-radius:10px;background:#12304b;box-shadow:0 0 0 1px #fff8dc,0 9px 13px #000b,inset 0 0 0 2px #fff9;transition:transform .26s}.home-card-mini:before{content:'';position:absolute;z-index:2;top:5px;left:6px;right:6px;height:8px;border-radius:4px;background:#fff8d999;box-shadow:0 2px 0 #192339b8}.home-card-mini img{display:block;width:88%;height:80%;margin-top:9px;object-fit:contain;filter:drop-shadow(0 4px 4px #0009)}.home-card-mini.fire{background:url('assets/card-bg-fire.svg') center/cover;transform:translateX(-112px) rotate(-17deg)}.home-card-mini.water{z-index:3;background:url('assets/card-bg-water.svg') center/cover;transform:translateX(-45px) rotate(1deg)}.home-card-mini.grass{background:url('assets/card-bg-grass.svg') center/cover;transform:translateX(22px) rotate(16deg)}.collection-destination:hover .home-card-mini.fire{transform:translate(-122px,-6px) rotate(-22deg)}.collection-destination:hover .home-card-mini.water{transform:translate(-45px,-11px) rotate(1deg)}.collection-destination:hover .home-card-mini.grass{transform:translate(32px,-6px) rotate(21deg)}.collection-spark{position:absolute;z-index:4;top:18px;right:25px;color:#ffe8a3;font-size:25px;text-shadow:0 0 16px #ffd669;animation:home-spark 3s ease-in-out infinite}@keyframes home-spark{50%{opacity:.48;transform:scale(.72) rotate(30deg)}}
.multiplayer-media{background:linear-gradient(#07162924,#07162924),url('assets/home-arena-v1.png') center 54%/cover no-repeat}.arena-orbit{position:absolute;z-index:1;left:50%;top:48%;width:90px;height:90px;border:1px solid #bdeafa9c;border-radius:50%;box-shadow:0 0 0 9px #a5e8fb14,0 0 24px #9aeaff84;transform:translate(-50%,-50%);transition:transform .3s}.multiplayer-destination:hover .arena-orbit{transform:translate(-50%,-50%) scale(1.15)}.arena-orbit:after{content:'VS';position:absolute;inset:0;display:grid;place-items:center;color:#fff5d9;font:1000 23px/1 Georgia,serif;text-shadow:0 3px 10px #000}.media-soon{position:absolute;z-index:3;top:12px;right:12px;padding:5px 8px;border:1px solid #f5dba68c;border-radius:20px;background:#10243bde;color:#ffe4a7;font-size:8px;font-weight:1000;letter-spacing:.09em}.multiplayer-destination .coming-soon-pill{margin-top:auto}.multiplayer-destination .destination-progress{display:none}.home-footer{margin:14px 2px 0;color:#aebdcb;font-size:11px}
@media(max-width:900px){.home-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.multiplayer-destination{grid-column:1/-1;min-height:300px}.multiplayer-destination .destination-media{height:150px}}
@media(max-width:700px){.main-home{margin-top:7px}.main-home .menu-header{min-height:300px;align-items:flex-start;padding:22px 20px;background-position:62% center}.main-home .menu-header h1{margin-top:30px;font-size:clamp(39px,9vw,55px)}.main-home .menu-progress{top:15px;right:15px}.home-menu-grid{grid-template-columns:1fr;gap:13px;margin-top:13px}.home-destination,.multiplayer-destination{grid-column:auto;min-height:345px}.destination-media,.multiplayer-destination .destination-media{height:158px}.home-destination p{min-height:0}}
@media(max-width:430px){.main-home .menu-header{min-height:290px;padding:18px 17px}.main-home .menu-header h1{margin-top:44px;font-size:37px}.main-home .menu-header p{font-size:12px}.home-continue{margin-top:16px}.home-destination{min-height:325px}.destination-media{height:143px}}
@media(prefers-reduced-motion:reduce){.home-continue,.home-destination,.home-destination .destination-cta b,.home-card-mini,.campaign-media:after,.arena-orbit{transition:none}.collection-spark{animation:none}}
.home-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.reset-progress{padding:6px 9px;border:1px solid #aebdcb65;border-radius:7px;background:#14243a;color:#cbd7e2;font:inherit;font-size:11px;cursor:pointer}
.reset-progress:hover,.reset-progress:focus-visible{border-color:#f0c879;color:#fff0c6}
.test-actions{display:flex;gap:8px;flex-wrap:wrap}

/* Campaign medals are earned objects; unbeaten challenges display an empty mount. */
.trainer-detail-head>b.trainer-empty-medal{right:17px;bottom:14px;display:grid;place-items:center;width:31px;height:31px;border:2px dashed #b7c4cb8a;border-radius:50%;background:#06162778;box-shadow:inset 0 2px 7px #0007;filter:none}
.trainer-detail-head>b.trainer-earned-medal{right:13px;bottom:10px;display:grid;place-items:center;width:41px;height:41px;border:1px solid #ffdf9c;border-radius:50%;background:radial-gradient(circle at 32% 25%,#ffecae,#b27b38 72%);box-shadow:0 3px 12px #0009,0 0 13px #ffdc8870;font-size:22px}
.trainer-medal-reward.pending{border-style:dashed;border-color:#aebdc270;background:#aab7bf0c}.trainer-medal-reward.pending span,.trainer-medal-reward.pending b{color:#b9c7cf}.medal-outline{display:inline-block;width:15px;height:15px;margin-right:6px;border:2px dashed #b8c4cb9c;border-radius:50%;vertical-align:-3px}
.map-trainer.won .map-node-ring>b.map-earned-medal{right:-16px;bottom:-12px;min-width:28px;height:28px;border:2px solid #ffe2a1;background:radial-gradient(circle at 30% 22%,#fff1bb,#a56b2e);box-shadow:0 3px 8px #000b,0 0 11px #ffe29291;font-size:16px;line-height:1}
.map-trainer .map-node-ring>b.map-stage-number{right:-8px;bottom:-8px}

/* Battle room: clear decisions, readable units and an integrated card hand. */
.app{max-width:1390px}.board{padding:18px clamp(12px,2vw,25px) 18px;background:linear-gradient(180deg,#071424e8 0%,#0a1929ad 18%,#0b1b2b88 46%,#0b1b2bbf 76%,#071323f2 100%),url('assets/battlefield.jpg') center/cover no-repeat;border-color:#e4c68b;box-shadow:0 25px 70px #000c,inset 0 0 0 2px #17314b,inset 0 0 60px #030d1ea8}.board:before{background:linear-gradient(90deg,#0712219e,transparent 12%,transparent 88%,#0712219e)}
.board>.enemy-hero{min-width:min(100%,380px);margin:1px auto 12px;padding:8px 15px;border-color:#ffcf9e9c;background:linear-gradient(110deg,#271d2adf,#0b1b2ce8);box-shadow:0 8px 23px #0009}.board>.enemy-hero.targetable{box-shadow:0 0 0 2px #ffdf8b,0 0 22px #ffe08b8f}.board>.enemy-hero .portrait{width:49px;height:49px}.board>.enemy-hero .hero-label{color:#fff3d6;font-size:14px}.board>.enemy-hero .sub{font-size:10px}.board>.enemy-hero .health{margin-left:auto;font-size:14px}
.battle-lane-label{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;max-width:1220px;margin:0 auto;padding:6px 8px 4px;border-bottom:1px solid #cfdbe346}.battle-lane-label span{color:#ffe1ab;font-size:10px;font-weight:1000;letter-spacing:.16em}.battle-lane-label small{color:#c2d3da;font-size:10px}.battle-lane-label.player{margin-top:8px}.battle-lane-label.player span{color:#abe8c2}
.board>.lane{max-width:1220px;min-height:288px;gap:clamp(8px,1vw,16px);padding:9px 4px}.board .slot{position:relative;max-width:220px;height:274px;border:1px dashed #c3d8df66;border-radius:15px;background:linear-gradient(155deg,#25415b45,#08182b8c 75%);box-shadow:inset 0 1px #ffffff18,inset 0 0 25px #050e1b88}.board .slot.empty:after{font-size:29px;color:#d9e6e651}.board .slot.can-drop{border:2px solid #a1eab4;background:#4d976043;box-shadow:inset 0 0 30px #85e6a950,0 0 18px #8cefaa8a}.board .slot.hover{background:#64b28264}
.board .unit{grid-template-rows:24px 83px auto 26px minmax(58px,1fr) 8px 20px;gap:3px;padding:7px;border-width:2px;border-radius:13px;box-shadow:0 12px 22px #000c,inset 0 1px #ffffff48}.board .unit-head{gap:5px;padding-bottom:3px}.board .unit .name{font-size:clamp(12px,1.15vw,15px);line-height:1.1}.board .unit .unit-ready{max-width:none;padding:4px 6px;font-size:8px;letter-spacing:.02em}.board .unit .unit-art{height:83px;min-height:83px;border-width:2px}.board .unit .unit-badges{max-height:31px;gap:3px}.board .unit .unit-badge{font-size:8px;padding:3px 4px}.board .unit-move{padding:4px 7px}.board .unit-move strong{font-size:clamp(10px,1vw,13px)}.board .unit-move b{font-size:13px}.board .unit-passive{gap:4px;padding:6px 7px;overflow:auto;scrollbar-width:thin;scrollbar-color:#a9b8bf55 transparent}.board .unit-passive small{font-size:8px}.board .unit-passive span{display:block;overflow:visible;font-size:10px;line-height:1.3;-webkit-line-clamp:unset}.board .unit-health .hp-meter{height:8px}.board .unit-health>strong{font-size:10px}.board .unit .unit-weak{align-self:center;font-size:8px;white-space:normal;line-height:1.1}.board .unit.sleeping{filter:saturate(.72) brightness(.82)!important}.board .unit.ready{box-shadow:0 0 0 1px #94e4aa8c,0 10px 24px #000b,0 0 18px #78d9a83b}.board .unit.provoker{box-shadow:0 0 0 3px #8bdfff,0 0 22px #5ec9ffb0,0 10px 22px #000a}.board .unit.targetable{outline:4px solid #ffe393;outline-offset:2px}.board .unit:focus-visible{outline:4px solid #ffdb8a;outline-offset:2px}
.slot-info{position:absolute;z-index:8;top:50px;right:11px;display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid #fff2ce9c;border-radius:50%;background:#091a2edf;color:#fff1c6;font-size:17px;line-height:1;box-shadow:0 3px 9px #0009;cursor:pointer}.slot-info:hover,.slot-info:focus-visible{background:#e7bb72;color:#102033;outline:2px solid #fff1c7;outline-offset:1px}
.battle-focus{position:relative;z-index:2;display:grid;grid-template-columns:45px minmax(0,1fr) minmax(220px,.7fr);align-items:center;gap:13px;width:100%;max-width:1220px;min-height:88px;margin:5px auto 1px;padding:11px 15px;border:1px solid #e5cb94a6;border-radius:14px;background:linear-gradient(110deg,#172d44f2,#0c1d32ef 70%);box-shadow:0 7px 22px #0008,inset 0 1px #ffffff26}.battle-focus-icon{display:grid;place-items:center;width:43px;height:43px;border:1px solid #ffe1aa;border-radius:12px;background:#273e52;color:#ffe2a6;font-size:24px;box-shadow:inset 0 1px #fff5}.battle-focus-copy{min-width:0}.battle-focus-copy>span{display:block;margin-bottom:3px;color:#f4d496;font-size:8px;font-weight:1000;letter-spacing:.13em}.battle-focus-copy strong{display:block;overflow:hidden;color:#fff2d4;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.battle-focus-copy p{margin:4px 0 0;color:#dce6e7;font-size:11px;line-height:1.35}.battle-focus-stats{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:5px}.battle-focus-stats span{padding:5px 7px;border:1px solid #c5d5da64;border-radius:7px;background:#061625a8;color:#ecf2ef;font-size:10px;font-weight:800}.battle-focus.fire{border-color:#f6a77f}.battle-focus.water{border-color:#8bd5f4}.battle-focus.grass{border-color:#a8de89}.battle-focus.psychic,.battle-focus.ghost,.battle-focus.poison{border-color:#d2a8e5}
.board>.player-row{max-width:1220px;margin:12px auto 4px}.board>.player-row .hero{margin:0;min-height:58px;max-width:min(100%,460px);background:#0b2132e8}.board>.player-row .hero-label{font-size:13px}.board>.player-row .sub{font-size:10px}.board>.player-row .health{font-size:13px}.board>.player-row .hud-stats{display:flex;align-items:center;gap:8px}.board .energy{min-width:96px;text-align:center;border-color:#8bd6f2;background:#113b56;color:#d9f3ff;font-size:13px}.board .turn-pill{font-size:11px}
.board>.hand-area{margin-top:13px;padding:13px 15px 12px;border:1px solid #e5c789ad;border-radius:15px;background:linear-gradient(170deg,#152b41ed,#071626f4);box-shadow:inset 0 1px #ffffff2f,0 13px 28px #0009}.board .hand-heading{width:100%;padding:0 2px 9px;border-bottom:1px solid #d7c49359}.hand-kicker{display:block;margin-bottom:2px;color:#f6d58f;font-size:8px;font-weight:1000;letter-spacing:.15em}.board .hand-heading strong{font-size:17px}.board .hand-heading small{color:#d4e0e8;font-size:11px}.board>.hand-area .hand{min-height:238px;gap:10px;padding:16px 8px 15px}.board>.hand-area .hand-card{flex:0 0 157px;width:157px;height:222px;margin-left:0;transform:none;scroll-snap-align:center}.board>.hand-area .hand-card:hover,.board>.hand-area .hand-card.chosen{z-index:5;transform:translateY(-8px) scale(1.035)}.board>.hand-area .hand-card.disabled{opacity:.58;filter:grayscale(.25)}.board>.hand-area .hand-card{grid-template-rows:22px 16px minmax(64px,1fr) 11px 22px 37px 23px;gap:3px;padding:7px}.board>.hand-area .card-name{font-size:12px}.board>.hand-area .card-stage{font-size:7px}.board>.hand-area .card-art{height:auto;min-height:64px;flex:none}.board>.hand-area .card-art img{transform:none}.board>.hand-area .card-evolution{font-size:7px;line-height:11px}.board>.hand-area .card-move{height:auto;font-size:9px}.board>.hand-area .card-description{grid-template-rows:10px 1fr;font-size:8px}.board>.hand-area .card-description .coin-label{font-size:6px;line-height:10px}.board>.hand-area .card-description .ability-copy{-webkit-line-clamp:3}.board>.hand-area .card-stats{font-size:7px}.board>.hand-area .card-stats span{min-height:21px}.board>.hand-area .action-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding-top:9px;border-top:1px solid #d7c49359}.board .battle-rule{color:#c5d2dc;font-size:10px}.board #end-turn{min-width:166px;border:1px solid #ffe0a5;background:linear-gradient(180deg,#ffdc9b,#d99549);color:#2f200f;box-shadow:0 4px 13px #0007;font-size:12px}.board #end-turn:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-2px)}
.instructions{max-width:1050px;margin:14px auto 0;color:#b9c9d5;font-size:11px}
.hand-heading-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px}.hand-heading-actions .btn{min-height:32px;padding:6px 9px;border-color:#d5c48c8c;color:#fff0c9;font-size:10px}.hand-heading-actions .btn:hover{border-color:#ffe0a0;background:#354a5e}
@media(max-width:900px){.battle-focus{grid-template-columns:40px minmax(0,1fr);gap:8px}.battle-focus-icon{width:38px;height:38px}.battle-focus-stats{grid-column:1/-1;justify-content:flex-start}.board>.lane{max-width:none;grid-template-columns:repeat(5,170px);justify-content:flex-start;overflow-x:auto;overflow-y:hidden;min-height:284px;padding:8px 6px 13px;scroll-snap-type:x proximity;scrollbar-width:thin}.board .slot{flex:none;width:164px;max-width:none;height:265px;scroll-snap-align:center}.board .unit{grid-template-rows:22px 76px auto 24px minmax(57px,1fr) 7px 20px}.board .unit .unit-art{height:76px;min-height:76px}.board .unit .unit-passive span{font-size:9px}.board .unit .unit-weak{font-size:7px}.board>.hand-area .hand-card{flex-basis:145px;width:145px}}
@media(max-width:600px){.board{padding:10px 7px}.board>.enemy-hero{width:100%;min-width:0;max-width:none;margin-bottom:8px}.battle-lane-label{padding:5px 6px}.battle-lane-label small{font-size:8px}.board>.lane{grid-template-columns:repeat(5,148px);min-height:264px}.board .slot{width:143px;height:245px}.board .unit{grid-template-rows:21px 66px auto 23px minmax(53px,1fr) 7px 19px;padding:5px}.board .unit .unit-art{height:66px;min-height:66px}.board .unit .name{font-size:11px}.board .unit .unit-ready{font-size:7px}.board .unit .unit-badge{font-size:7px}.board .unit .unit-passive{padding:4px 5px}.board .unit .unit-passive span{font-size:8px}.board .unit .unit-weak{font-size:7px}.slot-info{top:42px;right:8px;width:22px;height:22px}.battle-focus{min-height:0;margin:4px auto;padding:9px}.battle-focus-copy strong{font-size:12px}.battle-focus-copy p{font-size:10px}.battle-focus-stats span{font-size:9px}.board>.player-row{align-items:stretch;flex-direction:column}.board>.player-row .hero{max-width:none}.board>.player-row .hud-stats{justify-content:space-between}.board>.hand-area{padding:10px 7px}.board>.hand-area .hand{min-height:210px}.board>.hand-area .hand-card{flex-basis:141px;width:141px;height:206px}.board>.hand-area .hand-card{grid-template-rows:20px 14px minmax(55px,1fr) 10px 20px 34px 21px}.board>.hand-area .card-art{min-height:55px}.board>.hand-area .action-bar{flex-wrap:wrap}.board>.hand-area .battle-rule{order:3;width:100%;text-align:center}.board #end-turn{min-width:145px}}
@media(prefers-reduced-motion:reduce){.board #end-turn{transition:none}}
.board>.lane{min-height:310px}.board .slot{height:290px}.board>.hand-area .hand-card{height:236px;grid-template-rows:22px 16px minmax(64px,1fr) 11px 22px 42px 23px}
@media(max-width:900px){.board>.lane{min-height:294px}.board .slot{height:274px}}
@media(max-width:600px){.board>.lane{min-height:270px}.board .slot{height:252px}.board>.hand-area .hand-card{height:212px;grid-template-rows:20px 14px minmax(55px,1fr) 10px 20px 39px 21px}}

/* One-screen 2D table: the hand floats over the board as a playable fan. */
.app.battle-table{display:grid;grid-template-rows:40px 26px minmax(0,1fr);gap:3px;width:100%;max-width:none;height:100dvh;min-height:0;overflow:hidden;padding:5px clamp(7px,1.2vw,18px)}
.app.battle-table>.top{min-height:0}.app.battle-table .brand{font-size:13px}.app.battle-table .brand small{font-size:8px;margin-top:1px}.app.battle-table .top-actions{display:flex;gap:6px}.app.battle-table .top-actions .btn{padding:6px 10px;font-size:10px}.app.battle-table>.notice{min-height:0;padding:4px 8px;font-size:11px;line-height:17px}.app.battle-table>.instructions,.app.battle-table>.footer{display:none}
.app.battle-table .board{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:39px 17px minmax(155px,1fr) 56px 17px minmax(155px,1fr) 42px 184px;gap:0;min-height:0;padding:6px clamp(8px,1.4vw,20px);overflow:hidden}
.app.battle-table .board>.enemy-hero{grid-row:1;min-height:0;height:37px;min-width:0;width:min(380px,100%);margin:0 auto;padding:3px 10px;gap:7px}.app.battle-table .enemy-hero .portrait{width:32px;height:32px}.app.battle-table .enemy-hero .portrait img{width:100%;height:100%;object-fit:cover}.app.battle-table .enemy-hero .hero-label{font-size:11px}.app.battle-table .enemy-hero .sub{font-size:9px}.app.battle-table .enemy-hero .health{padding:3px 8px;font-size:12px}
.app.battle-table .battle-lane-label{min-height:0;margin:0 auto;padding:1px 7px;border:0}.app.battle-table .battle-lane-label.enemy{grid-row:2}.app.battle-table .battle-lane-label.player{grid-row:5}.app.battle-table .battle-lane-label span{font-size:9px}.app.battle-table .battle-lane-label small{font-size:9px}
.app.battle-table .board>.lane{min-height:0;height:100%;max-width:1250px;padding:3px 4px;gap:clamp(5px,.85vw,12px);align-items:stretch}.app.battle-table #cpu-lane{grid-row:3}.app.battle-table #player-lane{grid-row:6}.app.battle-table .board .slot{width:100%;max-width:225px;height:100%;min-height:0;border-radius:11px}.app.battle-table .board .unit{display:grid;grid-template-rows:19px minmax(38px,1fr) auto 21px minmax(23px,.65fr) 5px 14px;gap:2px;height:100%;min-height:0;padding:4px 6px;overflow:hidden;border-radius:10px}.app.battle-table .board .unit-head{min-height:0;padding:0}.app.battle-table .board .unit .name{margin:0;font-size:clamp(10px,1vw,13px)}.app.battle-table .board .unit .unit-ready{padding:2px 4px;font-size:7px}.app.battle-table .board .unit .unit-art{height:100%;min-height:0}.app.battle-table .board .unit .unit-badges{max-height:15px;overflow:hidden}.app.battle-table .board .unit .unit-badge{padding:1px 3px;font-size:7px}.app.battle-table .board .unit-move{height:21px;padding:2px 5px}.app.battle-table .board .unit-move strong{font-size:10px}.app.battle-table .board .unit-move b{font-size:11px}.app.battle-table .board .unit-passive{min-height:0;padding:2px 5px;gap:1px;overflow:auto}.app.battle-table .board .unit-passive small{font-size:7px}.app.battle-table .board .unit-passive span{font-size:8px;line-height:1.2}.app.battle-table .board .unit-health .hp-meter{height:5px}.app.battle-table .board .unit-health>strong{font-size:8px}.app.battle-table .board .unit .unit-weak{overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.app.battle-table .slot-info{top:23px;right:7px;width:19px;height:19px;font-size:14px}
.app.battle-table .battle-focus{grid-row:4;min-height:0;width:100%;max-width:1250px;height:52px;margin:2px auto;padding:5px 9px;grid-template-columns:32px minmax(0,1fr) minmax(170px,.7fr);gap:8px;border-radius:10px}.app.battle-table .battle-focus-icon{width:31px;height:31px;border-radius:7px;font-size:17px}.app.battle-table .battle-focus-copy>span{margin:0;font-size:7px}.app.battle-table .battle-focus-copy strong{font-size:11px}.app.battle-table .battle-focus-copy p{margin:1px 0 0;font-size:9px;line-height:1.2}.app.battle-table .battle-focus-stats span{padding:2px 4px;font-size:8px}
.app.battle-table .board>.player-row{grid-row:7;min-height:0;height:40px;margin:0 auto;width:100%;max-width:1250px;gap:6px}.app.battle-table .board>.player-row .hero{height:38px;min-height:0;padding:3px 7px;gap:6px}.app.battle-table .board>.player-row .portrait{width:31px;height:31px}.app.battle-table .board>.player-row .hero-label{font-size:11px}.app.battle-table .board>.player-row .sub{font-size:8px}.app.battle-table .board>.player-row .health{padding:3px 7px;font-size:11px}.app.battle-table .board .turn-pill,.app.battle-table .board .energy{min-width:0;padding:5px 8px;font-size:10px}
.app.battle-table .board>.hand-area{grid-row:8;position:relative;display:block;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;border-top:1px solid #dfc5896b;border-radius:0;background:linear-gradient(180deg,transparent 0%,#0b1b2c73 40%,#071524de 100%);box-shadow:none;overflow:visible}.app.battle-table .board .hand-heading{position:absolute;z-index:2;top:7px;left:8px;display:block;width:190px;padding:0;border:0}.app.battle-table .hand-kicker{display:none}.app.battle-table .board .hand-heading strong{font-size:12px}.app.battle-table .board .hand-heading small{display:block;max-width:185px;font-size:9px;line-height:1.25}.app.battle-table .hand-heading-actions{justify-content:flex-start;margin-top:4px}.app.battle-table .hand-heading-actions .btn{min-height:0;padding:3px 6px;font-size:9px}
.app.battle-table .board>.hand-area .hand{display:flex;align-items:flex-end;justify-content:center;flex-wrap:nowrap;gap:0;width:calc(100% - 365px);max-width:950px;height:100%;min-height:0;margin:0 auto;padding:7px 0 5px;overflow:visible}.app.battle-table .board>.hand-area .hand-card{flex:0 0 clamp(112px,10vw,145px);width:clamp(112px,10vw,145px);height:165px;min-height:0;margin:0;grid-template-rows:18px 13px minmax(37px,1fr) 8px 19px 27px 18px;gap:2px;padding:5px;border-radius:11px;transform:translateY(var(--fan-drop,0px)) rotate(var(--fan-angle,0deg));transform-origin:50% 110%;box-shadow:0 11px 18px #000b;transition:transform .18s ease,filter .18s ease,box-shadow .18s ease}.app.battle-table .board>.hand-area .hand-card+.hand-card{margin-left:-28px}.app.battle-table .board>.hand-area .hand-card:hover,.app.battle-table .board>.hand-area .hand-card:focus-visible,.app.battle-table .board>.hand-area .hand-card.chosen{z-index:20;transform:translateY(-29px) rotate(0) scale(1.16);box-shadow:0 18px 34px #000e,0 0 0 2px #ffe2a1}.app.battle-table .board>.hand-area .hand-card.disabled{opacity:.57}.app.battle-table .board>.hand-area .card-name{font-size:10px}.app.battle-table .board>.hand-area .card-stage{font-size:7px}.app.battle-table .board>.hand-area .card-art{height:100%;min-height:37px}.app.battle-table .board>.hand-area .card-evolution{font-size:7px;line-height:8px}.app.battle-table .board>.hand-area .card-move{font-size:8px}.app.battle-table .board>.hand-area .card-description{grid-template-rows:9px 1fr;font-size:7px}.app.battle-table .board>.hand-area .card-description .coin-label{font-size:6px;line-height:9px}.app.battle-table .board>.hand-area .card-description .ability-copy{-webkit-line-clamp:2}.app.battle-table .board>.hand-area .card-stats{font-size:6px}.app.battle-table .board>.hand-area .card-stats span{min-height:17px}
.app.battle-table .board>.hand-area .action-bar{position:absolute;z-index:3;top:36px;right:9px;display:flex;flex-direction:column-reverse;align-items:flex-end;justify-content:flex-end;gap:7px;width:175px;padding:0;border:0}.app.battle-table .board>.hand-area .battle-rule{display:none}.app.battle-table .board>.hand-area #deck-count{font-size:9px;color:#d6e3e5}.app.battle-table .board #end-turn{min-width:160px;padding:9px 10px;font-size:11px}
@media(max-height:790px){.app.battle-table .board{grid-template-rows:35px 15px minmax(137px,1fr) 47px 15px minmax(137px,1fr) 36px 162px}.app.battle-table .battle-focus{height:45px}.app.battle-table .board>.hand-area .hand-card{height:145px;grid-template-rows:16px 12px minmax(30px,1fr) 7px 18px 23px 16px}.app.battle-table .board>.player-row{height:34px}.app.battle-table .board>.player-row .hero{height:33px}}
@media(max-width:1100px){.app.battle-table .board>.hand-area .hand{width:calc(100% - 290px)}.app.battle-table .board>.hand-area .hand-card{flex-basis:116px;width:116px}.app.battle-table .board>.hand-area .hand-card+.hand-card{margin-left:-32px}.app.battle-table .board>.hand-area .action-bar{width:135px}.app.battle-table .board #end-turn{min-width:130px}}
@media(max-width:760px){.app.battle-table{display:block;height:auto;min-height:100dvh;overflow:visible;padding:6px}.app.battle-table .board{display:block;overflow:visible}.app.battle-table .board>.lane{display:grid;grid-template-columns:repeat(5,145px);justify-content:flex-start;min-height:184px;height:184px;overflow-x:auto;overflow-y:hidden}.app.battle-table .board .slot{width:140px;height:174px}.app.battle-table .board .unit{grid-template-rows:17px 44px auto 18px minmax(22px,1fr) 5px 12px}.app.battle-table .battle-focus{height:auto;min-height:50px}.app.battle-table .board>.player-row{height:auto;min-height:40px;flex-direction:row}.app.battle-table .board>.hand-area{height:180px;margin-top:5px;overflow:hidden}.app.battle-table .board>.hand-area .hand{justify-content:flex-start;width:calc(100% - 112px);height:100%;margin-left:0;padding-left:6px;overflow-x:auto;overflow-y:hidden}.app.battle-table .board>.hand-area .hand-card{flex-basis:106px;width:106px;height:145px}.app.battle-table .board>.hand-area .hand-card+.hand-card{margin-left:-18px}.app.battle-table .board .hand-heading{display:none}.app.battle-table .board>.hand-area .action-bar{top:54px;right:2px;width:107px}.app.battle-table .board #end-turn{min-width:104px;padding:7px 3px;font-size:9px}}

/* The full card replaces the narrow middle information strip during hover. */
.app.battle-table .board{grid-template-rows:39px 17px minmax(155px,1fr) 17px minmax(155px,1fr) 42px 184px}
.app.battle-table .battle-focus{display:none}
.app.battle-table .battle-lane-label.player{grid-row:4}
.app.battle-table #player-lane{grid-row:5}
.app.battle-table .board>.player-row{grid-row:6}
.app.battle-table .board>.hand-area{grid-row:7}
.app.battle-table .board>.hand-area .hand-card.disabled{opacity:1;filter:none;cursor:not-allowed}
.app.battle-table .board>.hand-area .hand-card{background-color:#13253a;isolation:isolate}
.app.battle-table .board>.hand-area .hand-card.playable{outline:3px solid #65e998;outline-offset:2px;box-shadow:0 0 0 1px #d9ffe9b3,0 7px 17px #000a,0 0 18px 4px #49dc836b}
.app.battle-table .board>.hand-area .hand-card.playable.chosen{outline-color:#ffe4a4}
.hover-card-preview{position:absolute;z-index:22;top:45%;right:clamp(9px,1.5vw,28px);width:min(360px,31vw);max-height:calc(100% - 20px);transform:translateY(-50%);pointer-events:none;filter:drop-shadow(0 22px 30px #000d)}
.hover-card-preview[hidden]{display:none!important}
.hover-card-preview .card-inspector{width:100%}
.hover-card-preview .inspect-card{width:100%;height:min(505px,calc(100dvh - 105px));max-height:none;aspect-ratio:auto;grid-template-rows:auto auto minmax(120px,1fr) auto auto minmax(54px,auto) auto;border-width:6px;border-radius:19px;padding:10px;gap:6px;box-shadow:inset 0 0 0 2px #fff5d3,inset 0 0 0 5px #292337,0 17px 45px #000d,0 0 20px color-mix(in srgb,var(--inspect-edge) 23%,transparent)}
.hover-card-preview .inspect-card-art{aspect-ratio:auto}
.hover-card-preview .inspect-card-art img{position:static;inset:auto;width:90%;height:90%;max-width:90%;max-height:90%;object-fit:contain}
.hover-card-preview .inspect-card-art.item-art img{width:70%;height:70%;max-width:70%;max-height:70%}
.hover-card-preview .inspect-ability{overflow:auto}
.hover-card-preview .inspect-footer b{overflow:visible;text-overflow:clip;white-space:normal}
@media(max-height:790px){.app.battle-table .board{grid-template-rows:35px 15px minmax(137px,1fr) 15px minmax(137px,1fr) 36px 162px}.hover-card-preview{width:min(315px,28vw)}.hover-card-preview .inspect-card{max-height:calc(100dvh - 85px)}}
@media(max-width:760px){.app.battle-table .board{display:block}.hover-card-preview{display:none!important}}
@media(max-width:760px){.app.battle-table .board .hand-heading{display:block;top:3px;left:5px;width:calc(100% - 120px)}.app.battle-table .board .hand-heading>div:first-child{display:none}.app.battle-table .hand-heading-actions{margin:0}.app.battle-table .board>.hand-area .hand{padding-top:30px}.app.battle-table .board>.hand-area .hand-card{height:135px}}

/* Trainer portraits flank the field while turn controls stay below the cards. */
@media(min-width:761px){
  .app.battle-table .board{grid-template-columns:clamp(112px,10vw,150px) minmax(0,1fr) clamp(112px,10vw,150px);column-gap:8px;grid-template-rows:17px minmax(155px,1fr) 17px minmax(155px,1fr) 42px 184px}
  .app.battle-table .battle-lane-label.enemy{grid-column:2;grid-row:1}
  .app.battle-table #cpu-lane{grid-column:2;grid-row:2}
  .app.battle-table .battle-lane-label.player{grid-column:2;grid-row:3}
  .app.battle-table #player-lane{grid-column:2;grid-row:4}
  .app.battle-table .board>.enemy-hero{grid-column:3;grid-row:2/5;align-self:center;justify-self:stretch;display:flex;flex-direction:column;gap:7px;width:100%;height:auto;min-height:152px;margin:0;padding:12px 8px;border-radius:16px;text-align:center}
  .app.battle-table .enemy-hero .portrait{width:64px;height:64px;margin:auto}
  .app.battle-table .enemy-hero .hero-label{font-size:12px;line-height:1.15}
  .app.battle-table .enemy-hero .sub{font-size:9px;line-height:1.2}
  .app.battle-table .enemy-hero .health{margin:2px auto 0;padding:5px 10px;font-size:14px}
  .app.battle-table .board>.player-row{display:contents}
  .app.battle-table .board>.player-row .hero{grid-column:1;grid-row:2/5;align-self:center;justify-self:stretch;display:flex;flex-direction:column;gap:7px;width:100%;height:auto;min-height:152px;max-width:none;margin:0!important;padding:12px 8px;border-radius:16px;text-align:center}
  .app.battle-table .board>.player-row .portrait{width:64px;height:64px}
  .app.battle-table .board>.player-row .avatar-button{margin:auto}
  .app.battle-table .board>.player-row .hero-label{font-size:12px;line-height:1.15}
  .app.battle-table .board>.player-row .sub{display:none}
  .app.battle-table .board>.player-row .health{margin:2px auto 0;padding:5px 10px;font-size:14px}
  .app.battle-table .board>.player-row .hud-stats{grid-column:2;grid-row:5;align-self:center;justify-self:center}
  .app.battle-table .board>.hand-area{grid-column:1/-1;grid-row:6}
}
@media(min-width:761px) and (max-height:790px){.app.battle-table .board{grid-template-rows:15px minmax(137px,1fr) 15px minmax(137px,1fr) 36px 162px}}

.battle-history[hidden],.overflow-choice[hidden]{display:none!important}
.battle-history{position:absolute;z-index:25;top:12px;left:12px;width:min(340px,calc(100% - 24px));max-height:min(430px,70%);display:flex;flex-direction:column;border:1px solid #dbbd80;border-radius:14px;background:#0c1b2cf5;box-shadow:0 20px 45px #000b;color:#fff2d4}
.battle-history header{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-bottom:1px solid #e1c58c55}
.battle-history header button{border:0;background:none;color:#fff2d4;font-size:23px;cursor:pointer}
.battle-history ol{margin:0;padding:8px 13px 12px 28px;overflow:auto;font-size:11px;line-height:1.4}
.battle-history li{padding:5px 0;border-bottom:1px solid #ffffff1c}
.attack-selector[hidden]{display:none!important}
.attack-selector{position:absolute;z-index:32;width:min(292px,calc(100% - 16px));padding:11px;border:1px solid #f4d390;border-radius:14px;background:linear-gradient(155deg,#213b58f7,#0c1d33fb);box-shadow:0 17px 38px #000c,0 0 25px #eabf7555;color:#fff1d0;animation:attack-menu-in .2s ease-out}
.attack-selector-head{display:flex;justify-content:space-between;align-items:center;color:#f9d58b;font-size:9px;font-weight:1000;letter-spacing:.16em}.attack-selector-head button{border:0;background:none;color:#fff1d0;font-size:22px;cursor:pointer}.attack-selector>strong{display:block;margin:1px 0 8px;font:900 18px Georgia,serif}.attack-selector-options{display:grid;gap:6px}.attack-selector-options button{display:grid;gap:4px;width:100%;padding:8px 9px;border:1px solid #a4b9c980;border-radius:9px;background:#10253be8;color:#f6e8c8;text-align:left;cursor:pointer}.attack-selector-options button:hover,.attack-selector-options button.active{border-color:#ffe295;background:#27435bef;box-shadow:0 0 12px #eacb6a44}.attack-selector-options button:disabled{opacity:.48;cursor:not-allowed}.attack-selector-options b{font-size:11px}.attack-selector-options span{font-size:10px;line-height:1.3}.attack-selector-options small,.attack-selector>small{color:#f5cc80;font-size:8px;font-weight:900}.attack-selector>small{display:block;margin-top:7px}
.app.battle-table .board .unit.selected{position:relative;z-index:18;transform:translateY(-13px) scale(1.04);box-shadow:0 0 0 3px #ffe39c,0 0 30px #f4cf79a0,0 18px 25px #000b;transition:transform .2s,box-shadow .2s}.app.battle-table .board .unit.ultimate{box-shadow:0 0 0 3px #ffe09c,0 0 30px #ffb66f}.unit-badge.ultimate{background:#6b477e;border-color:#e8cbff}.unit-badge.ultimate.spent{background:#293240;border-color:#758391;color:#c1c6ce}
.unit-ultimate-icon{position:absolute;z-index:6;right:3px;bottom:3px;padding:2px 4px;border:1px solid #ffde9d;border-radius:5px;background:#563d79ec;color:#fff1c9;font-size:7px;font-weight:1000;box-shadow:0 0 9px #e5bd8e}.unit-ultimate-icon.spent{border-color:#89949d;background:#263340e8;color:#b8c0c7;box-shadow:none}
@keyframes attack-menu-in{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:760px){.attack-selector{position:fixed!important;left:8px!important;right:8px;top:auto!important;bottom:185px;width:auto;max-height:40dvh;overflow:auto}}
@media(prefers-reduced-motion:reduce){.attack-selector{animation:none}.app.battle-table .board .unit.selected{transition:none}}
.battle-piles{display:flex;align-items:center;gap:5px}.deck-pile,.discard-pile{position:relative;display:inline-flex;align-items:center;min-height:16px;padding:1px 7px;border:1px solid #d6c3939c;border-radius:5px;background:linear-gradient(135deg,#34476b,#10233d);box-shadow:-2px 2px 0 #07101d,-4px 4px 0 #34476b;color:#ffe8ae;font-size:8px;font-weight:900;white-space:nowrap}.deck-pile.empty{opacity:.45;box-shadow:none}.discard-pile{cursor:pointer}.discard-pile:disabled{opacity:.45;cursor:default;box-shadow:none}.discard-pile:not(:disabled):hover{border-color:#fff0c9;background:#355774}.app.battle-table .battle-lane-label{display:flex;align-items:center;justify-content:space-between;gap:8px}
.app.battle-table .battle-lane-label .battle-piles .deck-pile,.app.battle-table .battle-lane-label .battle-piles .discard-pile{color:#ffe8ae;font-size:8px;letter-spacing:0}
.battle-history{width:min(385px,calc(100% - 24px));max-height:min(550px,78%)}.battle-history ol{list-style:none;margin:0;padding:7px 9px;min-height:80px}.battle-history li{padding:0;border:0}.battle-history .history-turn{margin:9px 0 4px;padding:5px 7px;border-top:1px solid #d9bb794d;color:#ffe3a4;font-size:9px;font-weight:1000;letter-spacing:.1em}.history-event{display:block;width:100%;padding:6px 7px;border:0;border-left:3px solid #7b91a5;border-radius:3px;background:transparent;color:#e3eaf0;font:inherit;font-size:10px;line-height:1.3;text-align:left;cursor:pointer}.history-event.player{border-color:#68d59a}.history-event.cpu{border-color:#f2a181}.history-event.damage,.history-event.knockout,.history-event.ultimate{background:#bd71631c}.history-event:hover,.history-event:focus-visible{background:#f7dfaa26;outline:none}.battle-history-detail{padding:9px 12px;border-top:1px solid #d9bb795a;color:#ffe8bb;font-size:10px;line-height:1.4}
.battle-history{width:min(500px,calc(100% - 24px));max-height:min(690px,88%)}
.battle-history ol{min-height:90px;max-height:275px;flex:none;overflow:auto}
.battle-history-detail{min-height:110px;max-height:390px;overflow:auto;padding:12px;background:linear-gradient(160deg,#172d43,#0a1728);font-size:12px}
.history-detail-heading{color:#ffd98c;font-size:10px;font-weight:1000;letter-spacing:.14em}
.battle-history-detail p{margin:5px 0 10px;color:#f4e9d4;font-size:12px;font-weight:750;line-height:1.4}
.history-detail-cards{display:flex;align-items:stretch;gap:10px;max-width:100%;padding:5px 1px 9px;overflow-x:auto}
.history-detail-card{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:7px;flex:0 0 190px;min-width:0;margin:0;padding:6px;border:1px solid #c5a9768c;border-radius:10px;background:#08182bbd;box-shadow:0 4px 12px #0008}
.history-detail-card img{display:block;width:86px;height:120px;object-fit:contain;filter:drop-shadow(0 4px 5px #000b)}
.history-detail-card figcaption{display:grid;gap:5px;min-width:0;line-height:1.2}.history-detail-card figcaption small{color:#ffd78b;font-size:8px;font-weight:1000;letter-spacing:.12em}.history-detail-card figcaption strong{color:#fff8e6;font-size:12px;overflow-wrap:anywhere}.history-detail-card figcaption span{color:#bdebc8;font-size:10px;font-weight:850}
.history-detail-trainer{display:grid;place-items:center;flex:0 0 150px;padding:10px;border:1px solid #ffd890;border-radius:10px;background:#502d2e;color:#fff0c0;font-size:11px;font-weight:900;text-align:center}
.history-detail-facts{padding:8px 9px;border:1px solid #8aa6b65e;border-radius:8px;background:#0b2034;color:#d8ecf2;font-size:10px;line-height:1.5}
@media(max-width:760px){.battle-history{width:min(500px,calc(100% - 16px));max-height:calc(100dvh - 67px)}.battle-history ol{max-height:34dvh}.battle-history-detail{max-height:43dvh}.history-detail-card{flex-basis:170px;grid-template-columns:70px minmax(0,1fr)}.history-detail-card img{width:70px;height:100px}}
.discard-view[hidden]{display:none!important}.discard-view{position:absolute;z-index:26;top:33px;right:11px;width:min(340px,calc(100% - 22px));max-height:min(470px,70%);display:flex;flex-direction:column;border:1px solid #d9bb79;border-radius:13px;background:#0d1c30f7;box-shadow:0 16px 36px #000b;color:#fff0d0}.discard-view header{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border-bottom:1px solid #d9bb7959}.discard-view header button{border:0;background:none;color:#fff0d0;font-size:22px;cursor:pointer}#discard-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;overflow:auto;padding:10px;font-size:11px}.discard-card{display:grid;justify-items:center;gap:3px;min-width:0;padding:6px;border:1px solid #aeb9bf7a;border-radius:8px;background:#182c43;color:#fff0d0;font-size:9px;cursor:pointer}.discard-card img{width:58px;height:58px;object-fit:contain}.discard-card span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.discard-card:hover{border-color:#f0d28b}
@media(max-width:760px){.battle-piles{gap:3px}.deck-pile,.discard-pile{padding:1px 3px;font-size:7px;box-shadow:none}.battle-history,.discard-view{position:fixed;top:55px;bottom:12px;max-height:none}.battle-history{left:8px}.discard-view{right:8px}}
.attack-projectile{position:fixed;z-index:80;width:18px;height:18px;margin:-9px;border:2px solid #fff9d8;border-radius:50%;background:#ffe7a1;box-shadow:0 0 11px 5px #ffd76f,0 0 29px #ffbd5e;pointer-events:none;animation:attack-flight .36s cubic-bezier(.15,.7,.35,1) forwards}.attack-projectile.ultimate{width:30px;height:30px;margin:-15px;box-shadow:0 0 16px 9px #ffdf8d,0 0 45px #ffe2a2;animation-duration:.5s}.attack-projectile.fire{background:#ff773f;box-shadow:0 0 14px 6px #ff722a}.attack-projectile.water,.attack-projectile.ice{background:#91e9ff;box-shadow:0 0 14px 6px #6cd4ff}.attack-projectile.grass,.attack-projectile.bug{background:#b8e578;box-shadow:0 0 14px 6px #86df67}.attack-projectile.psychic,.attack-projectile.ghost{background:#d9a0f8;box-shadow:0 0 14px 6px #b575e9}.attack-projectile.electric{background:#ffe17a;box-shadow:0 0 14px 6px #ffd63e}@keyframes attack-flight{to{transform:translate(var(--travel-x),var(--travel-y)) scale(1.5);opacity:0}}.hero-impact{animation:hero-impact .45s ease-out}@keyframes hero-impact{40%{filter:brightness(2);transform:translateX(5px)}70%{transform:translateX(-4px)}to{filter:none;transform:none}}.defeat-ghost{position:fixed;z-index:81;display:grid;place-items:center;border:2px solid #ffe5b2;border-radius:12px;background:#142438e8;box-shadow:0 0 20px #ffc47d;pointer-events:none;animation:defeat-flight .65s ease-in forwards}.defeat-ghost img{width:90%;height:80%;object-fit:contain}@keyframes defeat-flight{35%{filter:brightness(2);transform:scale(1.15)}to{transform:translate(var(--defeat-x),var(--defeat-y)) scale(.18) rotate(24deg);opacity:0}}
.card-flight-ghost{z-index:82!important;pointer-events:none!important;box-shadow:0 15px 32px #000b,0 0 18px #ffe2a2!important;transform-style:preserve-3d}
.deck-pile.drawing{animation:deck-draw .42s ease-out}@keyframes deck-draw{45%{transform:translateY(-7px) rotate(-5deg);filter:brightness(1.8)}to{transform:none;filter:none}}
body.reduced-effects .attack-projectile,body.reduced-effects .defeat-ghost{display:none}body.reduced-effects .unit,body.reduced-effects .hand-card{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){.attack-projectile,.defeat-ghost{display:none!important}.hero-impact{animation:none!important}}
.overflow-choice{position:absolute;z-index:28;inset:0;display:grid;place-items:center;padding:12px;background:#061121bd}
.overflow-choice-panel{width:min(460px,100%);padding:20px;border:2px solid #e5c481;border-radius:18px;background:linear-gradient(150deg,#213953,#0d1c2e);box-shadow:0 20px 60px #000d;text-align:center}
.overflow-choice-panel small{color:#8ee4a9;font-weight:900;letter-spacing:.14em}
.overflow-choice-panel h2{margin:7px 0;font-size:19px;color:#fff2d0}
.overflow-choice-panel p{margin:0 0 13px;color:#dbe9f0;font-size:12px}
.overflow-choice-panel #overflow-targets{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.overflow-choice-panel #overflow-targets button{padding:10px 13px;border:1px solid #a7d9c2;border-radius:9px;background:#173d43;color:#f0fff4;font-weight:850;cursor:pointer}
.overflow-choice-panel #overflow-targets button:hover,.overflow-choice-panel #overflow-targets button:focus-visible{outline:2px solid #78efa4;outline-offset:2px}
.inspect-ability .inspect-trait{margin-top:6px;padding-top:5px;border-top:1px solid #ffffff34;color:#d5f3dd;font-size:10px;line-height:1.3}
.inspect-evolution{flex-wrap:wrap}
.home-menu-grid:has(.packs-destination){grid-template-columns:repeat(4,minmax(0,1fr))}
.pack-result-card.revealed{background-size:cover;background-position:center}
.packs-media{background:radial-gradient(circle at 50% 60%,#e2bb7290,transparent 45%),linear-gradient(145deg,#102d43,#273454 65%,#1b1b38)}
.home-pack-art{position:absolute;left:50%;top:50%;width:95px;height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;transform:translate(-50%,-45%) rotate(-8deg);border:3px solid #ffe4a1;border-radius:12px;background:linear-gradient(145deg,#50677a,#172643 45%,#58455d);box-shadow:0 0 0 3px #9f783e,0 18px 25px #030912bb,0 0 30px #ffd47c72;transition:transform .3s}
.home-pack-art:before{content:'';position:absolute;inset:7px;border:1px solid #f7dc9d9c;border-radius:7px}.home-pack-art b{font-size:52px;color:#ffe49a;text-shadow:0 0 16px #ffc251}.home-pack-art small{font-size:7px;font-weight:900;letter-spacing:.12em;color:#ffebba}.packs-destination:hover .home-pack-art{transform:translate(-50%,-53%) rotate(3deg) scale(1.06)}
.pack-page{max-width:1100px;margin:20px auto;padding:26px;border:1px solid #c9ad75a6;border-radius:24px;background:linear-gradient(145deg,#1d344d,#0b1b31 65%,#14263c);box-shadow:0 22px 55px #0008}.pack-page-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.pack-page h2{font-size:30px;color:#fff1cd;margin:8px 0}.pack-page p{color:#b9cbd8;line-height:1.5}.dust-wallet{border:1px solid #e2c07c;border-radius:30px;padding:12px 18px;background:#e1bc6b19;color:#ffe3a4;font-weight:900;white-space:nowrap}.pack-odds{display:flex;flex-wrap:wrap;gap:9px;margin:21px 0;padding:12px;border:1px solid #8eacc453;border-radius:13px;background:#09182cb3}.pack-odds strong{color:#f2d9a4;margin-right:6px}.pack-odds span{padding:3px 9px;border:1px solid #849db169;border-radius:20px;color:#d7e6f2;font-size:12px}.pack-inventory{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px;min-height:260px;padding:22px;border:1px dashed #b3c4c36e;border-radius:18px;background:radial-gradient(circle at center,#25445b67,#0b182a88)}.pack-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:225px;padding:18px 14px;border:4px solid #e5c685;border-radius:16px;background:linear-gradient(150deg,#556d7a,#1b3451 39%,#29304d 70%,#5b4260);color:#fff1cc;box-shadow:0 0 0 2px #755d37,0 13px 25px #0008,inset 0 0 25px #fcd88537;transition:transform .25s,box-shadow .25s}.pack-tile:after{content:'';position:absolute;inset:9px;border:1px solid #f3dca389;border-radius:9px;pointer-events:none}.pack-tile:hover,.pack-tile:focus-visible{transform:translateY(-9px) rotate(-2deg);box-shadow:0 0 0 2px #f0ce89,0 20px 30px #0009,0 0 30px #ffd4787a}.pack-seal{font-size:62px;text-shadow:0 0 19px #ffcc5f}.pack-tile small{font-weight:900;letter-spacing:.16em;font-size:8px}.pack-tile strong{text-align:center;font-family:Georgia,serif;font-size:17px}.pack-tile>span:last-child{font-size:11px;color:#c7d8e1}.pack-empty{display:grid;place-items:center;color:#bbceda;text-align:center;grid-column:1/-1}.pack-open-next{margin-top:20px}.pack-economy{font-size:12px}.trainer-pack-reward{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid #deb9738c;border-radius:12px;background:linear-gradient(90deg,#e0b86127,#385c7b31)}.trainer-pack-reward>span{font-size:38px;color:#ffdc83}.trainer-pack-reward div{display:grid;gap:4px}.trainer-pack-reward b{color:#ffebbb}.trainer-pack-reward small{color:#bbceda;line-height:1.4}.collection-packs-link{margin-top:10px}.craft-card{width:100%;margin-top:5px;padding:7px 6px;border:1px solid #d9bc7a9c;border-radius:8px;background:#c5a45b26;color:#ffe2a0;font-size:10px;font-weight:800}.craft-card:disabled{opacity:.48}.pack-opening{width:min(100%,1020px);padding:26px;border:1px solid #e5c589;border-radius:26px;background:radial-gradient(circle at 50% 24%,#3c536b,#13243c 58%,#091728);box-shadow:0 0 0 2px #e6bc6957,0 30px 90px #000c;text-align:center}.pack-opening-header>span{font-size:10px;letter-spacing:.2em;color:#ffdc95;font-weight:900}.pack-opening h2{font-family:Georgia,serif;font-size:clamp(26px,4vw,42px);color:#fff1cf;margin:8px}.pack-opening p{color:#bfcede}.pack-results{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:28px 0;perspective:900px}.pack-result-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;aspect-ratio:2/3;border:3px solid #b8cad4;border-radius:14px;background:linear-gradient(150deg,#34546c,#132940 55%,#34334b);box-shadow:0 15px 26px #0009;overflow:hidden}.pack-result-card.concealed{font-size:60px;color:#ffe09a;border-color:#e5c685;text-shadow:0 0 22px #ffd176}.pack-result-card.revealed{animation:pack-flip .6s cubic-bezier(.2,.8,.2,1) both}.pack-result-card.common{border-color:#c5d2d1}.pack-result-card.rare{border-color:#72c5e2;box-shadow:0 0 18px #68c7e766}.pack-result-card.epic{border-color:#d49ef2;box-shadow:0 0 24px #c17eeb88}.pack-result-card.legendary{border-color:#ffd46b;box-shadow:0 0 32px #ffd258b8}.pack-result-card img{width:90%;height:55%;object-fit:contain;filter:drop-shadow(0 6px 6px #0008)}.pack-result-card strong{font-family:Georgia,serif;font-size:clamp(10px,1.3vw,17px);color:#fff3d1;overflow-wrap:anywhere}.pack-rarity{font-size:9px;letter-spacing:.1em;font-weight:900;color:#ffe1a1}.pack-result-card small{font-size:10px;color:#b8e9c0}.pack-result-card.legendary small{color:#ffe6a2}@keyframes pack-flip{from{transform:rotateY(90deg) scale(.85);opacity:0}to{transform:rotateY(0) scale(1);opacity:1}}.pack-reveal,.pack-close{min-width:220px}
@media(max-width:1000px){.home-menu-grid:has(.packs-destination){grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.pack-page{padding:16px}.pack-page-head{display:block}.dust-wallet{display:inline-block}.pack-inventory{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.pack-results{gap:4px}.pack-opening{padding:15px}.pack-result-card{border-width:2px;border-radius:8px}.pack-result-card img{height:47%}.pack-rarity,.pack-result-card small{font-size:7px}.pack-result-card.concealed{font-size:28px}.home-menu-grid:has(.packs-destination){grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.pack-result-card.revealed{animation:none}.pack-tile,.home-pack-art{transition:none}}

/* Adventure hub: destinations live on the illustrated world instead of in a menu grid. */
.main-home .home-menu-grid{position:relative;display:block;min-height:650px;margin-top:16px;overflow:hidden;border:1px solid #e9d19d8c;border-radius:24px;background:linear-gradient(180deg,#07132745 0%,#061b2440 52%,#051324b8 100%),url('assets/campaign-kanto-v2.png') center 52%/cover no-repeat;box-shadow:0 28px 65px #000a,inset 0 0 0 7px #07172b8c}
.main-home .home-menu-grid:before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 50% 35%,transparent 17%,#06122572 100%),linear-gradient(180deg,#06142594,transparent 31%,transparent 70%,#06142595)}
.hub-atmosphere{position:absolute;inset:0;z-index:2;pointer-events:none}.hub-sun{position:absolute;right:23%;top:7%;width:130px;height:130px;border-radius:50%;background:#ffda9463;filter:blur(41px);animation:hub-glow 5s ease-in-out infinite}.hub-mist{position:absolute;left:-20%;right:-20%;bottom:4%;height:95px;border-radius:50%;background:#cbe5fa28;filter:blur(30px);animation:hub-mist 12s linear infinite}.hub-route{position:absolute;left:15%;top:34%;width:66%;height:48%;border:2px dashed #ffe5a668;border-left:0;border-right:0;border-radius:50%;transform:rotate(-8deg);filter:drop-shadow(0 0 7px #ffe1a4)}.hub-traveler{position:absolute;z-index:2;left:47%;top:59%;width:64px;height:64px;padding:5px;border:2px solid #ffe5aa;border-radius:50%;background:#142d49;box-shadow:0 0 0 9px #ffe6a52d,0 0 23px #ffdf9ca8;animation:hub-traveler 3s ease-in-out infinite}.hub-traveler img{width:100%;height:100%;object-fit:contain}.hub-beacon{position:absolute;color:#ffe8ab;font-size:22px;text-shadow:0 0 16px #ffdf83;animation:hub-twinkle 3s ease-in-out infinite}.beacon-one{left:21%;top:29%}.beacon-two{right:28%;top:41%;animation-delay:1s}.beacon-three{left:36%;bottom:18%;animation-delay:2s}
.hub-caption{position:absolute;z-index:4;top:25px;left:30px;display:grid;gap:4px;max-width:440px;padding:16px 19px;border:1px solid #e8d09e9c;border-radius:14px;background:#091c30db;box-shadow:0 12px 26px #0008;backdrop-filter:blur(13px)}.hub-caption span{color:#ffdb91;font-size:9px;font-weight:1000;letter-spacing:.19em}.hub-caption strong{font:700 26px/1.1 Georgia,serif;color:#fff2d0}.hub-caption small{color:#d2e0e9;font-size:11px;line-height:1.4}
.main-home .home-menu-grid .home-destination{position:absolute;z-index:5;width:min(25%,255px);min-height:0;height:auto;display:flex;flex-direction:column;gap:4px;padding:13px 15px 12px;border:1px solid #ffe2a4c7;border-radius:14px;background:linear-gradient(140deg,#173650eb,#091a30ed);box-shadow:0 9px 20px #000b,0 0 0 5px #e3c17b27;backdrop-filter:blur(12px);text-align:left;transform:translate(-50%,-50%);transition:transform .22s,box-shadow .22s,border-color .22s}
.main-home .home-menu-grid .home-destination:hover,.main-home .home-menu-grid .home-destination:focus-visible{transform:translate(-50%,-54%) scale(1.05);box-shadow:0 17px 28px #000b,0 0 26px #ffd47b99,0 0 0 7px #e3c17b40;border-color:#fff0bd;outline:none}.main-home .home-menu-grid .destination-media,.main-home .home-menu-grid .home-destination p{display:none}.main-home .home-menu-grid .home-destination .destination-kicker{margin:0;font-size:9px;letter-spacing:.13em}.main-home .home-menu-grid .home-destination strong{font-size:clamp(17px,1.7vw,24px);line-height:1.1}.main-home .home-menu-grid .destination-progress{margin:4px 0 0;padding:0;font-size:10px}.main-home .home-menu-grid .destination-cta{margin:6px 0 0;padding:7px 0 0;font-size:11px}.main-home .home-menu-grid .home-destination:before{content:'✦';position:absolute;right:11px;top:8px;color:#ffe09c;font-size:21px;text-shadow:0 0 12px #ffcf6b}.main-home .home-menu-grid .campaign-destination{left:21%;top:45%}.main-home .home-menu-grid .collection-destination{left:72%;top:41%}.main-home .home-menu-grid .packs-destination{left:36%;top:78%}.main-home .home-menu-grid .multiplayer-destination{left:79%;top:77%}.main-home .home-menu-grid .multiplayer-destination:before{content:'◇'}.main-home .home-menu-grid .multiplayer-destination .destination-progress{display:block}
@keyframes hub-glow{50%{opacity:.48;transform:scale(1.2)}}@keyframes hub-mist{50%{transform:translateX(9%)}}@keyframes hub-traveler{50%{transform:translateY(-8px);box-shadow:0 0 0 12px #ffe6a52d,0 0 30px #ffdf9cbb}}@keyframes hub-twinkle{50%{opacity:.25;transform:scale(.7) rotate(40deg)}}
@media(max-width:900px){.main-home .home-menu-grid{min-height:610px}.main-home .home-menu-grid .home-destination{width:31%}.hub-caption{max-width:360px}.main-home .home-menu-grid .campaign-destination{left:20%;top:47%}.main-home .home-menu-grid .collection-destination{left:76%;top:46%}.main-home .home-menu-grid .packs-destination{left:32%;top:79%}.main-home .home-menu-grid .multiplayer-destination{left:77%;top:79%}}
@media(max-width:650px){.main-home .home-menu-grid{min-height:760px;background-position:48% center}.hub-caption{top:13px;left:13px;right:13px;max-width:none;padding:12px}.hub-caption strong{font-size:20px}.hub-traveler{top:38%;left:45%}.main-home .home-menu-grid .home-destination{width:43%;padding:10px}.main-home .home-menu-grid .home-destination strong{font-size:17px}.main-home .home-menu-grid .campaign-destination{left:26%;top:40%}.main-home .home-menu-grid .collection-destination{left:74%;top:40%}.main-home .home-menu-grid .packs-destination{left:26%;top:75%}.main-home .home-menu-grid .multiplayer-destination{left:74%;top:75%}.main-home .home-menu-grid .destination-progress{font-size:9px}.hub-route{top:43%}}
@media(max-width:390px){.main-home .home-menu-grid{min-height:800px}.main-home .home-menu-grid .home-destination{width:45%}.main-home .home-menu-grid .home-destination strong{font-size:15px}.main-home .home-menu-grid .home-destination .destination-kicker{font-size:8px}}
@media(prefers-reduced-motion:reduce){.hub-sun,.hub-mist,.hub-traveler,.hub-beacon{animation:none}.main-home .home-menu-grid .home-destination{transition:none}}

/* Combat polish: states float outside each card, leaving the card readable. */
.app.battle-table .board .slot{overflow:visible;isolation:isolate}
.app.battle-table .board .unit .unit-badges{display:none}
.unit-status-rail{position:absolute;z-index:14;top:-13px;right:-12px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:3px;max-width:calc(100% + 24px);pointer-events:none}
.unit-status-icon{display:grid;place-items:center;min-width:26px;height:26px;padding:1px 3px;border:1px solid #ffdfaa;border-radius:9px;background:#11243af2;box-shadow:0 3px 9px #000b,0 0 0 2px #071423;color:#fff7db;font-size:15px;line-height:1;pointer-events:auto;cursor:help;animation:status-appear .25s ease-out both}
.unit-status-icon:focus-visible{outline:2px solid #fff1a0;outline-offset:2px}
.unit-status-icon.guard,.unit-status-icon.shield,.unit-status-icon.armor{border-color:#99dcff;box-shadow:0 2px 9px #000b,0 0 9px #83d7ff77}
.unit-status-icon.burn,.unit-status-icon.poison,.unit-status-icon.curse{border-color:#ff987d;box-shadow:0 2px 9px #000b,0 0 10px #ed755e99;animation:status-appear .25s ease-out both,status-danger 2s ease-in-out infinite}
.unit-status-icon.boost,.unit-status-icon.surge,.unit-status-icon.trample{border-color:#ffe287;box-shadow:0 2px 9px #000b,0 0 10px #ffd46e88}
@keyframes status-appear{from{opacity:0;transform:translateY(7px) scale(.6)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes status-danger{50%{filter:brightness(1.5)}}
.app.battle-table .board .unit.attacking{animation:combat-lunge .34s cubic-bezier(.17,.78,.3,1)}
.app.battle-table .board .unit.hit{animation:combat-hit .36s ease-out}
.app.battle-table .board .unit.summon{animation:combat-appear .65s cubic-bezier(.16,1.4,.4,1)}
@keyframes combat-lunge{45%{transform:translateY(-14px) scale(1.07);box-shadow:0 0 25px var(--unit-edge,#ffe0a0)}100%{transform:none}}
@keyframes combat-hit{22%{transform:translateX(-9px) rotate(-2deg);filter:brightness(1.9)}60%{transform:translateX(5px) rotate(1deg)}100%{transform:none}}
@keyframes combat-appear{0%{transform:scale(.2) rotate(-11deg);opacity:0;filter:brightness(4)}58%{transform:scale(1.12) rotate(3deg);opacity:1}100%{transform:none}}
.pokeball{z-index:81}.summon-card-ghost{z-index:80}.summon-creature{z-index:82}
.pokeball:after{content:'';position:absolute;inset:-10px;border:2px solid #ffefba;border-radius:50%;opacity:0;animation:pokeball-aura 1.05s ease-out forwards;pointer-events:none}
@keyframes pokeball-aura{32%{opacity:0;transform:scale(.3)}55%{opacity:.95;transform:scale(1.2)}100%{opacity:0;transform:scale(2.7)}}
@media(max-width:760px){.unit-status-rail{top:-10px;right:-5px;gap:2px}.unit-status-icon{min-width:22px;height:22px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.unit-status-icon,.app.battle-table .board .unit.attacking,.app.battle-table .board .unit.hit,.app.battle-table .board .unit.summon,.pokeball:after{animation:none!important}}

/* Readable, type-coded battle states and short descriptions on hover or tap. */
.unit-status-icon{position:relative;overflow:visible;appearance:none;background:linear-gradient(145deg,var(--state-top,#253e57),var(--state-bottom,#102237));border-color:var(--state-edge,#c7e7ff);box-shadow:0 2px 10px #000b,0 0 12px var(--state-glow,#85ccff88);color:#fff;transition:transform .16s,filter .16s}
.unit-status-icon:hover,.unit-status-icon.open,.unit-status-icon:focus-visible{transform:translateY(-3px) scale(1.13);filter:brightness(1.2);z-index:60}
.unit-status-icon.burn{--state-top:#ae4d17;--state-bottom:#612311;--state-edge:#ffb36b;--state-glow:#ff7413aa}
.unit-status-icon.poison{--state-top:#8141a4;--state-bottom:#42205c;--state-edge:#dba5f5;--state-glow:#aa61e5aa}
.unit-status-icon.poison{--state-top:#277b3e;--state-bottom:#123f29;--state-edge:#a1f5a7;--state-glow:#64dc75aa}
.unit-status-icon.burn{--state-top:#b73525;--state-bottom:#631b1b;--state-edge:#ff8e78;--state-glow:#ff5948aa}
.unit-status-icon .status-count{position:absolute;right:-5px;bottom:-5px;display:grid;place-items:center;min-width:14px;height:14px;padding:0 2px;border:1px solid #fff7cf;border-radius:50%;background:#11243a;color:#fff;font-size:9px;font-weight:1000;line-height:1}
.unit-status-icon .status-glyph,.hero-status-icon>span{display:grid;place-items:center}.unit-status-icon .status-glyph svg,.hero-status-icon svg{display:block;width:17px;height:17px;filter:drop-shadow(0 0 3px #a1f5a7)}
.unit.provoker:after{content:'';position:absolute;z-index:12;inset:-5px;border:3px solid #8bdfff;border-radius:16px;box-shadow:0 0 13px #5ec9ff;pointer-events:none;animation:provoke-pulse 1.7s ease-in-out infinite}
@keyframes provoke-pulse{50%{transform:scale(1.045);opacity:.5;box-shadow:0 0 24px #8bdfff}}
.hero-state{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}
.hero-status-icon{display:inline-flex;align-items:center;gap:3px;padding:2px 5px;border:1px solid #ff8e78;border-radius:7px;background:#65221e;color:#fff;box-shadow:0 0 9px #ff594877;font-size:11px;line-height:1}
.hero-status-icon b{font-size:10px}.hero-status-icon.poison{border-color:#a1f5a7;background:#164b2d;box-shadow:0 0 9px #64dc7577}.hero-status-icon.energy{border-color:#ffe58a;background:#69511a;box-shadow:0 0 9px #ffd44777}.hero-status-icon.curse{border-color:#c79bf1;background:#48265e;box-shadow:0 0 9px #b580e577}
.unit-status-icon.curse{--state-top:#643783;--state-bottom:#292040;--state-edge:#bb95e5;--state-glow:#8f54dc99}
.unit-status-icon.stun{--state-top:#b78919;--state-bottom:#655012;--state-edge:#ffe18b;--state-glow:#ffd33baa}
.unit-status-icon.chill{--state-top:#268ba3;--state-bottom:#165170;--state-edge:#a3efff;--state-glow:#64dff5aa}
.unit-status-icon.weaken{--state-top:#66596c;--state-bottom:#302638;--state-edge:#c5a5ce;--state-glow:#987aab88}
.unit-status-icon.confuse{--state-top:#a24986;--state-bottom:#54214b;--state-edge:#ffb3e9;--state-glow:#f18bce99}
.unit-status-icon.guard,.unit-status-icon.shield{--state-top:#378db4;--state-bottom:#184565;--state-edge:#a9eaff;--state-glow:#5ccfffaa}
.unit-status-icon.armor{--state-top:#647b91;--state-bottom:#324353;--state-edge:#d5e7f2;--state-glow:#aac8df88}
.unit-status-icon.trample{--state-top:#b45b38;--state-bottom:#692b20;--state-edge:#ffc09b;--state-glow:#ff8359aa}
.unit-status-icon.boost,.unit-status-icon.surge{--state-top:#a98730;--state-bottom:#594019;--state-edge:#ffe49a;--state-glow:#f8cf62aa}
.status-popover{display:none;position:absolute;z-index:90;top:calc(100% + 8px);right:0;width:204px;padding:10px 11px;border:1px solid var(--state-edge,#d6e7f0);border-radius:10px;background:linear-gradient(145deg,#203752,#101d31);box-shadow:0 9px 26px #000d;text-align:left;white-space:normal;pointer-events:none}
.status-popover strong{display:block;margin-bottom:4px;color:#fff1c6;font-size:11px;line-height:1.2}
.status-popover small{display:block;color:#e3e9ed;font-size:10px;line-height:1.35}
.unit-status-icon:hover .status-popover,.unit-status-icon.open .status-popover,.unit-status-icon:focus-visible .status-popover{display:block;animation:status-appear .18s ease-out both}
.unit-status-rail:has(.unit-status-icon.open),.unit-status-rail:has(.unit-status-icon:hover){z-index:80}

/* Brief action callouts are anchored to the acting card or trainer. */
.combat-cue{position:fixed;z-index:89;display:grid;place-items:center;min-width:98px;max-width:200px;padding:8px 12px;border:1px solid var(--cue-edge,#ffe0a0);border-radius:999px;background:linear-gradient(145deg,var(--cue-top,#594324),#14243a);box-shadow:0 5px 20px #000c,0 0 22px var(--cue-glow,#ffc96e88);color:#fff8dc;font-size:12px;font-weight:900;line-height:1.2;text-align:center;text-shadow:0 2px 4px #000;pointer-events:none;animation:combat-cue-float 1.05s ease-out forwards}
.combat-cue:after{content:'';position:absolute;inset:-8px;border:2px solid var(--cue-edge,#ffe0a0);border-radius:inherit;animation:combat-cue-ring 1.05s ease-out forwards}
.combat-cue.attack{--cue-top:#805126;--cue-edge:#ffcd7e;--cue-glow:#ffb04c99}
.combat-cue.counter,.combat-cue.burn{--cue-top:#934027;--cue-edge:#ff9d78;--cue-glow:#ff653caa}
.combat-cue.heal,.combat-cue.healSelf,.combat-cue.healAlly,.combat-cue.drain{--cue-top:#217a5c;--cue-edge:#98ffd1;--cue-glow:#5ef0b7aa}
.combat-cue.shield,.combat-cue.shieldSelf,.combat-cue.shieldAlly,.combat-cue.guard{--cue-top:#286d99;--cue-edge:#9bdeff;--cue-glow:#64bfffaa}
.combat-cue.poison,.combat-cue.curse{--cue-top:#77439a;--cue-edge:#dcb2ff;--cue-glow:#af75e9aa}
.combat-cue.poison{--cue-top:#226a3b;--cue-edge:#a0f0a4;--cue-glow:#5adf75aa}
.combat-cue.energy,.combat-cue.stun{--cue-top:#8c6c17;--cue-edge:#ffe487;--cue-glow:#ffd447aa}
.combat-cue.boost,.combat-cue.surge,.combat-cue.ultimate{--cue-top:#9e7525;--cue-edge:#ffe59b;--cue-glow:#ffd064aa}
@keyframes combat-cue-float{0%{opacity:0;transform:translate(-50%,6px) scale(.72)}18%{opacity:1;transform:translate(-50%,-8px) scale(1.08)}67%{opacity:1;transform:translate(-50%,-20px) scale(1)}100%{opacity:0;transform:translate(-50%,-34px) scale(.96)}}
@keyframes combat-cue-ring{0%{opacity:.8;transform:scale(.65)}65%{opacity:.25;transform:scale(1.22)}100%{opacity:0;transform:scale(1.45)}}
@media(prefers-reduced-motion:reduce){.combat-cue,.combat-cue:after,.status-popover{animation:none!important}}
@media(prefers-reduced-motion:reduce){.unit.provoker:after{animation:none!important}}
body.reduced-effects .unit.provoker:after{animation:none!important}

/* Global audio and accessibility settings. */
.settings-gear{position:fixed;z-index:110;top:14px;right:15px;display:grid;place-items:center;width:42px;height:42px;border:1px solid #f1d691;border-radius:13px;background:linear-gradient(145deg,#38516a,#14243b);box-shadow:0 5px 17px #000a,inset 0 1px #fff6;color:#ffedb8;font-size:25px;line-height:1;transition:transform .22s,box-shadow .22s}
.settings-gear:hover,.settings-gear:focus-visible{transform:rotate(35deg) scale(1.08);box-shadow:0 0 22px #f7ce7399,0 5px 17px #000a;outline:2px solid #fff3c9;outline-offset:2px}
.app .top-actions{padding-right:48px}
.settings-overlay{position:fixed;z-index:120;inset:0;display:grid;place-items:center;padding:16px;background:#020914c9;backdrop-filter:blur(10px);animation:settings-fade .23s ease-out}
.settings-panel{width:min(100%,470px);max-height:min(92dvh,760px);overflow:auto;padding:22px;border:1px solid #e9ca8a;border-radius:22px;background:radial-gradient(circle at 90% 0%,#42627a55,transparent 48%),linear-gradient(155deg,#203852,#101c31 68%,#0b172a);box-shadow:0 27px 90px #000d,inset 0 1px #fff5;color:#f9f1dd;animation:settings-open .32s cubic-bezier(.19,1.2,.32,1)}
.settings-head{display:flex;align-items:center;justify-content:space-between;color:#ffde99;font-size:10px;font-weight:1000;letter-spacing:.17em}.settings-head button{display:grid;place-items:center;width:34px;height:34px;border:1px solid #edd7aa;border-radius:50%;background:#192b42;color:#ffebbe;font-size:24px}
.settings-panel h2{margin:8px 0;color:#fff1ca;font:900 29px/1.05 Georgia,serif}.settings-panel>p{margin:7px 0 16px;color:#cddbe1;font-size:12px;line-height:1.4}
.settings-current-track{margin:0 0 6px;color:#ffdb8e;font-size:9px;font-weight:1000;letter-spacing:.15em;text-align:center}
.settings-track{display:flex;align-items:end;justify-content:center;gap:7px;height:48px;margin-bottom:14px;padding:8px;border:1px solid #bda67576;border-radius:11px;background:linear-gradient(90deg,#132c44,#233b52,#132c44)}
.settings-track i{width:10px;height:calc(8px + var(--n,1)*5px);border-radius:3px 3px 1px 1px;background:linear-gradient(#fff4bf,#d8a64f);box-shadow:0 0 9px #ffda8b66;animation:settings-eq .8s ease-in-out infinite alternate}.settings-track i:nth-child(3n){--n:4;animation-delay:.15s}.settings-track i:nth-child(4n){--n:2;animation-delay:.32s}.settings-track i:nth-child(5n){--n:3;animation-delay:.5s}
.settings-controls{display:grid;gap:8px}.settings-slider,.settings-switch{display:grid;gap:7px;padding:10px 12px;border:1px solid #c1d4dc45;border-radius:10px;background:#0b1b2fc7}.settings-slider>span,.settings-switch{display:flex;align-items:center;justify-content:space-between;gap:10px}.settings-slider b,.settings-switch b{color:#fff1cf;font-size:12px}.settings-slider output{color:#f8d68c;font-size:12px;font-weight:900}.settings-slider input{width:100%;accent-color:#f0b966;cursor:pointer}.settings-switch span{display:grid;gap:3px}.settings-switch small{color:#aec2d2;font-size:10px}.settings-switch input{width:20px;height:20px;accent-color:#e9bb66;cursor:pointer}
.settings-panel footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.settings-panel footer small{max-width:230px;color:#b8cad5;font-size:10px}.settings-panel footer .btn{min-width:93px}
@keyframes settings-fade{from{opacity:0}to{opacity:1}}@keyframes settings-open{from{opacity:0;transform:translateY(28px) scale(.9)}to{opacity:1;transform:none}}@keyframes settings-eq{to{height:8px;filter:brightness(.8)}}
@media(max-width:680px){.settings-gear{width:34px;height:34px;top:7px;right:7px;font-size:20px}.app .top-actions{padding-right:36px}.settings-panel{padding:16px}.settings-panel h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){.settings-gear,.settings-overlay,.settings-panel,.settings-track i{transition:none;animation:none}}
body.reduced-effects .settings-gear,body.reduced-effects .settings-overlay,body.reduced-effects .settings-panel,body.reduced-effects .settings-track i{transition:none;animation:none}

/* Card rarity is separate from Pokémon type: the art keeps its type scenery. */
.collection-card.rarity-common,.hand-card.rarity-common,.inspect-card.rarity-common{--rarity-edge:#c9c4b7;--rarity-light:#eee9dc;--rarity-glow:#c4c1b866;--rarity-deep:#29313c;--rarity-mark:#e5e4dc}
.collection-card.rarity-rare,.hand-card.rarity-rare,.inspect-card.rarity-rare{--rarity-edge:#76baff;--rarity-light:#dfedff;--rarity-glow:#5da9f5a1;--rarity-deep:#173d6d;--rarity-mark:#c8e4ff}
.collection-card.rarity-epic,.hand-card.rarity-epic,.inspect-card.rarity-epic{--rarity-edge:#c591f4;--rarity-light:#f0ddff;--rarity-glow:#aa6deab3;--rarity-deep:#542878;--rarity-mark:#ead0ff}
.collection-card.rarity-legendary,.hand-card.rarity-legendary,.inspect-card.rarity-legendary{--rarity-edge:#ffcf63;--rarity-light:#fff3c5;--rarity-glow:#ffc447c9;--rarity-deep:#60401d;--rarity-mark:#ffeb9f}
.collection-card[class*=rarity-],.hand-card[class*=rarity-]{border-color:var(--rarity-edge);background:linear-gradient(145deg,var(--rarity-light) 0%,var(--rarity-edge) 3%,var(--rarity-deep) 15%,#101c2d 83%,var(--rarity-edge) 100%);box-shadow:inset 0 0 0 1px #fff9df,inset 0 0 0 4px #101925,0 9px 20px #000b,0 0 16px var(--rarity-glow)}
.collection-card.rarity-common .collection-face{background:repeating-linear-gradient(145deg,transparent 0 32px,#f2ede50b 33px 34px),linear-gradient(150deg,#46515c,#1b2838 42%,#101b2b)}
.collection-card.rarity-rare .collection-face{background:repeating-linear-gradient(125deg,transparent 0 21px,#a9d6ff10 22px 23px,transparent 24px 42px),radial-gradient(circle at 80% 15%,#68baff52,transparent 45%),linear-gradient(145deg,#205b87,#172f51 57%,#0d1c32)}
.collection-card.rarity-epic .collection-face{background:radial-gradient(circle at 85% 10%,#efceff91 0 1px,transparent 2px),radial-gradient(circle at 20% 50%,#d6a8ff99 0 1px,transparent 2px),repeating-linear-gradient(130deg,transparent 0 34px,#d2a4ff19 35px 36px),linear-gradient(145deg,#683b90,#392653 48%,#1b1536)}
.collection-card.rarity-legendary .collection-face{background:repeating-conic-gradient(from 20deg at 50% 28%,#ffdb6520 0 6deg,transparent 7deg 18deg),radial-gradient(circle at 50% 25%,#f6ce6c75,transparent 45%),linear-gradient(155deg,#7b5638,#30253e 53%,#18182d)}
.hand-card.rarity-common{background:linear-gradient(150deg,#606a70,#263442 25%,#111c2b 86%,#a5a8a2)}
.hand-card.rarity-rare{background:repeating-linear-gradient(125deg,transparent 0 24px,#a9d6ff0d 25px 26px),linear-gradient(150deg,#66a9e9,#1d4976 22%,#101f35 88%,#78b9ef)}
.hand-card.rarity-epic{background:radial-gradient(circle at 75% 15%,#dfa9ff85,transparent 48%),repeating-linear-gradient(130deg,transparent 0 26px,#edcdff12 27px 28px),linear-gradient(150deg,#9956c8,#4a2b6c 30%,#201936 87%,#b67be5)}
.hand-card.rarity-legendary{background:repeating-conic-gradient(from 20deg at 50% 30%,#ffdc6421 0 7deg,transparent 8deg 19deg),radial-gradient(circle at 50% 25%,#ffe08155,transparent 58%),linear-gradient(145deg,#b68943,#54362d 33%,#1d1b32 85%,#ddb65d)}
.collection-card[class*=rarity-] .collection-face,.hand-card[class*=rarity-] .card-art,.inspect-card[class*=rarity-] .inspect-card-art{border-color:var(--rarity-edge)}
.collection-card[class*=rarity-] .card-move,.hand-card[class*=rarity-] .card-move,.inspect-card[class*=rarity-] .inspect-attack{border-color:color-mix(in srgb,var(--rarity-edge) 77%,#fff);box-shadow:inset 0 1px #ffffff25}
.collection-card[class*=rarity-] .card-art,.hand-card[class*=rarity-] .card-art{border-color:var(--rarity-edge);box-shadow:inset 0 0 0 1px #fff8df90,0 2px 9px #000b,0 0 13px var(--rarity-glow)}
.card-rarity-seal{position:absolute;z-index:5;top:5px;right:5px;display:grid;place-items:center;width:19px;height:19px;border:1px solid var(--rarity-light);border-radius:50%;background:linear-gradient(145deg,var(--rarity-deep),#0b1728);box-shadow:0 2px 7px #000b,0 0 9px var(--rarity-glow);color:var(--rarity-mark);font:900 12px/1 Georgia,serif;text-shadow:0 0 7px var(--rarity-edge);pointer-events:none}
.rarity-legendary .card-rarity-seal{width:23px;height:23px;border-width:2px;font-size:16px;box-shadow:0 0 0 2px #2b2130,0 0 16px #ffd66bc9}
.rarity-epic .card-rarity-seal{border-radius:5px}
.inspect-card[class*=rarity-]{--inspect-edge:var(--rarity-edge);border-color:var(--rarity-edge);background:radial-gradient(circle at 50% 20%,var(--rarity-glow),transparent 45%),linear-gradient(155deg,var(--rarity-light) 0,var(--rarity-deep) 7%,#18283c 46%,#0c1728 100%);box-shadow:inset 0 0 0 2px #fff7d8,inset 0 0 0 5px #1c2030,0 18px 45px #000d,0 0 27px var(--rarity-glow)}
.inspect-card.rarity-common{background:repeating-linear-gradient(135deg,transparent 0 45px,#eee9dc0a 46px 47px),linear-gradient(155deg,#bbb7aa,#364554 8%,#1b293a 42%,#111b29)}
.inspect-card.rarity-rare{background:repeating-linear-gradient(125deg,transparent 0 33px,#a5d3ff10 34px 35px),radial-gradient(circle at 75% 13%,#88c4ff69,transparent 42%),linear-gradient(155deg,#a0cbff,#255586 9%,#183350 51%,#0d1d33)}
.inspect-card.rarity-epic{background:radial-gradient(circle at 18% 17%,#ead1ffae 0 2px,transparent 3px),radial-gradient(circle at 81% 38%,#d9b5ff9c 0 2px,transparent 3px),radial-gradient(circle at 50% 15%,#b778f576,transparent 49%),linear-gradient(150deg,#e2b5ff,#663b8a 9%,#372650 60%,#181631)}
.inspect-card.rarity-legendary{background:repeating-conic-gradient(from 10deg at 50% 28%,#ffe28521 0 6deg,transparent 7deg 18deg),radial-gradient(circle at 50% 25%,#ffdd7899,transparent 46%),linear-gradient(155deg,#ffda81,#71502d 8%,#392b40 57%,#151b2d)}
.inspect-rarity{flex:none;padding:3px 6px;border:1px solid var(--rarity-edge);border-radius:99px;background:var(--rarity-deep);box-shadow:0 0 9px var(--rarity-glow);color:var(--rarity-light);font-size:clamp(7px,1.55vw,9px);line-height:1.1;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}
.rarity-epic .inspect-rarity,.rarity-legendary .inspect-rarity{font-weight:1000}
.collection-card.rarity-epic:hover,.collection-card.rarity-legendary:hover{box-shadow:inset 0 0 0 2px #fff6d8,inset 0 0 0 4px var(--rarity-edge),0 20px 35px #000d,0 0 29px var(--rarity-glow)}
.collection-card.rarity-legendary:after{opacity:.3;background:radial-gradient(ellipse at var(--shine-x) var(--shine-y),#fff8d6bc 0%,transparent 48%),repeating-linear-gradient(115deg,transparent 0 20px,#fff1c130 21px 22px,transparent 23px 42px);animation:foil-glint 6s ease-in-out infinite}
.collection-card.rarity-legendary:hover:after{opacity:.78}
@media(max-width:690px){.card-rarity-seal{top:3px;right:3px;width:16px;height:16px;font-size:10px}.rarity-legendary .card-rarity-seal{width:19px;height:19px;font-size:13px}.inspect-rarity{padding:2px 4px;font-size:7px}}
@media(prefers-reduced-motion:reduce){.collection-card.rarity-legendary:after{animation:none}}
.pack-result-card.common{border-color:#bfc2c7;box-shadow:0 12px 25px #0009,0 0 12px #c2c4c54d}
.pack-result-card.rare{border-color:#75b9ff;box-shadow:0 12px 25px #0009,0 0 20px #68b5ff91}
.pack-result-card.epic{border-color:#c98ff4;box-shadow:0 12px 25px #0009,0 0 25px #b779e5ad}
.pack-result-card.legendary{border-color:#ffd46b;box-shadow:0 12px 25px #0009,0 0 32px #ffd258b8}
.pack-result-card.common .pack-rarity{color:#e4e6e9}.pack-result-card.rare .pack-rarity{color:#a8d6ff}.pack-result-card.epic .pack-rarity{color:#e7c2ff}.pack-result-card.legendary .pack-rarity{color:#ffdf8a}

/* Sealed pack, full-card reveals and a stronger finish for high rarities. */
.pack-opening{position:relative;isolation:isolate;max-height:calc(100dvh - 28px);overflow-y:auto;overflow-x:hidden}
.pack-sealed{position:relative;display:grid;place-items:center;gap:8px;width:min(220px,55vw);aspect-ratio:.72;margin:22px auto 25px;border:6px double #ffe6a1;border-radius:18px;background:repeating-conic-gradient(from 9deg at 50% 38%,#ffe29a12 0 8deg,transparent 9deg 22deg),radial-gradient(circle at 50% 43%,#e3bb655c,transparent 53%),linear-gradient(150deg,#6b5362,#1d3451 42%,#2a2441 82%,#876b47);box-shadow:inset 0 0 0 4px #162039,0 18px 38px #000b,0 0 35px #f4c96e77;color:#ffe9a7;transform:rotate(-3deg);animation:pack-idle 2.8s ease-in-out infinite alternate}
.pack-sealed:before{content:'';position:absolute;inset:10px;border:1px solid #ffe5a782;border-radius:10px;pointer-events:none}.pack-sealed[hidden]{display:none}
.pack-sealed-emblem{font-size:72px;line-height:1;text-shadow:0 0 27px #ffde8e,0 5px 13px #000}.pack-sealed>span:nth-child(2){font-size:11px;font-weight:1000;letter-spacing:.19em}.pack-sealed b{font:900 18px Georgia,serif}
.pack-opening .pack-results{grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;gap:11px;margin:20px 0 18px;overflow:visible}.pack-opening .pack-results.pack-stage-hidden{display:none}
.pack-opening .pack-card-slot{position:relative;min-width:0;display:grid;gap:8px;align-items:start}.pack-opening .pack-reveal-card{width:100%;min-width:0;min-height:0;height:auto;aspect-ratio:.715;padding:5px;margin:0;transform:none}.pack-opening .pack-reveal-card .collection-face{height:100%;min-height:0}.pack-opening .pack-reveal-card .card-art{min-height:0}.pack-opening .pack-reveal-card .card-art img{width:auto;height:auto;max-width:88%;max-height:88%;object-fit:contain}.pack-opening .pack-reveal-card:hover{transform:translateY(-4px) scale(1.03)}
.pack-opening .pack-card-status{min-height:22px;padding:4px 6px;border:1px solid #d8e6d376;border-radius:20px;background:#0d2733;color:#bbf4ce;font-size:10px;font-weight:900;line-height:1.2}.pack-opening .pack-card-slot.epic .pack-card-status{border-color:#d6a5fa;color:#f0d5ff}.pack-opening .pack-card-slot.legendary .pack-card-status{border-color:#ffdc82;color:#ffedb2}
.pack-opening .pack-result-card.concealed{width:100%;aspect-ratio:.715;border:4px double #e9cd8a;border-radius:14px;background:repeating-conic-gradient(from 15deg at 50% 43%,#ffe29a14 0 9deg,transparent 10deg 24deg),linear-gradient(145deg,#334f6b,#172b48 70%,#4e415b);box-shadow:inset 0 0 0 4px #142238,0 12px 23px #0009;color:#ffe4a4;font-size:48px}.pack-opening .pack-result-card.concealed span{filter:drop-shadow(0 0 12px #ffdd8e)}
.pack-opening .pack-card-slot.latest{z-index:4;animation:pack-card-entrance .72s cubic-bezier(.17,.86,.2,1.15) both}.pack-opening .pack-card-slot.latest.rare{--reveal-halo:#73c1ff}.pack-opening .pack-card-slot.latest.epic{--reveal-halo:#c18cff}.pack-opening .pack-card-slot.latest.legendary{--reveal-halo:#ffd66e}.pack-opening .pack-card-slot.latest .pack-reveal-card{box-shadow:inset 0 0 0 2px #fff8dc,0 13px 27px #000c,0 0 30px var(--reveal-halo,#d5e2eb)}
.pack-burst{position:absolute;z-index:9;inset:0;opacity:0;pointer-events:none}.pack-burst:before,.pack-burst:after{content:'';position:absolute;left:50%;top:52%;width:min(70vw,620px);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%) scale(.1)}.pack-burst:before{background:repeating-conic-gradient(from 4deg,#ffffffb3 0 2deg,transparent 3deg 17deg),radial-gradient(circle,#fff4d0,transparent 57%);mix-blend-mode:screen}.pack-burst:after{border:4px solid #fff2bb;box-shadow:0 0 50px var(--burst-color,#ffda8b),inset 0 0 50px var(--burst-color,#ffda8b)}
.pack-opening.pack-flash-common{--burst-color:#dae0e8}.pack-opening.pack-flash-rare{--burst-color:#79c6ff}.pack-opening.pack-flash-epic{--burst-color:#cb91ff}.pack-opening.pack-flash-legendary{--burst-color:#ffe079}
.pack-opening[class*=pack-flash-] .pack-burst{animation:pack-burst-visibility 1s ease-out forwards}.pack-opening[class*=pack-flash-] .pack-burst:before{animation:pack-rays .95s ease-out forwards}.pack-opening[class*=pack-flash-] .pack-burst:after{animation:pack-ring .9s ease-out forwards}
.pack-opening.pack-flash-epic,.pack-opening.pack-flash-legendary{animation:pack-stage-shake .55s ease-out}.pack-opening.pack-flash-legendary .pack-burst:before{filter:sepia(.65) saturate(1.5)}
.pack-opening .pack-reveal{border:1px solid #ffe5ab;background:linear-gradient(180deg,#ffe2a0,#d29545);box-shadow:0 7px 18px #0008,0 0 18px #ffcc6f69;color:#2d1b0b;font-weight:1000;letter-spacing:.06em}.pack-opening .pack-reveal:hover{filter:brightness(1.12);transform:translateY(-2px)}
@keyframes pack-idle{to{transform:rotate(3deg) translateY(-8px);box-shadow:inset 0 0 0 4px #162039,0 25px 40px #000b,0 0 55px #ffdf9d98}}
@keyframes pack-card-entrance{0%{opacity:0;transform:translateY(65px) rotateY(85deg) scale(.67);filter:brightness(2)}65%{opacity:1;filter:brightness(1.35)}100%{transform:none;filter:none}}
@keyframes pack-burst-visibility{0%,75%{opacity:1}100%{opacity:0}}
@keyframes pack-rays{0%{opacity:1;transform:translate(-50%,-50%) scale(.07) rotate(0)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.5) rotate(30deg)}}
@keyframes pack-ring{0%{opacity:.95;transform:translate(-50%,-50%) scale(.05)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.2)}}
@keyframes pack-stage-shake{25%{transform:translateX(-4px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}100%{transform:none}}
@media(max-width:820px){.pack-opening .pack-results{grid-template-columns:repeat(5,155px);justify-content:start;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;padding:5px 4px 20px}.pack-opening .pack-card-slot,.pack-opening .pack-result-card.concealed{scroll-snap-align:center}.pack-opening h2{font-size:clamp(24px,5vw,35px)}}
body.reduced-effects .pack-sealed,body.reduced-effects .pack-opening .pack-card-slot.latest,body.reduced-effects .pack-opening[class*=pack-flash-],body.reduced-effects .pack-opening[class*=pack-flash-] .pack-burst{animation:none!important}

/* Entrada cinematográfica del Pokémon, sin mostrar la carta. */
.pokemon-play-banner{position:fixed;z-index:85;width:min(780px,calc(100vw - 22px));height:clamp(175px,28vh,265px);overflow:hidden;border-radius:18px;background:radial-gradient(ellipse at 50% 80%,var(--type-color),transparent 52%),radial-gradient(ellipse at 50% 50%,#27334d 0%,#070b15 70%);box-shadow:0 25px 60px #000e,0 0 34px var(--type-color),inset 0 0 42px #000;pointer-events:none;transform:translate(-50%,-50%);isolation:isolate;animation:pokemon-play-enter 2.05s ease-out both}
.pokemon-play-banner:before{content:'';position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,#03060bcc,transparent 18% 82%,#03060bcc),radial-gradient(ellipse at 50% 130%,var(--type-light),transparent 58%);mix-blend-mode:screen;opacity:.75}
.pokemon-play-banner:after{content:'';position:absolute;z-index:6;inset:0;border-block:2px solid var(--type-light);border-radius:inherit;box-shadow:inset 0 0 28px var(--type-color);pointer-events:none}
.pokemon-play-aura{position:absolute;z-index:1;inset:-80% -25%;background:repeating-conic-gradient(from 0deg at 50% 60%,transparent 0deg 13deg,var(--type-color) 16deg 20deg,transparent 23deg 36deg);opacity:.43;filter:blur(13px);animation:pokemon-play-spin 2.05s linear both}
.pokemon-play-vortex{position:absolute;z-index:2;left:50%;top:58%;width:72%;aspect-ratio:1;border:10px solid var(--type-light);border-radius:50%;box-shadow:0 0 25px 8px var(--type-color),inset 0 0 35px var(--type-color);transform:translate(-50%,-50%) scaleY(.42) rotate(-13deg);animation:pokemon-play-vortex 2.05s ease-out both}
.pokemon-play-vortex:before,.pokemon-play-vortex:after{content:'';position:absolute;inset:8%;border:7px solid var(--type-color);border-radius:50%;box-shadow:0 0 18px var(--type-light);transform:rotate(20deg) scaleY(.85)}
.pokemon-play-vortex:after{inset:-22%;border-width:4px;opacity:.6;transform:rotate(-28deg) scaleY(.65)}
.pokemon-play-sparks{position:absolute;z-index:4;inset:0}.pokemon-play-sparks i{position:absolute;left:50%;top:57%;width:clamp(3px,.7vw,7px);height:clamp(12px,2vw,23px);border-radius:50% 50% 40% 40%;background:var(--type-light);box-shadow:0 0 12px 4px var(--type-color),0 0 25px var(--type-light);transform:rotate(var(--angle)) translateY(-20px);animation:pokemon-play-spark 1.45s calc(var(--i)*-45ms) ease-out both}
.pokemon-play-creature{position:absolute;z-index:5;left:50%;bottom:-10%;width:min(43%,310px);height:117%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 16px 7px #000d) drop-shadow(0 0 18px var(--type-light));transform:translateX(-50%);animation:pokemon-play-creature 2.05s cubic-bezier(.2,.8,.2,1) both}
.pokemon-play-label{position:absolute;z-index:7;right:18px;bottom:14px;display:grid;justify-items:end;gap:2px;max-width:35%;color:#fff9e9;text-align:right;text-shadow:0 2px 8px #000,0 0 15px #000}.pokemon-play-label small{color:var(--type-light);font-size:9px;font-weight:900;letter-spacing:.2em}.pokemon-play-label strong{font-size:clamp(17px,2.2vw,27px);line-height:1;overflow-wrap:anywhere}.pokemon-play-label em{font-size:11px;font-style:normal;font-weight:800}
.pokemon-play-banner.type-fire{background:radial-gradient(ellipse at 50% 110%,#ffad2c 0%,#a93f12 31%,#250b0a 66%,#050509 100%)}
.pokemon-play-banner.type-fire .pokemon-play-aura{background:repeating-conic-gradient(from 0deg at 50% 115%,transparent 0deg 9deg,#ffed816e 12deg 17deg,transparent 20deg 30deg);filter:blur(7px)}
.pokemon-play-banner.type-water .pokemon-play-aura,.pokemon-play-banner.type-ice .pokemon-play-aura{background:repeating-radial-gradient(ellipse at 50% 105%,transparent 0 18px,#c5f7ff8c 21px 25px,transparent 29px 52px);filter:blur(3px)}
.pokemon-play-banner.type-electric .pokemon-play-aura{background:repeating-linear-gradient(118deg,transparent 0 36px,#fff4a699 39px 44px,transparent 47px 70px);filter:blur(3px)}
.pokemon-play-banner.type-grass .pokemon-play-aura,.pokemon-play-banner.type-bug .pokemon-play-aura{background:repeating-conic-gradient(from 0deg at 50% 110%,transparent 0deg 15deg,#d9ffb181 18deg 23deg,transparent 26deg 37deg);filter:blur(5px)}
@keyframes pokemon-play-enter{0%{opacity:0;scale:.8;clip-path:inset(0 50% round 18px)}13%{opacity:1;scale:1.02;clip-path:inset(0 0 round 18px)}22%,82%{opacity:1;scale:1;clip-path:inset(0 0 round 18px)}100%{opacity:0;scale:1.04;clip-path:inset(0 0 round 18px)}}
@keyframes pokemon-play-spin{from{transform:rotate(-32deg) scale(.6)}to{transform:rotate(36deg) scale(1.2)}}
@keyframes pokemon-play-vortex{0%{opacity:0;scale:.35;rotate:-50deg}25%,75%{opacity:.85;scale:1;rotate:0deg}100%{opacity:0;scale:1.35;rotate:25deg}}
@keyframes pokemon-play-spark{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.3)}20%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(-280px) scale(.5)}}
@keyframes pokemon-play-creature{0%{opacity:0;transform:translateX(-50%) translateY(90px) scale(.45);filter:brightness(5) drop-shadow(0 0 30px var(--type-light))}24%{opacity:1;transform:translateX(-50%) translateY(-10px) scale(1.13);filter:brightness(1.6) drop-shadow(0 0 25px var(--type-light))}40%,84%{opacity:1;transform:translateX(-50%) translateY(0) scale(1);filter:brightness(1) drop-shadow(0 16px 7px #000d) drop-shadow(0 0 18px var(--type-light))}100%{opacity:0;transform:translateX(-50%) translateY(-25px) scale(1.08)}}
.pokemon-play-banner.still,.pokemon-play-banner.still *{animation:none!important}.pokemon-play-banner.still{opacity:1}
@media(prefers-reduced-motion:reduce){.pokemon-play-banner,.pokemon-play-banner *{animation:none!important}}
@media(max-width:520px){.pokemon-play-banner{height:175px}.pokemon-play-creature{width:58%;height:110%}.pokemon-play-label{right:10px;bottom:10px;max-width:38%}.pokemon-play-label small{font-size:8px}.pokemon-play-label strong{font-size:16px}.pokemon-play-label em{font-size:9px}}

/* La intensidad de la entrada crece con la rareza real de la carta. */
.pokemon-play-banner{animation-duration:var(--entrance-duration,2050ms)}
.pokemon-play-banner .pokemon-play-aura,.pokemon-play-banner .pokemon-play-vortex,.pokemon-play-banner .pokemon-play-creature{animation-duration:var(--entrance-duration,2050ms)}
.pokemon-play-rarity{display:none;margin-top:4px;padding:3px 7px;border:1px solid currentColor;border-radius:5px;color:var(--type-light);background:#050b18aa;font-size:9px;font-weight:1000;letter-spacing:.18em}
.pokemon-play-halo,.pokemon-play-flash{display:none;position:absolute;pointer-events:none}
.pokemon-play-banner.entrance-rare{box-shadow:0 25px 60px #000e,0 0 45px var(--type-color),inset 0 0 42px #000}
.pokemon-play-banner.entrance-rare .pokemon-play-rarity{display:block}
.pokemon-play-banner.entrance-rare .pokemon-play-vortex{border-width:13px;filter:drop-shadow(0 0 10px var(--type-light))}
.pokemon-play-banner.entrance-rare .pokemon-play-creature{filter:drop-shadow(0 16px 7px #000d) drop-shadow(0 0 23px var(--type-light))}
.pokemon-play-banner.entrance-epic{width:min(825px,calc(100vw - 18px));height:clamp(195px,31vh,290px);box-shadow:0 28px 70px #000f,0 0 55px var(--type-color),0 0 18px #c284ff,inset 0 0 50px #a265ff55}
.pokemon-play-banner.entrance-epic .pokemon-play-rarity{display:block;border-color:#e7beff;color:#f4dfff;box-shadow:0 0 13px #b973f2}
.pokemon-play-banner.entrance-epic .pokemon-play-halo,.pokemon-play-banner.entrance-legendary .pokemon-play-halo{display:block;z-index:3;left:50%;top:46%;width:230px;height:230px;border:3px dashed #efd1ff;border-radius:50%;box-shadow:0 0 25px #c783ff,inset 0 0 28px #b36feb;transform:translate(-50%,-50%);animation:pokemon-play-halo var(--entrance-duration) ease-out both}
.pokemon-play-banner.entrance-epic .pokemon-play-halo:before,.pokemon-play-banner.entrance-legendary .pokemon-play-halo:before{content:'✦  ✧  ✦  ✧  ✦  ✧';position:absolute;inset:13px;border:2px solid #f4e1ff;border-radius:50%;color:#fff;font-size:18px;letter-spacing:12px;text-align:center;line-height:180px;text-shadow:0 0 12px #fff}
.pokemon-play-banner.entrance-epic .pokemon-play-flash,.pokemon-play-banner.entrance-legendary .pokemon-play-flash{display:block;z-index:4;inset:0;background:radial-gradient(circle at 50% 50%,#fff 0%,#ead1ffb0 8%,transparent 46%);mix-blend-mode:screen;animation:pokemon-play-flash var(--entrance-duration) ease-out both}
.pokemon-play-banner.entrance-legendary{width:min(900px,calc(100vw - 12px));height:clamp(220px,35vh,330px);background:radial-gradient(ellipse at 50% 110%,#ffdb75b0,transparent 52%),radial-gradient(ellipse at 50% 50%,var(--type-color),#1e1320 66%,#04050b 100%);box-shadow:0 30px 80px #000f,0 0 70px #ffcd69,0 0 38px var(--type-color),inset 0 0 70px #f5bb5473}
.pokemon-play-banner.entrance-legendary:after{border:3px solid #fff0ba;box-shadow:inset 0 0 32px #ffda7d,0 0 21px #ffd96c}
.pokemon-play-banner.entrance-legendary .pokemon-play-rarity{display:block;border-color:#ffe390;color:#fff1b8;background:#67401cb8;box-shadow:0 0 18px #ffcf61;text-shadow:0 0 9px #ffd36c}
.pokemon-play-banner.entrance-legendary .pokemon-play-halo{width:290px;height:290px;border:5px double #fff1ba;box-shadow:0 0 30px 10px #ffce6e,inset 0 0 38px #ffce6e}
.pokemon-play-banner.entrance-legendary .pokemon-play-halo:before{border-color:#ffdf85;color:#fff5c5;line-height:235px;font-size:22px}
.pokemon-play-banner.entrance-legendary .pokemon-play-flash{background:radial-gradient(circle at 50% 50%,#fff 0%,#fff4bccc 12%,transparent 53%)}
.pokemon-play-banner.entrance-legendary .pokemon-play-vortex{border-color:#fff3b8;border-width:16px;box-shadow:0 0 37px 13px #ffdc76,inset 0 0 40px #ffd369}
.pokemon-play-banner.entrance-legendary .pokemon-play-creature{width:min(48%,360px);height:124%;filter:drop-shadow(0 20px 9px #000e) drop-shadow(0 0 30px #ffe6a6)}
.pokemon-play-banner.entrance-legendary .pokemon-play-sparks i{background:#fff5c4;box-shadow:0 0 16px 6px #ffca55,0 0 31px #fff3b6}
@keyframes pokemon-play-halo{0%{opacity:0;scale:.3;rotate:-100deg}25%{opacity:.95;scale:1.05;rotate:0deg}75%{opacity:.9;scale:1;rotate:55deg}100%{opacity:0;scale:1.5;rotate:90deg}}
@keyframes pokemon-play-flash{0%,10%{opacity:0}16%{opacity:.95}32%{opacity:0}52%{opacity:.35}62%,100%{opacity:0}}
@media(max-width:520px){.pokemon-play-banner.entrance-epic{height:195px}.pokemon-play-banner.entrance-legendary{height:220px}.pokemon-play-banner.entrance-legendary .pokemon-play-creature{width:62%;height:115%}.pokemon-play-banner.entrance-epic .pokemon-play-halo{width:160px;height:160px}.pokemon-play-banner.entrance-legendary .pokemon-play-halo{width:190px;height:190px}.pokemon-play-rarity{font-size:7px}}

.pokemon-play-card-side{position:absolute;z-index:7;left:4%;top:50%;width:clamp(58px,10vw,110px);height:76%;object-fit:contain;filter:drop-shadow(0 9px 9px #000d) drop-shadow(0 0 10px var(--type-color,#d7acff));transform:translateY(-50%) rotate(-10deg);animation:pokemon-side-card var(--entrance-duration,2050ms) ease-out both}
.pokemon-play-banner.entrance-legendary .pokemon-play-card-side{filter:drop-shadow(0 9px 9px #000d) drop-shadow(0 0 20px #ffdc79)}
@keyframes pokemon-side-card{0%{opacity:0;transform:translate(-45px,-50%) rotate(-25deg) scale(.7)}22%,82%{opacity:1;transform:translate(0,-50%) rotate(-10deg) scale(1)}100%{opacity:0;transform:translate(-20px,-50%) rotate(-5deg) scale(1.1)}}
.item-play-banner{--type-color:#aa86dc;--type-light:#f1dcff;width:min(610px,calc(100vw - 22px));height:180px;background:radial-gradient(ellipse at 50% 50%,#7953a9,#241b39 60%,#080b17);box-shadow:0 20px 55px #000d,0 0 30px #b889ee}
.item-play-banner .item-play-art{position:absolute;z-index:5;left:44%;top:50%;width:150px;height:150px;object-fit:contain;filter:drop-shadow(0 0 19px #dfbfff);transform:translate(-50%,-50%);animation:item-play-pop 1.7s ease-out both}
.item-play-banner .pokemon-play-label{right:20px;max-width:35%}.item-play-banner .pokemon-play-card-side{left:6%;height:82%}
@keyframes item-play-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(-25deg)}28%,80%{opacity:1;transform:translate(-50%,-50%) scale(1.08) rotate(0)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.2) rotate(12deg)}}

.app.battle-table .trainer-deck.deck-pile{position:relative;display:grid;place-items:center;flex:none;width:64px;height:81px;min-height:0;padding:0;border:0;background:none;box-shadow:none;color:#fff4ca;overflow:visible;cursor:default}
.trainer-deck .deck-stack{position:absolute;inset:3px 8px 17px 6px;perspective:140px}
.trainer-deck .deck-stack i{position:absolute;inset:0;border-radius:6px;background:url('assets/pokemon-battles-card-back.svg') center/100% 100% no-repeat;box-shadow:0 2px 5px #000b;transform:translate(var(--deck-x),var(--deck-y)) rotate(var(--deck-rotate));opacity:0;transition:opacity .25s,transform .3s}
.trainer-deck .deck-stack i:nth-child(1){--deck-x:-8px;--deck-y:8px;--deck-rotate:-8deg}.trainer-deck .deck-stack i:nth-child(2){--deck-x:-6px;--deck-y:6px;--deck-rotate:-6deg}.trainer-deck .deck-stack i:nth-child(3){--deck-x:-4px;--deck-y:4px;--deck-rotate:-4deg}.trainer-deck .deck-stack i:nth-child(4){--deck-x:-2px;--deck-y:2px;--deck-rotate:-2deg}.trainer-deck .deck-stack i:nth-child(5){--deck-x:0px;--deck-y:0px;--deck-rotate:0deg}
.trainer-deck[data-depth="1"] i:nth-child(-n+1),.trainer-deck[data-depth="2"] i:nth-child(-n+2),.trainer-deck[data-depth="3"] i:nth-child(-n+3),.trainer-deck[data-depth="4"] i:nth-child(-n+4),.trainer-deck[data-depth="5"] i:nth-child(-n+5){opacity:1}
.trainer-deck .deck-count{position:absolute;z-index:3;right:-5px;bottom:0;display:grid;place-items:center;min-width:25px;height:23px;padding:0 3px;border:1px solid #ffe0a0;border-radius:12px;background:#122b45;color:#fff4ce;box-shadow:0 2px 8px #000b;font-size:12px;font-weight:1000}
.trainer-deck .hand-count-badge{position:absolute;z-index:4;right:-5px;bottom:-22px;min-width:45px;padding:3px 5px;border:1px solid #9ac9ef;border-radius:7px;background:#163653;color:#e7f5ff;box-shadow:0 2px 8px #000b;font-size:9px;font-weight:1000;line-height:1;letter-spacing:.02em;text-align:center;white-space:nowrap}
.trainer-deck.empty .deck-stack{opacity:.28}.trainer-deck.empty .deck-count{border-color:#9aa6b6;color:#e5e9ef}
.app.battle-table .trainer-deck.drawing .deck-stack i:last-child{animation:deck-top-draw .42s ease-out}
.app.battle-table .trainer-deck.drawing .deck-stack:after{content:'';position:absolute;z-index:6;inset:0;border-radius:6px;background:url('assets/pokemon-battles-card-back.svg') center/100% 100% no-repeat;box-shadow:0 0 17px #ffe0a3;animation:deck-card-leave .46s ease-out forwards}
@keyframes deck-top-draw{45%{translate:0 -14px;rotate:-8deg;filter:brightness(1.7)}to{translate:0 0;rotate:0;filter:none}}
@keyframes deck-card-leave{0%{opacity:0;transform:translateY(0) rotate(0) scale(1)}25%{opacity:1}100%{opacity:0;transform:translateY(-42px) rotate(-15deg) scale(1.15)}}
@media(min-width:761px){.app.battle-table .board>.enemy-hero,.app.battle-table .board>.player-row .hero{justify-content:center}.app.battle-table .board>.enemy-hero .trainer-deck,.app.battle-table .board>.player-row .hero .trainer-deck{margin:8px auto 0}}
@media(max-width:760px){.app.battle-table .board>.enemy-hero,.app.battle-table .board>.player-row .hero{min-height:58px;height:58px;padding-right:60px}.app.battle-table .trainer-deck.deck-pile{position:absolute;right:3px;top:3px;width:48px;height:53px}.trainer-deck .deck-stack{inset:2px 10px 10px 5px}.trainer-deck .deck-count{right:0;bottom:0;font-size:10px;min-width:20px;height:19px}.trainer-deck .hand-count-badge{right:0;bottom:-19px;min-width:41px;font-size:8px}}
@media(prefers-reduced-motion:reduce){.pokemon-play-card-side,.item-play-banner .item-play-art,.trainer-deck .deck-stack i{animation:none!important;transition:none!important}}
body.reduced-effects .pokemon-play-card-side,body.reduced-effects .item-play-art,body.reduced-effects .trainer-deck .deck-stack i{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.trainer-deck.drawing .deck-stack:after{display:none}}
body.reduced-effects .trainer-deck.drawing .deck-stack:after{display:none}

/* Ataques: arte y movimiento propios de cada especie, con final de definitiva. */
.attack-scene{position:fixed;z-index:84;width:min(610px,calc(100vw - 22px));height:150px;overflow:hidden;border:2px solid var(--attack-light);border-radius:17px;background:radial-gradient(ellipse at 40% 80%,var(--attack-color),transparent 57%),linear-gradient(110deg,#07101be8,#1a2037eb 54%,#070b14ed);box-shadow:0 15px 45px #000d,0 0 22px var(--attack-color);pointer-events:none;transform:translate(-50%,-50%);isolation:isolate;animation:attack-scene-enter .92s ease-out both}
.attack-scene:before{content:'';position:absolute;inset:-30%;background:repeating-conic-gradient(from 0deg at 35% 65%,transparent 0deg 16deg,var(--attack-color) 19deg 23deg,transparent 27deg 42deg);opacity:.45;filter:blur(9px);animation:attack-scene-energy .92s linear both}
.attack-scene-wave{position:absolute;z-index:1;left:33%;top:65%;width:220px;height:220px;border:8px solid var(--attack-light);border-radius:50%;box-shadow:0 0 25px var(--attack-color),inset 0 0 20px var(--attack-color);transform:translate(-50%,-50%) scaleY(.38);animation:attack-scene-wave .92s ease-out both}
.attack-scene-creature{position:absolute;z-index:3;left:26%;bottom:-8%;width:43%;height:115%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 8px 6px #000d) drop-shadow(0 0 10px var(--attack-light));animation:attack-scene-creature .92s ease-out both}
.attack-scene-copy{position:absolute;z-index:4;left:48%;right:5%;top:50%;display:grid;gap:4px;color:#fff9e9;text-shadow:0 2px 7px #000,0 0 9px #000;transform:translateY(-50%)}.attack-scene-copy small{color:var(--attack-light);font-size:9px;font-weight:1000;letter-spacing:.17em}.attack-scene-copy strong{font-size:clamp(18px,3vw,30px);line-height:1.05;overflow-wrap:anywhere}.attack-scene-copy em{font-size:11px;font-style:normal;font-weight:900}
.attack-scene-marks{position:absolute;z-index:2;inset:0}.attack-scene-marks i{position:absolute;left:34%;top:60%;width:6px;height:17px;border-radius:50%;background:var(--attack-light);box-shadow:0 0 12px 4px var(--attack-color);animation:attack-scene-mark .9s var(--mark-delay) ease-out both}
.attack-scene.signature-1 .attack-scene-wave{border-style:dashed;rotate:25deg}.attack-scene.signature-1 .attack-scene-creature{animation-name:attack-creature-dash}
.attack-scene.signature-2 .attack-scene-wave{border-radius:25%;rotate:45deg}.attack-scene.signature-2 .attack-scene-creature{animation-name:attack-creature-spin}
.attack-scene.signature-3 .attack-scene-wave{border-width:14px;scale:1.15}.attack-scene.signature-3 .attack-scene-creature{animation-name:attack-creature-slam}
.attack-scene.signature-4 .attack-scene-wave{border-style:double;border-width:17px}.attack-scene.signature-4 .attack-scene-creature{animation-name:attack-creature-rise}
.attack-scene.type-fire:before{background:repeating-conic-gradient(from 0deg at 35% 110%,transparent 0deg 10deg,#ffbd6799 13deg 18deg,transparent 21deg 33deg)}
.attack-scene.type-water:before,.attack-scene.type-ice:before{background:repeating-radial-gradient(ellipse at 30% 110%,transparent 0 14px,#b5f5ff9c 17px 20px,transparent 24px 42px)}
.attack-scene.type-electric:before{background:repeating-linear-gradient(115deg,transparent 0 23px,#fff5a5a8 26px 30px,transparent 34px 51px)}
.attack-scene.type-grass:before,.attack-scene.type-bug:before{background:repeating-conic-gradient(from 0deg at 30% 110%,transparent 0deg 16deg,#d9ffad8c 20deg 25deg,transparent 28deg 40deg)}
.attack-scene.ultimate{z-index:87;width:min(870px,calc(100vw - 16px));height:clamp(220px,32vh,315px);border:3px solid #fff2c0;background:radial-gradient(ellipse at 37% 80%,var(--attack-color),transparent 57%),radial-gradient(ellipse at 50% 50%,#53304d,#080a16 75%);box-shadow:0 25px 75px #000f,0 0 60px var(--attack-color),inset 0 0 35px #ffdf8c;animation:attack-ultimate-enter 1.55s ease-out both}
.attack-scene.ultimate:after{content:'';position:absolute;z-index:4;inset:0;background:radial-gradient(circle at 36% 50%,#fff 0%,#fff3c3ad 10%,transparent 42%);mix-blend-mode:screen;animation:attack-ultimate-flash 1.55s ease-out both}
.attack-scene.ultimate .attack-scene-wave{left:35%;top:53%;width:350px;height:350px;border:15px double #fff2bc;box-shadow:0 0 35px 12px var(--attack-color),inset 0 0 40px #ffde92;animation-duration:1.55s}
.attack-scene.ultimate .attack-scene-creature{left:17%;width:42%;height:125%;animation-duration:1.55s;filter:drop-shadow(0 16px 7px #000e) drop-shadow(0 0 28px var(--attack-light))}
.attack-scene.ultimate .attack-scene-copy{left:52%}.attack-scene.ultimate .attack-scene-copy strong{font-size:clamp(26px,4vw,48px);color:#fff7d6;text-shadow:0 3px 10px #000,0 0 20px var(--attack-color)}.attack-scene.ultimate .attack-scene-copy small{color:#ffe7a8;font-size:11px}
.attack-scene.ultimate .attack-scene-marks i{left:35%;top:50%;height:25px;background:#fff5cf;box-shadow:0 0 18px 7px var(--attack-color);animation-duration:1.4s}
.attack-scene.ultimate-blast:before{background:repeating-conic-gradient(from 0deg at 35% 100%,transparent 0deg 7deg,#fff0a1b8 10deg 15deg,transparent 18deg 27deg);filter:blur(7px)}
.attack-scene.ultimate-wave:before,.attack-scene.ultimate-renew:before{background:repeating-radial-gradient(ellipse at 35% 90%,transparent 0 22px,var(--attack-light) 26px 31px,transparent 36px 62px);filter:blur(5px)}
.attack-scene.ultimate-pierce .attack-scene-wave,.attack-scene.ultimate-stun .attack-scene-wave{border-radius:22%;rotate:45deg;box-shadow:0 0 36px 14px var(--attack-color)}
.attack-scene.ultimate-curse:before,.attack-scene.ultimate-poison:before,.attack-scene.ultimate-drain:before{background:repeating-radial-gradient(circle at 35% 55%,transparent 0 15px,var(--attack-color) 18px 23px,transparent 27px 49px);filter:blur(8px)}
.attack-scene.ultimate-guard .attack-scene-wave,.attack-scene.ultimate-focus .attack-scene-wave{border-style:double;border-width:22px}
.attack-projectile{animation-fill-mode:both!important}
@keyframes attack-flight{from{opacity:1;transform:translate(0,0) scale(.8)}to{opacity:0;transform:translate(var(--travel-x),var(--travel-y)) scale(1.5)}}
.attack-projectile.signature-1{border-radius:20%;rotate:25deg}.attack-projectile.signature-2{border-radius:0;rotate:45deg}.attack-projectile.signature-3{box-shadow:0 0 17px 9px currentColor,0 0 32px var(--attack-color)}.attack-projectile.signature-4{border-style:dashed}
@keyframes attack-scene-enter{0%{opacity:0;scale:.6;clip-path:inset(0 50% round 16px)}18%,77%{opacity:1;scale:1;clip-path:inset(0 0 round 16px)}100%{opacity:0;scale:1.07;clip-path:inset(0 0 round 16px)}}
@keyframes attack-scene-energy{from{transform:rotate(-25deg) scale(.7)}to{transform:rotate(25deg) scale(1.3)}}
@keyframes attack-scene-wave{0%{opacity:0;scale:.3}28%,70%{opacity:.9;scale:1}100%{opacity:0;scale:1.5}}
@keyframes attack-scene-creature{0%{opacity:0;transform:translate(calc(0px - var(--species-dash)),var(--species-rise)) scale(.5)}32%,75%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(30px,-20px) scale(1.12)}}
@keyframes attack-creature-dash{0%{opacity:0;transform:translate(calc(0px - var(--species-dash)),0) skewX(-20deg)}30%,75%{opacity:1;transform:translate(0,0) skewX(0)}100%{opacity:0;transform:translate(var(--species-dash),0) skewX(12deg)}}
@keyframes attack-creature-spin{0%{opacity:0;transform:translateY(var(--species-rise)) rotate(calc(0deg - var(--species-tilt))) scale(.6)}30%,75%{opacity:1;transform:translateY(0) rotate(0) scale(1)}100%{opacity:0;transform:translateY(-25px) rotate(var(--species-tilt)) scale(1.1)}}
@keyframes attack-creature-slam{0%{opacity:0;transform:translateY(calc(0px - var(--species-rise))) scale(1.3)}35%{opacity:1;transform:translateY(18px) scale(.92)}75%{transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(15px) scale(1.1)}}
@keyframes attack-creature-rise{0%{opacity:0;transform:translateY(var(--species-rise)) scale(.6)}30%,75%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(calc(0px - var(--species-rise))) scale(1.1)}}
@keyframes attack-scene-mark{0%{opacity:0;transform:rotate(var(--mark-angle)) translateY(0) scale(.4)}25%{opacity:1}100%{opacity:0;transform:rotate(var(--mark-angle)) translateY(calc(0px - var(--species-radius))) scale(.7)}}
@keyframes attack-ultimate-enter{0%{opacity:0;scale:.3;filter:brightness(4)}20%{opacity:1;scale:1.08;filter:brightness(1.5)}32%,80%{opacity:1;scale:1;filter:brightness(1)}100%{opacity:0;scale:1.08}}
@keyframes attack-ultimate-flash{0%,8%{opacity:0}18%{opacity:1}34%{opacity:0}55%{opacity:.4}68%,100%{opacity:0}}
@media(max-width:520px){.attack-scene{height:135px}.attack-scene.ultimate{height:210px}.attack-scene-copy strong{font-size:18px}.attack-scene.ultimate .attack-scene-copy strong{font-size:24px}.attack-scene.ultimate .attack-scene-wave{width:230px;height:230px}.attack-scene.ultimate .attack-scene-creature{left:12%;width:48%}}
.attack-scene.still,.attack-scene.still *,.attack-scene.still:before,.attack-scene.still:after{animation:none!important}.attack-scene.still{opacity:1}
@media(prefers-reduced-motion:reduce){.attack-scene,.attack-scene *,.attack-scene:before,.attack-scene:after{animation:none!important}}

/* One illustrated Kanto booster stack and a larger, readable reveal stage. */
.pack-inventory{grid-template-columns:repeat(auto-fill,minmax(225px,1fr))}
.pack-tile{width:min(100%,270px);min-height:355px;justify-self:start;gap:5px;padding:10px 12px 18px;overflow:visible}
.pack-tile-visual{position:relative;display:block;width:175px;height:270px;filter:drop-shadow(0 14px 13px #000a)}
.pack-tile-visual img{display:block;width:100%;height:100%;object-fit:fill}
.pack-art-title{position:absolute;left:50%;top:75%;transform:translate(-50%,-50%);font:900 clamp(20px,2vw,34px) Georgia,serif;letter-spacing:.12em;color:#fff0bd;text-shadow:0 2px 3px #000,0 0 14px #ffd782;white-space:nowrap;pointer-events:none}
.pack-tile .pack-art-title{font-size:24px}
.pack-tile .pack-art-title{top:70%}
.pack-stack-count{position:absolute;z-index:3;right:-12px;top:-12px;min-width:55px;padding:7px 10px;border:2px solid #ffe2a3;border-radius:22px;background:#112b46;color:#fff0bb;font:900 20px Georgia,serif;box-shadow:0 5px 16px #000b,0 0 18px #f4bf5f8c}
.pack-tile small{color:#ffe6aa}.pack-tile strong{font-size:19px}
#pack-modal .pack-opening{width:min(96vw,1450px);max-height:calc(100dvh - 28px);padding:clamp(18px,2.2vw,38px)}
#pack-modal .pack-opening-header h2{font-size:clamp(30px,3.4vw,54px)}
#pack-modal .pack-opening .pack-results{gap:clamp(10px,1.2vw,20px);margin:28px 0 24px}
#pack-modal .pack-opening .pack-card-slot{gap:11px}
#pack-modal .pack-opening .pack-card-status{min-height:30px;padding:8px 6px;font-size:clamp(10px,.8vw,13px)}
#pack-modal .pack-sealed{width:min(290px,56vw);aspect-ratio:2/3;border:0;background:none;box-shadow:none;overflow:visible}
#pack-modal .pack-sealed:before{display:none}
#pack-modal .pack-sealed img{width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 20px 23px #000a)}
#pack-modal .pack-sealed .pack-art-title{font-size:36px}
#pack-modal .pack-sealed .pack-art-title{top:70%}
#pack-modal .pack-sealed b{position:absolute;left:50%;bottom:12%;transform:translateX(-50%);width:max-content;font:800 12px sans-serif;letter-spacing:.12em;color:#f9db95;text-shadow:0 2px 3px #000,0 0 9px #000}
/* The flash lives on the card that flips, so it follows that card at any screen size. */
#pack-modal .pack-burst{display:none}
#pack-modal .pack-card-slot.latest:before,#pack-modal .pack-card-slot.latest:after{content:'';position:absolute;z-index:8;left:50%;top:43%;width:95%;aspect-ratio:1;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) scale(.08)}
#pack-modal .pack-card-slot.latest:before{background:repeating-conic-gradient(from 4deg,#ffffffd6 0 2deg,transparent 3deg 17deg),radial-gradient(circle,var(--reveal-halo,#fff4d0),transparent 58%);mix-blend-mode:screen;animation:pack-rays .95s ease-out forwards}
#pack-modal .pack-card-slot.latest:after{border:3px solid var(--reveal-halo,#fff2bb);box-shadow:0 0 38px var(--reveal-halo,#ffda8b),inset 0 0 35px var(--reveal-halo,#ffda8b);animation:pack-ring .9s ease-out forwards}
@media(max-width:820px){#pack-modal .pack-opening .pack-results{grid-template-columns:repeat(5,185px);gap:14px;overflow-x:auto;overflow-y:hidden;padding:10px 7px 20px}#pack-modal .pack-opening{width:min(96vw,700px)}}
@media(max-width:600px){.pack-inventory{grid-template-columns:1fr;justify-items:center}.pack-tile{justify-self:center}#pack-modal .pack-opening{padding:16px}#pack-modal .pack-opening .pack-results{grid-template-columns:repeat(5,170px)}}
body.reduced-effects #pack-modal .pack-card-slot.latest:before,body.reduced-effects #pack-modal .pack-card-slot.latest:after{animation:none;display:none}

/* Shared card mold: all collectible and pack cards reserve the same regions. */
.collection-card .collection-face{display:grid;grid-template-areas:'head' 'identity' 'art' 'evolution' 'move' 'description' 'stats';grid-template-columns:minmax(0,1fr);grid-template-rows:7% 4% 28% 4% 7% minmax(0,1fr) 6%;gap:2px;height:100%;min-height:0;padding:5px;overflow:hidden;align-content:stretch}
.collection-card .card-top{grid-area:head;height:100%;min-height:0}
.collection-card .card-identity{grid-area:identity;height:100%;min-height:0}
.collection-card .card-art{grid-area:art;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;align-self:stretch}
.collection-card .card-evolution{grid-area:evolution;height:100%;min-height:0;line-height:1.2}
.collection-card .card-move{grid-area:move;height:100%;min-height:0}
.collection-card .card-description{grid-area:description;height:100%;min-height:0;max-height:none;overflow:hidden}
.collection-card .card-stats{grid-area:stats;height:100%;min-height:0;margin:0;padding-top:0;align-items:stretch}
.collection-card .card-stats span{height:100%;min-height:0}
.pack-opening .pack-reveal-card .collection-face{grid-template-rows:7% 4% 28% 4% 7% minmax(0,1fr) 6%}

/* Reveals reuse the exact full-card markup shown in the card viewer. */
#pack-modal .pack-card-slot{align-content:start}
#pack-modal .pack-card-back,#pack-modal .pack-reveal-card{display:block;width:100%;height:auto;aspect-ratio:.715;margin:0;padding:0;border:0;background:none;box-shadow:none;overflow:visible}
#pack-modal .pack-card-back img{display:block;width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 12px 16px #0009)}
#pack-modal .pack-reveal-card{cursor:zoom-in}
#pack-modal .pack-reveal-card .inspect-card{width:100%;height:100%;max-height:none;aspect-ratio:auto;grid-template-rows:7% 5% 42% 4% 7% minmax(0,1fr) 8%;gap:2px;padding:6px;border-width:5px;border-radius:15px;box-shadow:inset 0 0 0 1px #fff5d3,inset 0 0 0 3px #292337,0 12px 20px #000b}
#pack-modal .pack-reveal-card .inspect-card.trainer-card{grid-template-rows:7% 5% 46% 7% minmax(0,1fr) 8%}
#pack-modal .pack-reveal-card .inspect-card-head{min-height:0;gap:3px;padding:0 1px 2px}
#pack-modal .pack-reveal-card .inspect-stage-badge{max-width:49px;padding:2px;font-size:6px}
#pack-modal .pack-reveal-card .inspect-card-name{font-size:clamp(11px,1.05vw,17px)}
#pack-modal .pack-reveal-card .inspect-card-hp{padding:2px 4px;font-size:7px}
#pack-modal .pack-reveal-card .inspect-card-meta{min-height:0;font-size:7px}
#pack-modal .pack-reveal-card .inspect-top-cost{padding:2px 4px;font-size:7px}
#pack-modal .pack-reveal-card .inspect-rarity{transform:scale(.7)}
#pack-modal .pack-reveal-card .inspect-card-art{height:100%;min-height:0;aspect-ratio:auto;border-width:2px;border-radius:5px}
#pack-modal .pack-reveal-card .inspect-card-art img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
#pack-modal .pack-reveal-card .inspect-card-art.item-art img{width:72%;height:72%;inset:14%}
#pack-modal .pack-reveal-card .inspect-evolution{min-height:0;font-size:6px;overflow:hidden}
#pack-modal .pack-reveal-card .inspect-evolution span{padding:1px 2px;font-size:5px}
#pack-modal .pack-reveal-card .inspect-attack{min-height:0;padding:2px 4px;border-radius:4px}
#pack-modal .pack-reveal-card .inspect-attack strong{font-size:10px}
#pack-modal .pack-reveal-card .inspect-attack b{font-size:10px}
#pack-modal .pack-reveal-card .inspect-ability{min-height:0;padding:4px 5px;overflow:auto}
#pack-modal .pack-reveal-card .inspect-ability small{margin:0 0 2px;font-size:6px}
#pack-modal .pack-reveal-card .inspect-ability p{font-size:7px;line-height:1.25}
#pack-modal .pack-reveal-card .inspect-ability .inspect-trait{font-size:6px}
#pack-modal .pack-reveal-card .inspect-footer{min-height:0;gap:2px;padding-top:2px}
#pack-modal .pack-reveal-card .inspect-footer div{gap:3px;font-size:6px}
#pack-modal .pack-reveal-card .inspect-footer small{font-size:5px}
#pack-modal .pack-card-slot.latest .pack-reveal-card{box-shadow:none;animation:pack-card-entrance .72s cubic-bezier(.17,.86,.2,1.15) both}
#pack-modal .pack-card-slot.latest .pack-reveal-card .inspect-card{box-shadow:inset 0 0 0 1px #fff8dc,0 13px 27px #000c,0 0 30px var(--reveal-halo,#d5e2eb)}
#pack-modal .pack-close{display:block;margin:11px auto 0}
body.reduced-effects #pack-modal .pack-card-slot.latest .pack-reveal-card{animation:none}

/* A centered faceted gem replaces written rarity labels on every card. */
.card-rarity-seal{left:50%;right:auto;top:4px;transform:translateX(-50%);width:26px;height:26px;border:0;background:#091527b8;box-shadow:0 2px 8px #000b,0 0 12px var(--rarity-glow);border-radius:50%}
.rarity-legendary .card-rarity-seal{left:50%;right:auto;width:29px;height:29px;border:0;transform:translateX(-50%)}
.rarity-epic .card-rarity-seal{border-radius:50%}
.rarity-gem{display:block;width:14px;height:14px;transform:rotate(45deg);border:1px solid var(--rarity-light);border-radius:3px;background:linear-gradient(135deg,#ffffffed 0 14%,var(--rarity-light) 15% 28%,var(--rarity-edge) 29% 58%,var(--rarity-deep) 59% 100%);box-shadow:inset -2px -2px 3px #0007,0 0 9px var(--rarity-edge)}
.rarity-gem:after{content:'';display:block;width:55%;height:55%;margin:2px;border-top:1px solid #fff9;border-left:1px solid #fff9;transform:rotate(-8deg)}
.rarity-legendary .rarity-gem{width:17px;height:17px;box-shadow:inset -2px -2px 3px #845215,0 0 14px #ffe394}
.inspect-rarity{display:grid;place-items:center;min-width:32px;min-height:28px;padding:3px 8px}.inspect-rarity .rarity-gem{width:17px;height:17px}
@media(max-width:690px){.card-rarity-seal{left:50%;right:auto;top:2px;width:20px;height:20px}.rarity-legendary .card-rarity-seal{left:50%;right:auto;width:23px;height:23px}.card-rarity-seal .rarity-gem{width:11px;height:11px}.inspect-rarity{min-width:26px;min-height:24px}.inspect-rarity .rarity-gem{width:13px;height:13px}}

/* Kanto keeps the original faceted rarity jewel. */
.rarity-gem.expansion-kanto{display:block}
#pack-modal .pack-card-back{position:relative}
#pack-modal .pack-card-back .pack-back-art{display:block;width:100%;height:100%;object-fit:fill}
#pack-modal .pack-card-back .pack-back-gem{position:absolute;left:50%;top:50%;width:54px;height:54px;transform:translate(-50%,-50%) rotate(45deg);--rarity-light:#fff2c6;--rarity-edge:#ffcf63;--rarity-deep:#65401d;box-shadow:inset -5px -5px 9px #70431d,0 0 0 5px #142b4b,0 0 18px #ffd66b,0 0 35px #ffd66b8a}
#pack-modal .pack-card-back .pack-back-gem:after{width:55%;height:55%;margin:8px;border-width:3px}

/* The booster stage keeps one size throughout opening and scales whole cards into it. */
#pack-modal .pack-opening{width:min(98vw,1700px);height:min(94dvh,960px);max-height:none;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:125px minmax(0,1fr) 52px 42px;gap:8px;padding:clamp(16px,2vw,32px);overflow:hidden}
#pack-modal .pack-opening-header{grid-area:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0}
#pack-modal .pack-opening-header h2{margin:4px 0;font-size:clamp(28px,3vw,52px);line-height:1.05}
#pack-modal .pack-opening-header p{margin:5px 0;line-height:1.25}
#pack-modal .pack-sealed{grid-area:2/1;align-self:center;justify-self:center;width:auto;height:min(100%,420px);max-height:100%;aspect-ratio:2/3;margin:0}
#pack-modal .pack-opening .pack-results{grid-area:2/1;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;align-content:center;gap:clamp(8px,1vw,18px);width:100%;height:100%;min-height:0;margin:0;padding:6px;overflow:visible}
#pack-modal .pack-card-slot{width:100%;max-width:max(105px,min(100%,calc(67dvh - 260px)));justify-self:center;min-height:0}
#pack-modal .pack-card-back,#pack-modal .pack-reveal-card{aspect-ratio:.715;min-height:0}
#pack-modal .pack-reveal{grid-area:3/1;align-self:center;justify-self:center;margin:0;min-height:43px}
#pack-modal .pack-reveal[hidden]{display:block;visibility:hidden;pointer-events:none}
#pack-modal .pack-close{grid-area:4/1;align-self:center;justify-self:center;margin:0}
@media(max-width:1100px){#pack-modal .pack-opening .pack-results{--pack-mobile-card-width:min(185px,max(105px,calc(67dvh - 260px)));grid-template-columns:repeat(5,var(--pack-mobile-card-width));justify-content:start;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;padding:6px 8px 16px}#pack-modal .pack-card-slot{max-width:100%;scroll-snap-align:center}}
@media(max-width:600px){#pack-modal .pack-opening{grid-template-rows:105px minmax(0,1fr) 48px 40px;gap:5px;padding:12px}#pack-modal .pack-opening-header h2{font-size:clamp(25px,7vw,36px)}#pack-modal .pack-opening-header p{font-size:11px}#pack-modal .pack-opening .pack-results{--pack-mobile-card-width:min(170px,max(105px,calc(67dvh - 200px)))}#pack-modal .pack-opening .pack-card-status{font-size:9px}}
@media(max-height:560px){#pack-modal .pack-opening{grid-template-rows:82px minmax(0,1fr) 42px 35px;gap:3px;padding:9px}#pack-modal .pack-opening-header h2{font-size:clamp(24px,4vh,34px)}#pack-modal .pack-opening-header p{font-size:10px}#pack-modal .pack-card-slot{max-width:max(90px,min(100%,calc(67dvh - 180px)))}#pack-modal .pack-opening .pack-results{--pack-mobile-card-width:min(150px,max(90px,calc(67dvh - 180px)))}}

/* Every line of the card footer stays inside the printed frame. */
#pack-modal .pack-reveal-card .inspect-card{grid-template-rows:7% 5% 38% 4% 7% minmax(0,1fr) 12%}
#pack-modal .pack-reveal-card .inspect-card.trainer-card{grid-template-rows:7% 5% 42% 7% minmax(0,1fr) 12%}
#pack-modal .pack-reveal-card .inspect-footer{height:100%;min-height:0;overflow:hidden;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:3px;padding-top:3px}
#pack-modal .pack-reveal-card .trainer-card .inspect-footer{grid-template-columns:repeat(2,minmax(0,1fr))}
#pack-modal .pack-reveal-card .inspect-footer div{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;gap:2px;padding:2px 3px;text-align:center;overflow:hidden}
#pack-modal .pack-reveal-card .inspect-footer small{flex:none;font-size:6px;line-height:1}
#pack-modal .pack-reveal-card .inspect-footer b{display:-webkit-box;max-width:100%;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:7px;line-height:1.13;text-align:center;white-space:normal;overflow-wrap:anywhere}

/* One printed card component in collection, packs and hand. */
.inspect-card-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr) minmax(0,1fr);align-items:center}
.inspect-card-head .inspect-stage-badge{justify-self:start}
.inspect-card-head .inspect-card-name{justify-self:center;text-align:center}
.inspect-card-head .inspect-card-hp{justify-self:end}
.inspect-card-meta{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center}
.inspect-card-meta .inspect-rarity{grid-column:2;justify-self:center;margin:0}
.inspect-card-meta .inspect-top-cost{grid-column:3;justify-self:end}
.collection-card.card-print,.hand-card.card-print{display:block;padding:0;border:0;background:none;box-shadow:none;overflow:visible;aspect-ratio:.715}
.collection-entry .collection-card.card-print{aspect-ratio:.715}
.card-print .inspect-card{display:grid;width:100%;height:100%;max-height:none;aspect-ratio:auto;grid-template-rows:7% 5% 38% 4% 7% minmax(0,1fr) 12%;gap:clamp(1px,.7cqw,3px);padding:clamp(3px,2.2cqw,7px);border-width:clamp(3px,1.7cqw,6px);border-radius:clamp(8px,5cqw,17px);overflow:hidden}
.card-print .inspect-card.trainer-card{grid-template-rows:7% 5% 42% 7% minmax(0,1fr) 12%}
.card-print .inspect-card-head{min-height:0;gap:2px;padding:0 1px 2px}
.card-print .inspect-stage-badge{max-width:100%;padding:1px 2px;font-size:clamp(4px,2.8cqw,8px)}
.card-print .inspect-card-name{font-size:clamp(7px,5cqw,18px)}
.card-print .inspect-card-hp{padding:2px 3px;font-size:clamp(4px,2.7cqw,9px)}
.card-print .inspect-card-meta{min-height:0;gap:2px;font-size:clamp(4px,2.8cqw,8px)}
.card-print .inspect-card-meta .inspect-top-cost{padding:2px 3px;font-size:clamp(4px,2.7cqw,9px)}
.card-print .inspect-rarity{min-width:0;min-height:0;padding:1px 3px;transform:none}
.card-print .inspect-rarity .rarity-gem{width:clamp(7px,6cqw,17px);height:clamp(7px,6cqw,17px)}
.card-print .inspect-card-art{height:100%;min-height:0;aspect-ratio:auto;border-width:2px;border-radius:5px}
.card-print .inspect-card-art img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.card-print .inspect-card-art.item-art img{width:72%;height:72%;inset:14%}
.card-print .inspect-evolution{min-height:0;gap:2px;font-size:clamp(4px,2.4cqw,7px);overflow:hidden}
.card-print .inspect-evolution span{padding:1px 2px;font-size:clamp(4px,1.8cqw,6px)}
.card-print .inspect-attack{min-height:0;padding:2px 4px;border-radius:4px}
.card-print .inspect-attack strong,.card-print .inspect-attack b{font-size:clamp(6px,3.8cqw,12px)}
.card-print .inspect-ability{min-height:0;padding:3px 4px;overflow:auto}
.card-print .inspect-ability small{margin:0 0 2px;font-size:clamp(4px,2.1cqw,7px)}
.card-print .inspect-ability p{font-size:clamp(4px,2.5cqw,8px);line-height:1.25}
.card-print .inspect-ability .inspect-trait{font-size:clamp(4px,2cqw,7px)}
.card-print .inspect-footer{height:100%;min-height:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding-top:2px;overflow:hidden}
.card-print .trainer-card .inspect-footer{grid-template-columns:repeat(2,minmax(0,1fr))}
.card-print .inspect-footer div{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;gap:1px;padding:1px 2px;overflow:hidden;text-align:center}
.card-print .inspect-footer small{font-size:clamp(3px,1.8cqw,6px);line-height:1}
.card-print .inspect-footer b{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:clamp(4px,2.4cqw,8px);line-height:1.12;text-align:center;white-space:normal;overflow-wrap:anywhere}
.collection-card.card-print,.hand-card.card-print,.pack-reveal-card.card-print{container-type:inline-size}
.app.battle-table .board>.hand-area .hand-card.card-print{display:block;flex:0 0 118px;width:118px;height:165px;min-height:0;padding:0;border:0;border-radius:10px;background:none;box-shadow:0 11px 18px #000b}
.app.battle-table .board>.hand-area .hand-card.card-print .inspect-card{border-radius:10px}
#pack-modal .pack-reveal-card.card-print .inspect-rarity{transform:none}

/* Full-size collection cards and a dedicated printed attack for final evolutions. */
.menu-screen{max-width:1900px;width:100%}
.collection{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:20px}
.inspect-card.has-ultimate{grid-template-rows:7% 5% 34% 4% 7% 13% minmax(0,1fr) 12%;gap:4px}
.inspect-card.has-ultimate .inspect-card-art{height:100%;min-height:0;aspect-ratio:auto;align-self:stretch}
.inspect-card.has-ultimate .inspect-card-art img{position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.inspect-ultimate{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden;border:1px solid #f3cf82;border-left-width:3px;border-radius:8px;background:linear-gradient(180deg,#31516c,#27435f);color:#f8f5ed}
.inspect-ultimate-head{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:5px 8px;border-bottom:1px solid #f3cf8277;background:#081629c9;box-shadow:inset 0 1px #ffffff25}
.inspect-ultimate-head strong{min-width:0;overflow:hidden;color:#fff1c8;font:900 15px/1.1 Georgia,serif;text-overflow:ellipsis;white-space:nowrap}
.inspect-ultimate-head b{flex:none;color:#ffdd90;font-size:14px;white-space:nowrap}
.inspect-ultimate p{min-height:0;margin:0;padding:4px 8px;font-size:10px;line-height:1.2;overflow:auto}
.inspect-ultimate p small{color:#ffdb91;font-size:8px;font-weight:1000;letter-spacing:.04em}
.inspect-card.has-ultimate .inspect-ability{padding:4px 7px;overflow:hidden}
.inspect-card.has-ultimate .inspect-ability small{margin-bottom:2px;font-size:7px}
.inspect-card.has-ultimate .inspect-ability p{font-size:9px;line-height:1.2}
.inspect-card.has-ultimate .inspect-ability .inspect-trait{margin-top:3px;padding-top:3px;font-size:8px;line-height:1.17}
.card-print .inspect-card.has-ultimate,#pack-modal .pack-reveal-card .inspect-card.has-ultimate{grid-template-rows:7% 5% 34% 4% 7% 13% minmax(0,1fr) 12%;gap:2px}
.card-print .inspect-ultimate{border-left-width:2px}
.card-print .inspect-ultimate-head{gap:2px;padding:2px 4px;border-radius:4px}
.card-print .inspect-ultimate-head strong{font-size:clamp(6px,3.8cqw,12px)}
.card-print .inspect-ultimate-head b{font-size:clamp(5px,3cqw,10px)}
.card-print .inspect-ultimate p{padding:1px 4px;font-size:clamp(4px,2.1cqw,7px);line-height:1.2}
.card-print .inspect-ultimate p small{font-size:clamp(4px,2cqw,7px)}
#pack-modal .pack-reveal-card .inspect-ultimate-head strong{font-size:10px}
#pack-modal .pack-reveal-card .inspect-ultimate-head b{font-size:8px}
#pack-modal .pack-reveal-card .inspect-ultimate p,#pack-modal .pack-reveal-card .inspect-ultimate p small{font-size:6px}
@media(max-width:680px){.collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
@media(max-width:540px){.collection{grid-template-columns:minmax(0,350px);justify-content:center}}

/* Every full card is the same pre-rendered print, scaled as one image. */
.printed-card-image{display:block;width:100%;height:100%;aspect-ratio:440/615;object-fit:fill;clip-path:inset(0 round 5% / 3.6%);user-select:none;-webkit-user-drag:none}
.card-inspector>.printed-card-image{width:min(100%,440px);height:auto;max-height:calc(100dvh - 94px);object-fit:contain;filter:drop-shadow(0 20px 35px #000b)}
.hover-card-preview .card-inspector>.printed-card-image{width:100%;max-height:calc(100dvh - 105px)}
.collection-card.card-print>.printed-card-image,.hand-card.card-print>.printed-card-image,.pack-reveal-card.card-print>.printed-card-image{border-radius:inherit}

/* Live foil and depth belong to the displayed print, not the HTML source used to render it. */
.card-inspector{position:relative;isolation:isolate}
.card-modal .card-inspector>.printed-card-image{position:relative;z-index:1;transform:perspective(1100px) rotateX(var(--rotate-x,0deg)) rotateY(var(--rotate-y,0deg));transform-style:preserve-3d;transition:transform .16s ease-out;filter:none;border-radius:24px;box-shadow:0 18px 38px #0008,0 0 22px #e7d39b30}
.card-modal .card-inspector:after{content:"";position:absolute;z-index:2;left:50%;top:0;width:min(100%,440px);aspect-ratio:440/615;max-height:calc(100dvh - 94px);border-radius:24px;pointer-events:none;opacity:.38;background:radial-gradient(ellipse at var(--shine-x,50%) var(--shine-y,35%),#fff9df96 0%,#fff9df38 15%,transparent 46%),linear-gradient(115deg,transparent 35%,#ffffff2d 49%,transparent 60%);mix-blend-mode:screen;transform:translateX(-50%) perspective(1100px) rotateX(var(--rotate-x,0deg)) rotateY(var(--rotate-y,0deg));transition:opacity .18s,transform .16s ease-out}
.card-modal .card-inspector:hover:after{opacity:.84}
.hover-card-preview .card-inspector:after{display:none}
.collection-card.card-print{isolation:isolate}
.collection-card.card-print:before{display:none}
.collection-card.card-print:after{inset:0;border-radius:clamp(8px,5cqw,17px);background:radial-gradient(ellipse at var(--shine-x,50%) var(--shine-y,35%),#fff8d47a 0%,#fff5c928 18%,transparent 48%),linear-gradient(115deg,transparent 36%,#ffffff29 49%,transparent 62%);mix-blend-mode:screen}
.collection-card.card-print:hover:after{opacity:.65}
#collection-view .collection{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:12px}
/* Trainer dossiers reserve a separate rail for the mode's synergy status. */
@media(min-width:761px){
  .app.battle-table .board>.enemy-hero,.app.battle-table .board>.player-row .hero{align-self:start;justify-self:stretch;display:grid;grid-template-columns:minmax(0,1fr) 62px;grid-template-rows:62px minmax(37px,auto) 78px;align-items:center;justify-items:center;gap:5px;width:100%;height:216px;min-height:0;padding:12px 7px 8px;border:1px solid #dbbe81a8;border-radius:15px;background:linear-gradient(160deg,#213a50f2,#0b1c2fe8 75%);box-shadow:inset 0 1px #fff5d749,0 12px 25px #0009;text-align:center}
  .app.battle-table .board>.enemy-hero{background:linear-gradient(200deg,#354050f2,#0b1c2fe8 75%)}
  .app.battle-table .board>.enemy-hero>.portrait,.app.battle-table .board>.player-row .hero>.avatar-button{grid-column:1/-1;grid-row:1;margin:0 auto}
  .app.battle-table .board>.enemy-hero>div:nth-child(2),.app.battle-table .board>.player-row .hero>div:nth-child(2){grid-column:1/-1;grid-row:2;min-width:0;align-self:center}
  .app.battle-table .board>.enemy-hero .hero-label,.app.battle-table .board>.player-row .hero .hero-label{font-size:11px;line-height:1.14;overflow-wrap:anywhere}
  .app.battle-table .board>.enemy-hero .sub{font-size:8px}
  .app.battle-table .board>.enemy-hero .health,.app.battle-table .board>.player-row .hero .health{grid-column:1;grid-row:3;justify-self:center;margin:0;padding:5px 6px;font-size:12px;white-space:nowrap}
  .app.battle-table .board>.enemy-hero .trainer-deck,.app.battle-table .board>.player-row .hero .trainer-deck{grid-column:2;grid-row:3;margin:0 auto}
  .app.battle-table .synergy-panel.player,.app.battle-table .synergy-panel.cpu{align-self:start;margin-top:230px;max-height:calc(100% - 230px);overflow:visible}
  .app.battle-table .synergy-panel:not([hidden]){padding:8px 6px;border:1px solid #8ea8b87d;border-radius:12px;background:#0b1e30e8;box-shadow:0 8px 20px #0008}
  .app.battle-table .synergy-heading{padding:0 2px 3px;text-align:left;font-size:8px;line-height:1.2}
  .app.battle-table .synergy-chip{min-height:30px;padding:3px 4px;gap:4px}
  .app.battle-table .synergy-icon{width:22px;height:22px;font-size:13px}
  .app.battle-table .synergy-copy b{font-size:9px}.app.battle-table .synergy-copy small{font-size:7px}
}
#collection-view .collection-entry .collection-controls{min-width:0;overflow:hidden}
#collection-view .collection-entry .collection-controls small{min-width:0}
#pack-modal .pack-reveal-card.card-print{position:relative;isolation:isolate;--rotate-x:0deg;--rotate-y:0deg;--shine-x:50%;--shine-y:35%}
#pack-modal .pack-reveal-card.card-print>.printed-card-image{position:relative;z-index:1;transform:perspective(850px) rotateX(var(--rotate-x)) rotateY(var(--rotate-y));transform-style:preserve-3d;transition:transform .16s ease-out;box-shadow:0 10px 22px #0008}
#pack-modal .pack-reveal-card.card-print:after{content:"";position:absolute;z-index:2;inset:0;border-radius:clamp(8px,5cqw,17px);pointer-events:none;opacity:.38;background:radial-gradient(ellipse at var(--shine-x) var(--shine-y),#fff9df93 0%,#fff9df32 17%,transparent 48%),linear-gradient(115deg,transparent 34%,#ffffff31 49%,transparent 61%);mix-blend-mode:screen;transform:perspective(850px) rotateX(var(--rotate-x)) rotateY(var(--rotate-y));transition:opacity .18s,transform .16s ease-out}
#pack-modal .pack-reveal-card.card-print:hover:after{opacity:.84}
@media(prefers-reduced-motion:reduce){.card-modal .card-inspector>.printed-card-image,.card-modal .card-inspector:after,#pack-modal .pack-reveal-card.card-print>.printed-card-image,#pack-modal .pack-reveal-card.card-print:after{transition:none}}

/* Shared full-art layout for Pokémon; trainer objects keep their framed art. */
.inspect-card.full-art,.card-print .inspect-card.full-art,#pack-modal .pack-reveal-card .inspect-card.full-art{grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 27% 5%;gap:4px;background:#111a2c}
.inspect-card.full-art.has-ultimate,.card-print .inspect-card.full-art.has-ultimate,#pack-modal .pack-reveal-card .inspect-card.full-art.has-ultimate{grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 13% 17% 5%}
.inspect-card>.inspect-card-head{position:relative;grid-template-columns:1fr minmax(0,1fr) 1fr}
.inspect-card>.inspect-card-head .inspect-top-cost{grid-column:1;justify-self:start;max-width:100%;padding:5px 9px;border:1px solid #f0c570;border-radius:18px;background:#2d261c;color:#ffe0a1;font-size:clamp(10px,2vw,13px);font-weight:950;white-space:nowrap}
.card-print .inspect-card>.inspect-card-head .inspect-top-cost{padding:2px 3px;font-size:clamp(4px,2.7cqw,9px)}
.inspect-card>.inspect-card-head .inspect-card-name{position:absolute;left:50%;max-width:calc(100% - 105px);transform:translateX(-50%)}
.inspect-card>.inspect-card-head .inspect-card-hp{grid-column:3;justify-self:end;padding:5px 9px;font-size:clamp(11px,2vw,14px)}
.inspect-card>.inspect-card-meta{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.inspect-card>.inspect-rarity{position:absolute;z-index:4;top:-5px;left:50%;width:27px;height:27px;min-width:0;min-height:0;margin:0;padding:1px;transform:translateX(-50%);border:3px solid var(--rarity-edge);border-radius:50%;background:radial-gradient(circle at 35% 25%,#ffffff8c,var(--rarity-deep) 48%,#101728 82%);box-shadow:inset 0 0 0 1px var(--rarity-light),0 0 0 2px #101728,0 4px 8px #0008,0 0 14px var(--rarity-glow)}
.inspect-card>.inspect-rarity .rarity-gem{width:13px;height:13px;box-shadow:inset -2px -2px 3px #0007,0 0 12px var(--rarity-light)}
.inspect-card>.inspect-rarity:before{content:"";position:absolute;z-index:-1;left:50%;top:65%;width:57px;height:39px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,var(--rarity-glow),transparent 70%);filter:blur(5px);pointer-events:none}
.inspect-card.rarity-common>.inspect-rarity{box-shadow:inset 0 0 0 1px var(--rarity-light),0 0 0 2px #101728,0 2px 8px #0008,0 0 9px var(--rarity-glow)}
.inspect-card.rarity-rare>.inspect-rarity{width:29px;height:29px;top:-6px;box-shadow:inset 0 0 0 1px #fff,0 0 0 2px #101728,0 0 11px 3px var(--rarity-glow),0 0 25px 4px var(--rarity-glow)}
.inspect-card.rarity-rare>.inspect-rarity .rarity-gem{width:14px;height:14px;box-shadow:inset -2px -2px 3px #0007,0 0 12px 3px var(--rarity-edge)}
.inspect-card.rarity-epic>.inspect-rarity{width:31px;height:31px;top:-7px;box-shadow:inset 0 0 0 1px #fff,0 0 0 2px #101728,0 0 13px 5px var(--rarity-glow),0 0 35px 7px var(--rarity-glow)}
.inspect-card.rarity-epic>.inspect-rarity .rarity-gem{width:16px;height:16px;box-shadow:inset -2px -2px 3px #0007,0 0 14px 4px var(--rarity-edge),0 0 25px var(--rarity-light)}
.inspect-card.rarity-legendary>.inspect-rarity{width:34px;height:34px;top:-8px;border-color:#fff2b7;box-shadow:inset 0 0 0 1px #fff,0 0 0 2px #70481f,0 0 15px 6px #ffe183,0 0 38px 10px var(--rarity-glow),0 0 65px 16px #ffd15b65}
.inspect-card.rarity-legendary>.inspect-rarity .rarity-gem{width:18px;height:18px;border-color:#fff7d2;background:linear-gradient(135deg,#fff 0 19%,#fff0a5 20% 30%,#ffcf45 31% 58%,#99531f 59% 100%);box-shadow:inset -2px -2px 3px #804919,0 0 18px 5px #ffe07b,0 0 30px 8px #ffd66a}
.inspect-card.rarity-epic>.inspect-rarity:after,.inspect-card.rarity-legendary>.inspect-rarity:after{content:"✦";position:absolute;left:100%;top:32%;color:var(--rarity-light);font:900 10px/1 Georgia,serif;text-shadow:0 0 8px #fff,0 0 17px var(--rarity-edge);pointer-events:none}
.inspect-card.rarity-legendary>.inspect-rarity:after{left:110%;top:49%;font-size:13px}
.inspect-card>.inspect-card-meta .inspect-stage-badge{grid-column:2;justify-self:end;max-width:100%;font-size:clamp(7px,1.8vw,9px)}
.card-print .inspect-card>.inspect-card-meta .inspect-stage-badge{padding:1px 2px;font-size:clamp(4px,2.8cqw,8px)}
.card-print .inspect-card>.inspect-rarity,#pack-modal .pack-reveal-card .inspect-card>.inspect-rarity{transform:translateX(-50%)}
.inspect-card.full-art>.inspect-card-head{grid-row:1;z-index:2}
.inspect-card.full-art>.inspect-card-meta{grid-row:2;z-index:2}
.inspect-card.full-art>.inspect-evolution{grid-row:4;z-index:2;color:#fff4e6;text-shadow:0 2px 5px #000}
.inspect-card.full-art>.inspect-attack{grid-row:5;z-index:2;background:#0715278c;backdrop-filter:blur(2px)}
.inspect-card.full-art>.inspect-ultimate{grid-row:6;z-index:2;background:linear-gradient(180deg,#31516c94,#27435f94);backdrop-filter:blur(2px)}
.inspect-card.full-art>.inspect-ability{grid-row:6;z-index:2;background:#15253a78;backdrop-filter:blur(2px)}
.inspect-card.full-art.has-ultimate>.inspect-ability{grid-row:7}
.inspect-card.full-art>.inspect-footer{grid-row:7;z-index:2;background:#0b17289c;border-radius:7px;backdrop-filter:blur(2px)}
.inspect-card.full-art.has-ultimate>.inspect-footer{grid-row:8}
.inspect-card.full-art>.inspect-footer,.card-print .inspect-card.full-art>.inspect-footer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;margin:0;justify-items:stretch;align-items:stretch;gap:0;padding:0}
.inspect-card.full-art>.inspect-footer div,.card-print .inspect-card.full-art>.inspect-footer div{display:flex;min-width:0;align-items:center;justify-content:center;gap:0;padding:0 2px;text-align:center}
.inspect-card.full-art>.inspect-footer b,.card-print .inspect-card.full-art>.inspect-footer b{text-align:center}
.inspect-card.full-art>.inspect-footer div+div{border-left:1px solid #ffffff14}
.inspect-card.full-art>.inspect-card-art{position:absolute;z-index:0;inset:0;width:100%;height:100%;min-height:0;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none;transform:none;background-position:center;background-size:cover}
.inspect-card.full-art>.inspect-card-art img{position:absolute;z-index:0;top:-7%;left:0;width:100%;height:76%;max-width:none;max-height:none;object-fit:contain;object-position:center top;filter:drop-shadow(0 10px 12px #0008)}
.inspect-card.full-art.art-charizard>.inspect-card-art img{top:-12%;left:-5%;width:110%;height:82%}
.inspect-card.full-art>.inspect-card-art:after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(180deg,#101a2bba 0%,transparent 22%,transparent 37%,#10122236 48%,#0d12278c 62%,#0b1125e8 80%,#0a1022 100%)}

/* Combat uses the exact same printed card as the collection. */
.app.battle-table .board .unit{display:block;width:auto;max-width:100%;height:100%;aspect-ratio:440/615;min-height:0;padding:0;border:0;border-radius:10px;background:transparent;box-shadow:0 9px 18px #0009;overflow:visible}
.app.battle-table .board .unit>.printed-card-image{width:100%;height:100%;border-radius:10px;object-fit:fill}
.app.battle-table .board .unit.sleeping{filter:saturate(.8)}
.app.battle-table .board .unit-current-hp{position:absolute;z-index:5;right:-9px;top:29px;display:flex;align-items:baseline;gap:3px;padding:4px 7px;border:2px solid #ffe2a0;border-radius:9px;background:#082638f2;color:#fff2cd;box-shadow:0 3px 10px #000d,0 0 12px #f7c96d77;font-size:clamp(13px,1.3vw,19px);font-weight:1000;line-height:1;white-space:nowrap}
.app.battle-table .board .unit-current-hp small{font-size:.58em;color:#ffe6ab}
.app.battle-table .board .unit-current-hp.low{border-color:#ff8f85;background:#4c1721f5;color:white;box-shadow:0 3px 10px #000d,0 0 15px #ff5c5c99}
.app.battle-table .board .unit.selected{transform:translate(10px,-13px) scale(1.06)}
.app.battle-table .slot-info{top:auto;right:3px;bottom:3px;z-index:8}
.inspect-type-icons{font-size:1.35em;line-height:1;letter-spacing:.16em}
.attack-selector{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);align-items:center;gap:16px;width:min(600px,calc(100% - 16px));padding:14px;animation:attack-panel-lift .25s cubic-bezier(.2,.8,.2,1)}
.attack-selector-card{width:100%;aspect-ratio:440/615;filter:drop-shadow(0 16px 20px #000b)}
.attack-selector-card .printed-card-image{border-radius:14px}
.attack-selector-details{min-width:0}.attack-selector-details>strong{display:block;margin:4px 0 12px;font:900 21px Georgia,serif}.attack-selector-details>small{display:block;margin-top:10px;color:#f5cc80;font-size:10px;font-weight:800}
.attack-selector-options button{padding:11px}.attack-selector-options b{font-size:13px}.attack-selector-options span{font-size:11px}
@keyframes attack-panel-lift{from{opacity:.35;transform:translate(-45px,34px) rotate(-5deg) scale(.8)}to{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
@media(max-width:760px){.attack-selector{position:fixed!important;left:8px!important;right:8px!important;top:50%!important;bottom:auto!important;transform:translateY(-50%);animation:none;grid-template-columns:minmax(0,42%) minmax(0,1fr);width:auto;max-height:calc(100dvh - 30px);overflow:auto;gap:9px;padding:8px}.attack-selector-details>strong{font-size:15px}.attack-selector-options button{padding:6px}.attack-selector-options b{font-size:10px}.attack-selector-options span{font-size:9px}.app.battle-table .board .unit-current-hp{right:-5px;top:24px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.attack-selector{animation:none}}
.hand-drag-ghost{position:fixed!important;z-index:100!important;left:0;top:0;width:145px!important;height:203px!important;margin:0!important;pointer-events:none!important;transform:translate(-50%,-50%) rotate(5deg) scale(1.05)!important;opacity:.95;box-shadow:0 20px 35px #000d,0 0 24px #ffe09a88!important}
.hand-drag-ghost .printed-card-image{width:100%;height:100%}
.app.battle-table .board>.hand-area .hand-card.card-print{touch-action:none}
.battle-log-status{margin:8px 0;color:#bfe7ca;font-size:12px;overflow-wrap:anywhere}

.inspect-card.full-art>.inspect-attack b{font-size:20px;line-height:1}
.inspect-card.full-art>.inspect-ultimate .inspect-ultimate-head b{font-size:19px;line-height:1}
.attack-selector{display:block;width:min(330px,calc(100% - 16px));padding:0;border:0;border-radius:18px;background:none;box-shadow:0 20px 45px #000e,0 0 30px #ffe8aa66;animation:card-lift-right .35s cubic-bezier(.18,.72,.18,1) both}
.attack-selector-card{width:100%;aspect-ratio:440/615;filter:none}
.attack-selector-card .printed-card-image{width:100%;height:100%;border-radius:18px}
.attack-selector .attack-hit{position:absolute;z-index:2;left:5%;width:90%;padding:0;border:0;border-radius:7px;background:transparent;box-shadow:none;cursor:pointer}
.attack-selector .attack-hit:hover,.attack-selector .attack-hit:focus-visible{background:#ffdc7a1c;box-shadow:inset 0 0 0 2px #ffe6a4,0 0 14px #ffdc7a77;outline:0}
.attack-selector .attack-hit-normal{top:59.5%;height:6%}
.attack-selector.has-ultimate .attack-hit-normal{top:55.8%;height:6%}
.attack-selector .attack-hit-ultimate{display:none;top:63.5%;height:11%}
.attack-selector.has-ultimate .attack-hit-ultimate{display:block}
.attack-selector.has-ultimate .attack-hit-ultimate:disabled{display:block;opacity:.35;cursor:default;background:#050b1a88}
.attack-selector-close{position:absolute;z-index:3;right:-11px;top:-11px;display:grid;place-items:center;width:33px;height:33px;border:2px solid #f9dca1;border-radius:50%;background:#102138;color:#fff0c9;font-size:22px;line-height:1;box-shadow:0 3px 10px #000a}
.attack-selector>small{position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);padding:3px 9px;border:1px solid #ebd3969e;border-radius:10px;background:#0d1d31e8;color:#fff1cd;white-space:nowrap;font-size:9px}
@keyframes card-lift-right{from{opacity:.8;transform:translate(var(--lift-x,-70px),var(--lift-y,70px)) rotate(-9deg) scale(.6)}to{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
@media(max-width:760px){.attack-selector{position:fixed!important;left:50%!important;right:auto!important;top:50%!important;bottom:auto!important;width:min(330px,76vw);max-height:calc(100dvh - 80px);overflow:visible;transform:translate(-50%,-50%);animation:none}.attack-selector-card{max-height:calc(100dvh - 80px);aspect-ratio:440/615}.attack-selector-card .printed-card-image{object-fit:contain}}
@media(prefers-reduced-motion:reduce){.attack-selector{animation:none}}

/* Keep printed battle cards at their real proportions on tall and 2K screens. */
@media(min-width:761px){
  .app.battle-table .board>.lane{max-width:min(1600px,calc(150dvh - 402px));align-items:center}
  .app.battle-table .board .slot{width:min(100%,clamp(105px,calc(30dvh - 90px),310px));height:auto;max-width:none;max-height:100%;aspect-ratio:440/615;justify-self:center;align-self:center}
  .app.battle-table .board .unit{width:100%;height:100%;aspect-ratio:440/615}
  .app.battle-table .board .unit>.printed-card-image{object-fit:contain}
}
@media(min-width:1200px) and (min-height:900px){
  .app.battle-table .board{grid-template-rows:17px minmax(155px,1fr) 17px minmax(155px,1fr) 42px clamp(184px,17dvh,230px)}
  .app.battle-table .board>.hand-area .hand{width:calc(100% - 410px);max-width:1400px}
  .app.battle-table .board>.hand-area .hand-card.card-print{--battle-hand-height:clamp(165px,calc(17dvh - 12px),210px);flex:0 0 auto;width:auto;height:var(--battle-hand-height);aspect-ratio:440/615}
}

/* The hover preview grows with the screen without stretching the printed card. */
@media(min-width:761px){
  .app.battle-table .hover-card-preview{top:50%;width:min(540px,27vw,calc(71dvh - 75px))}
  .app.battle-table .hover-card-preview .card-inspector>.printed-card-image{height:auto;max-height:calc(100dvh - 90px);aspect-ratio:440/615;object-fit:contain}
}
@media(min-width:761px) and (max-height:790px){
  .app.battle-table .hover-card-preview{width:min(440px,27vw,calc(71dvh - 75px))}
}

.unit-current-hp.hp-falling,.hero .health.hp-falling{animation:hp-fall .6s ease-out}
.unit-current-hp.hp-rising,.hero .health.hp-rising{animation:hp-rise .6s ease-out}
@keyframes hp-fall{25%{color:#fff;border-color:#ff827a;box-shadow:0 0 23px #ff5149c9;transform:scale(1.13)}100%{transform:scale(1)}}
@keyframes hp-rise{25%{color:#fff;border-color:#8bffc0;box-shadow:0 0 23px #58ed9dc9;transform:scale(1.13)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.unit-current-hp.hp-falling,.unit-current-hp.hp-rising,.hero .health.hp-falling,.hero .health.hp-rising{animation:none}}

.synergy-panel{position:relative;z-index:24;display:flex;flex-direction:column;align-items:stretch;gap:5px;min-width:0;pointer-events:none}
.synergy-heading{padding:2px 4px;color:#ffe4aa;font-size:9px;letter-spacing:.1em;text-align:center;text-shadow:0 2px 5px #000}
.synergy-empty{color:#bbcad4;font-size:10px;text-align:center}
.synergy-chip{position:relative;display:flex;align-items:center;gap:5px;width:100%;min-height:36px;padding:3px 5px;border:1px solid #b4c3ca83;border-radius:8px;background:#14283de8;color:#eef4ee;text-align:left;pointer-events:auto;box-shadow:0 3px 9px #0008}
.synergy-chip.inactive{opacity:.62}.synergy-chip.tier-1{border-color:#c5dfaa;background:#234333eb}.synergy-chip.tier-2{border-color:#ffe2a1;background:#604828f2;box-shadow:0 0 11px #f3bc6d88}
.synergy-icon{display:grid;place-items:center;flex:none;width:27px;height:27px;border:1px solid #ffffff77;border-radius:6px;background:#051624a8;font-size:16px}.synergy-copy{display:grid;gap:1px;min-width:0}.synergy-copy b{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.synergy-copy small{color:#cddbe0;font-size:8px;white-space:nowrap}
.synergy-detail{position:absolute;z-index:100;top:0;left:calc(100% + 8px);display:none;flex-direction:column;gap:8px;width:min(310px,72vw);padding:11px;border:1px solid #e7d39e;border-radius:10px;background:#0b1b2af7;box-shadow:0 12px 30px #000d;color:#e9f0f0;font-size:11px;line-height:1.4}.synergy-detail>b{color:#ffe2a1;font-size:13px}.synergy-detail span{padding:6px;border-radius:6px;background:#ffffff0d}.synergy-detail span.current{background:#3a624b9c;color:#fff}.synergy-detail em{color:#bcd4d0;font-size:10px;font-style:normal}
.synergy-panel.cpu .synergy-detail{left:auto;right:calc(100% + 8px)}.synergy-chip:hover .synergy-detail,.synergy-chip:focus-visible .synergy-detail,.synergy-chip.open .synergy-detail{display:flex}
.inspect-ability:not(:has(.inspect-trait)){display:flex;flex-direction:column;justify-content:center}
.inspect-ability:not(:has(.inspect-trait)) p{font-weight:800;color:#eaf3f8}
.inspect-evolution .inspect-trait-badge{position:relative;cursor:help;z-index:5}
.inspect-evolution .inspect-trait-badge:focus-visible{outline:2px solid #ffe8a7;outline-offset:2px}
.inspect-evolution .inspect-trait-tooltip{position:absolute;right:0;bottom:calc(100% + 6px);display:none;width:min(245px,62vw);padding:9px 10px;border:1px solid #f4d698;border-radius:8px;background:#0b1b2af7;color:#f8f3e6;font-size:11px;font-weight:600;line-height:1.35;text-align:left;text-shadow:none;white-space:normal;box-shadow:0 9px 25px #000c;pointer-events:none}
.inspect-evolution .inspect-trait-badge:hover .inspect-trait-tooltip,.inspect-evolution .inspect-trait-badge:focus-visible .inspect-trait-tooltip{display:block}
.hover-card-preview{pointer-events:auto}
#card-print-stage .inspect-card.full-art,#card-print-stage .inspect-card.full-art.has-trait:not(.has-ultimate){grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 12% 9%}
#card-print-stage .inspect-card.full-art.has-ultimate,#card-print-stage .inspect-card.full-art.has-trait.has-ultimate{grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 16% 10% 9%}
#card-print-stage .inspect-ability p,#card-print-stage .inspect-card.has-ultimate .inspect-ability p{font-size:16px;line-height:1.3}
#card-print-stage .inspect-evolution .inspect-trait-tooltip{display:none}
@media(min-width:761px){.app.battle-table .synergy-panel.player{grid-column:1;grid-row:2/5;align-self:start;margin-top:170px}.app.battle-table .synergy-panel.cpu{grid-column:3;grid-row:2/5;align-self:start;margin-top:170px}.app.battle-table .board>.enemy-hero,.app.battle-table .board>.player-row .hero{align-self:start}}
@media(max-width:760px){.app.battle-table .synergy-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:4px;margin:3px 0 8px}.app.battle-table .synergy-heading{width:100%;text-align:left}.app.battle-table .synergy-chip{width:auto;min-width:105px}.synergy-detail,.synergy-panel.cpu .synergy-detail{position:fixed;top:auto;right:8px;bottom:8px;left:8px;width:auto;max-width:none}}

/* Compact collection builder and persistent deck. */
#collection-view .deck-panel{padding:16px}
.collection-builder-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;align-items:start;gap:18px}
.collection-browser{min-width:0}
#collection-view .section-heading{margin-bottom:10px;padding-bottom:9px}
#collection-view .section-heading h2{font-size:19px}
#collection-view .collection-heading{margin-top:10px;padding-top:10px}
#collection-view .collection-tools{display:flex;flex-wrap:wrap;gap:7px}
#collection-view .collection-tools .collection-search{flex:1 1 210px}
#collection-view .collection-type-filter{min-width:0}
#collection-view .collection-type-filter select{max-width:130px}
#collection-view .collection-reset{min-height:34px;padding:6px 9px;font-size:10px}
#collection-view .collection{grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}
#collection-view .collection-entry{gap:4px}
#collection-view .collection-entry .collection-controls{display:grid;grid-template-columns:minmax(0,1fr) 23px 29px 23px;gap:2px;min-height:30px;padding:3px}
#collection-view .collection-entry .collection-controls small{font-size:7px;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#collection-view .collection-entry .collection-controls button{width:23px;height:23px;font-size:15px}
#collection-view .collection-entry .copy-count{min-width:0;font-size:10px}
#collection-view .craft-card{margin-top:0;padding:5px 2px;font-size:9px}
.deck-sidebar{position:sticky;top:76px;display:flex;flex-direction:column;min-width:0;max-height:calc(100vh - 90px);padding:12px;border:1px solid #d2b7798c;border-radius:15px;background:linear-gradient(160deg,#263951,#111e32 60%,#18243a);box-shadow:0 12px 28px #0007;overflow:hidden}
.deck-sidebar .deck-overview{padding:11px}
.deck-sidebar .deck-overview-top{display:grid;gap:3px}
.deck-sidebar .deck-overview-top strong{font-size:14px}
.deck-sidebar .deck-overview-top span{font-size:11px}
.deck-sidebar .deck-breakdown{display:flex;flex-wrap:wrap;gap:3px}
.deck-sidebar .deck-breakdown span{padding:3px 5px;font-size:9px}
.deck-sidebar .deck-feedback{margin:7px 0;padding:7px;font-size:10px}
.deck-sidebar .deck-preview-heading{display:block;margin:4px 0 6px}
.deck-sidebar .deck-preview-heading h3{margin:0 0 2px;font-size:12px}
.deck-sidebar .deck-preview-heading small{font-size:9px}
.deck-sidebar .deck-preview{display:flex;flex-direction:column;flex:1 1 auto;flex-wrap:nowrap;min-height:80px;max-height:none;margin:0;padding:5px;overflow:auto}
.deck-sidebar .deck-chip{width:100%;max-width:none;min-height:29px;justify-content:flex-start;padding:3px 5px;font-size:10px;text-align:left}
.deck-sidebar .deck-chip img{width:19px;height:19px}
.deck-sidebar .deck-chip b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.deck-sidebar .deck-chip strong{font-size:10px}
.deck-sidebar .deck-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0 0}
.deck-sidebar .deck-actions .btn{padding:6px 3px;font-size:9px}
.deck-sidebar .deck-start{margin-top:8px;min-height:37px;font-size:12px}
@media(max-width:1190px){#collection-view .collection{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1050px){#collection-view .collection{grid-template-columns:repeat(4,minmax(0,1fr))}.collection-builder-layout{grid-template-columns:minmax(0,1fr) 235px;gap:12px}}
@media(max-width:760px){.collection-builder-layout{display:flex;flex-direction:column}.collection-browser,.deck-sidebar{width:100%}.deck-sidebar{position:static;max-height:none;order:-1}.deck-sidebar .deck-preview{max-height:150px}#collection-view .collection{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){#collection-view .collection{grid-template-columns:repeat(2,minmax(0,1fr))}#collection-view .collection-tools .collection-search{flex-basis:100%}}

.collection-hover-preview{position:fixed;z-index:100;width:min(340px,38vw,calc(71.5dvh - 17px));aspect-ratio:440/615;padding:6px;border:1px solid #f5d18b;border-radius:16px;background:#0b182c;box-shadow:0 20px 55px #000d,0 0 0 3px #e8bc694d;pointer-events:none}
.collection-hover-preview[hidden]{display:none}
.collection-hover-preview .printed-card-image{width:100%;height:100%;border-radius:10px}
@media(max-width:760px){.collection-hover-preview{display:none!important}}

/* Keep every collection filter visible while browsing; place the deck at left. */
#collection-view .collection-builder-layout{grid-template-columns:270px minmax(0,1fr)}
#collection-view .collection-browser{grid-column:2;grid-row:1}
#collection-view .deck-sidebar{grid-column:1;grid-row:1}
#collection-view .collection-filterbar{position:sticky;top:0;z-index:25;margin:-8px -8px 10px;padding:8px 8px 10px;border:1px solid #8da2b36b;border-radius:0 0 12px 12px;background:#13243b;box-shadow:0 8px 20px #0009}
#collection-view .deck-sidebar{top:12px}
#collection-view .collection-filterbar .collection-heading{margin:0 0 9px;padding:0;border:0}
#collection-view .collection-filterbar .collection-tools{margin:0}
@media(max-width:1050px){#collection-view .collection-builder-layout{grid-template-columns:235px minmax(0,1fr)}}
@media(max-width:760px){#collection-view .collection-builder-layout{display:flex;flex-direction:column}#collection-view .collection-filterbar{top:0}}

/* The WebP card artwork is rendered at 440px wide; size its printed text for the 7-column binder. */
#card-print-stage .inspect-card-name{font-size:29px}
#card-print-stage .inspect-card-head .inspect-top-cost,#card-print-stage .inspect-card-head .inspect-card-hp{font-size:16px}
#card-print-stage .inspect-card-meta,#card-print-stage .inspect-card-meta .inspect-stage-badge{font-size:13px}
#card-print-stage .inspect-evolution{font-size:12px}
#card-print-stage .inspect-evolution span{font-size:11px}
#card-print-stage .inspect-attack strong,#card-print-stage .inspect-attack b{font-size:21px}
#card-print-stage .inspect-ability small{font-size:12px;letter-spacing:.04em}
#card-print-stage .inspect-ability p{font-size:18px;line-height:1.22}
#card-print-stage .inspect-card.has-ultimate .inspect-ability p{font-size:15px;line-height:1.2}
#card-print-stage .inspect-ability .inspect-trait,#card-print-stage .inspect-card.has-ultimate .inspect-ability .inspect-trait{font-size:13px;line-height:1.16}
#card-print-stage .inspect-ultimate-head strong{font-size:19px}
#card-print-stage .inspect-ultimate-head b{font-size:18px}
#card-print-stage .inspect-card.full-art.has-ultimate{grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 16% 17% 5%}
#card-print-stage .inspect-card.full-art.has-trait:not(.has-ultimate){grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 34% 5%}
#card-print-stage .inspect-card.full-art.has-trait.has-ultimate{grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 16% 23% 5%}
#card-print-stage .inspect-ultimate p{font-size:14px;overflow:hidden}
#card-print-stage .inspect-ultimate p small{font-size:11px}
#card-print-stage .inspect-footer small{font-size:10px}
#card-print-stage .inspect-footer b,#card-print-stage .inspect-footer .inspect-weakness b{font-size:13px}
#card-print-stage .inspect-card.full-art{grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 23% 9%}
#card-print-stage .inspect-card.full-art.has-ultimate{grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 16% 13% 9%}
#card-print-stage .inspect-card.full-art.has-trait:not(.has-ultimate){grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 30% 9%}
#card-print-stage .inspect-card.full-art.has-trait.has-ultimate{grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 16% 23% 9%}
#card-print-stage .inspect-footer b{display:block;max-width:100%;overflow-wrap:anywhere;line-height:1.2}
.card-inspector .inspect-card.full-art:not(.has-ultimate),#card-print-stage .inspect-card.full-art:not(.has-ultimate),#card-print-stage .inspect-card.full-art.has-trait:not(.has-ultimate){grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 12% 9%}
.card-inspector .inspect-card.full-art.has-ultimate,#card-print-stage .inspect-card.full-art.has-ultimate,#card-print-stage .inspect-card.full-art.has-trait.has-ultimate{grid-template-rows:7% 5% minmax(0,1fr) 4% 7% 16% 10% 9%}
.card-inspector .inspect-ability p,#card-print-stage .inspect-ability p,.card-inspector .inspect-card.has-ultimate .inspect-ability p,#card-print-stage .inspect-card.has-ultimate .inspect-ability p{font-size:clamp(11px,2vw,16px);line-height:1.3}
.app.battle-table .hover-card-preview .inspect-card{width:100%;height:auto;max-height:calc(100dvh - 90px);aspect-ratio:440/615}
.card-modal .card-inspector>.inspect-card{transform:perspective(1100px) rotateX(var(--rotate-x,0deg)) rotateY(var(--rotate-y,0deg));transform-style:preserve-3d;transition:transform .16s ease-out}
#collection-view .collection-entry .collection-controls small{font-size:9px}
#collection-view .collection-entry .copy-count{font-size:12px}
#collection-view .craft-card{font-size:10px}
.deck-sidebar .deck-chip{font-size:12px}
.deck-sidebar .deck-chip strong{font-size:11px}
.deck-sidebar .deck-preview-heading small{font-size:10px}
.collection-hover-preview{width:min(410px,43vw,calc(71.5dvh - 17px))}
/* Dos rutas de campaña que comparten la colección. */
.campaign-mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:28px auto;max-width:980px}
.campaign-mode-option{text-align:left;min-height:230px;padding:25px;border:1px solid #8199bd;border-radius:20px;background:linear-gradient(145deg,#273e60,#13243e);color:#f4f6ff;box-shadow:0 18px 36px #0005;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.campaign-mode-option:first-child{border-color:#f4c269;background:linear-gradient(145deg,#654522,#2c3147)}
.campaign-mode-option span{font-size:11px;font-weight:900;letter-spacing:.12em;color:#ffd995}
.campaign-mode-option strong{font-size:32px}.campaign-mode-option p{font-size:14px;line-height:1.5;margin:0;color:#dce6f7}.campaign-mode-option small{margin-top:auto;font-weight:800;color:#f2d69b}
.campaign-mode-option:disabled{opacity:.52;filter:grayscale(.7)}.campaign-mode-option:not(:disabled):hover{transform:translateY(-4px);box-shadow:0 23px 42px #0008}
.collection-mode-switch{display:flex;align-items:center;gap:9px;margin:12px 0 18px;font-weight:800}.collection-mode-switch[hidden]{display:none}.collection-mode-switch button{border:1px solid #607da9;border-radius:10px;background:#1c3150;color:#eaf2ff;padding:8px 13px}.collection-mode-switch button.active{border-color:#ffd174;background:#79532c;color:#fff}
@media(max-width:700px){.campaign-mode-options{grid-template-columns:1fr}.campaign-mode-option{min-height:180px}.collection-mode-switch{flex-wrap:wrap}}
.app.battle-table .board .unit.card-print>.inspect-card,.attack-selector-card.card-print>.inspect-card,.collection-hover-preview.card-print>.inspect-card{width:100%;height:100%;max-height:none;aspect-ratio:440/615}
.app.battle-table .board .unit.card-print>.inspect-card{border-radius:10px}
.collection-hover-preview.card-print>.inspect-card{border-radius:10px}
.history-card-print{width:100%;aspect-ratio:440/615}.history-card-print>.inspect-card{width:100%;height:100%}
.synergy-panel[hidden]{display:none!important}
.inspect-ability.empty{border-left-color:transparent;background:#15253a78}
.card-print .inspect-card .inspect-ability{display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:0;overflow:hidden;padding:clamp(2px,1.4cqw,6px)}
.card-print .inspect-card .inspect-ability small{flex:none;margin:0 0 2px;font-size:clamp(5px,2.7cqw,10px);line-height:1.1;letter-spacing:.04em}
.card-print .inspect-card .inspect-ability p{display:-webkit-box;min-width:0;margin:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;font-size:clamp(7px,3.5cqw,12px);line-height:1.18;font-weight:750;overflow-wrap:anywhere}
.card-print .ability-full{display:none}.card-print .ability-compact{display:inline}.ability-compact{display:none}
.card-inspector .ability-full{display:inline}.card-inspector .ability-compact{display:none}
.card-print .inspect-card .inspect-card-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(8px,4.2cqw,18px)}
.card-print .inspect-card .inspect-ability.empty{border-left:0;background:#15253a78}
.collection-back-top{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:80;width:54px;height:54px;display:grid;place-items:center;padding:0;border:1.5px solid #e8cd91;border-radius:50%;background:radial-gradient(circle at 38% 28%,#344b61,#102239 72%);box-shadow:inset 0 1px #fff5d45c,0 8px 20px #0009,0 0 12px #f6cb6a33;color:#ffe6ad;transition:transform .2s,box-shadow .2s,background .2s}
.collection-back-top[hidden]{display:none}.collection-back-top svg{display:block;width:27px;height:27px;filter:drop-shadow(0 0 5px #ffd68576)}.collection-back-top:hover,.collection-back-top:focus-visible{transform:translateY(-4px);background:radial-gradient(circle at 38% 28%,#52657a,#193550 72%);box-shadow:inset 0 1px #fff5d480,0 13px 26px #000b,0 0 20px #ffd17877;outline:2px solid #fff0bc;outline-offset:2px}
@media(max-width:700px){.collection-back-top{right:12px;bottom:12px;width:48px;height:48px}.collection-back-top svg{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){.collection-back-top{transition:none}}
/* Campaign modes: an animated arena rather than a plain choice list. */
.campaign-mode-stage{position:relative;isolation:isolate;overflow:hidden;min-height:690px;margin:20px 0 0;padding:38px clamp(18px,4vw,50px) 22px;border:1px solid #d7b77686;border-radius:25px;background:linear-gradient(180deg,#07162499,#081629f2 73%),url('assets/home-league-v1.png') center 43%/cover;box-shadow:inset 0 1px #fff4cb55,0 25px 65px #0009}
.campaign-mode-stage:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 18%,#ffe3a842,transparent 45%),linear-gradient(90deg,#07182dba,transparent 40%,#07182dba);pointer-events:none}
.campaign-mode-stage:after{content:'';position:absolute;inset:auto -10% -38% -10%;height:60%;z-index:-1;border:1px solid #f9d4883d;border-radius:50%;box-shadow:0 0 0 36px #ecd08b10,0 0 0 85px #ecd08b09,0 0 90px #ffc66a44;pointer-events:none}
.mode-stage-sky{position:absolute;inset:0;z-index:-1;pointer-events:none}.mode-stage-sky i{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff2c1;box-shadow:0 0 20px 5px #ffe7a79c;animation:mode-star 4s ease-in-out infinite}.mode-stage-sky i:nth-child(1){left:15%;top:24%}.mode-stage-sky i:nth-child(2){right:16%;top:14%;animation-delay:1.3s}.mode-stage-sky i:nth-child(3){left:52%;top:60%;animation-delay:2.2s}
.mode-stage-copy{position:relative;z-index:1;max-width:750px;margin:0 auto 27px;text-align:center;text-shadow:0 3px 18px #000c}.mode-stage-copy>span{display:block;color:#f6d897;font-size:11px;font-weight:1000;letter-spacing:.32em}.mode-stage-copy h2{margin:12px 0;font:900 clamp(38px,5vw,68px)/.92 Georgia,serif;color:#fff7e5}.mode-stage-copy h2 em{font-weight:700;color:#ffdb91}.mode-stage-copy p{max-width:560px;margin:0 auto;color:#e4eafa;font-size:14px;line-height:1.55}
.campaign-mode-stage .campaign-mode-options{position:relative;z-index:2;max-width:1030px;gap:22px;margin:30px auto 22px}
.campaign-mode-stage .campaign-mode-option{position:relative;isolation:isolate;min-height:398px;display:flex;flex-direction:column;align-items:stretch;gap:0;overflow:hidden;padding:0;border:1px solid #f8d69e9c;border-radius:19px;background:linear-gradient(155deg,#7d542dba,#1c283fee 58%,#08182cf5);box-shadow:inset 0 1px #fff7d387,0 18px 35px #0009;transform:perspective(800px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .25s ease,border-color .25s,box-shadow .25s,filter .25s}
.campaign-mode-stage .campaign-mode-option.mode-synergy{border-color:#b7c9ef99;background:linear-gradient(155deg,#2e557abd,#1a2944ef 58%,#08182cf5)}
.campaign-mode-stage .campaign-mode-option:before{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(240px circle at var(--pointer-x,50%) var(--pointer-y,25%),#fff3c52e,transparent 70%);opacity:0;transition:opacity .25s}.campaign-mode-stage .campaign-mode-option:hover:before,.campaign-mode-stage .campaign-mode-option:focus-visible:before{opacity:1}
.campaign-mode-stage .campaign-mode-option:not(:disabled):hover,.campaign-mode-stage .campaign-mode-option:not(:disabled):focus-visible{border-color:#fff0bd;box-shadow:inset 0 1px #fff7d3,0 25px 48px #000c,0 0 30px #ffd88566;outline:none}
.campaign-mode-stage .campaign-mode-option.mode-synergy:disabled{opacity:1;filter:saturate(.45);cursor:not-allowed}.campaign-mode-stage .campaign-mode-option.mode-synergy:disabled .mode-art{filter:grayscale(.6) brightness(.72)}
.mode-art{position:relative;display:block;flex:none;height:185px;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,#ffa74d80,transparent 52%),linear-gradient(180deg,#193b57,#14243d 75%,transparent)}.mode-synergy .mode-art{background:radial-gradient(ellipse at 50% 60%,#9a94f080,transparent 54%),linear-gradient(180deg,#1e3e5f,#14243d 75%,transparent)}
.mode-art:after{content:'';position:absolute;inset:auto 0 0;height:58%;background:linear-gradient(0deg,#17243f,transparent)}.mode-orbit{position:absolute;left:50%;top:54%;width:250px;height:90px;margin-left:-125px;margin-top:-45px;border:2px solid #ffe0a163;border-radius:50%;transform:rotate(-25deg);box-shadow:0 0 18px #ffdb8b55}.mode-orbit.orbit-two{width:310px;height:115px;margin-left:-155px;margin-top:-57px;transform:rotate(24deg);border-color:#ffe9b940}
.mode-coin-face{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:118px;height:118px;margin:-59px 0 0 -59px;border:8px ridge #fff1bc;border-radius:50%;background:radial-gradient(circle at 32% 25%,#fff0ad,#d99b45 48%,#76502a 78%);box-shadow:inset 0 0 0 4px #7c542e,0 0 0 2px #ffe3a8,0 15px 28px #0009,0 0 35px #ffcc77a3;color:#784923;font-size:49px;text-shadow:0 1px #fff3ca;animation:mode-coin-idle 6s ease-in-out infinite}
.mode-art-glint{position:absolute;left:20%;top:14%;width:6px;height:6px;border-radius:50%;background:#fff6c5;box-shadow:0 0 18px 7px #fff2be;animation:mode-star 3s ease-in-out infinite}
.synergy-core{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:116px;height:116px;margin:-58px 0 0 -58px;border:2px solid #e9e5ff;border-radius:27px;background:linear-gradient(135deg,#b2c8ff,#65539c 55%,#294974);box-shadow:inset 0 0 20px #fff8,0 0 30px #b4b6ff;transform:rotate(45deg);font-size:54px;color:#fff9da;text-shadow:0 0 20px #fff}.synergy-core::first-letter{transform:rotate(-45deg)}
.synergy-node{position:absolute;z-index:1;display:grid;place-items:center;width:48px;height:48px;border:1px solid #d9eaffac;border-radius:50%;background:#182843e9;box-shadow:0 0 20px #8fa8e966;font-size:22px;font-style:normal;animation:mode-node 4s ease-in-out infinite}.node-one{left:17%;top:25%}.node-two{right:15%;top:18%;animation-delay:1.2s}.node-three{right:25%;bottom:10%;animation-delay:2.2s}
.mode-copy{position:relative;z-index:3;display:flex;flex:1;flex-direction:column;align-items:stretch;padding:18px 22px 20px}.mode-copy .mode-kicker{color:#ffd894;font-size:10px;font-weight:900;letter-spacing:.17em}.mode-synergy .mode-copy .mode-kicker{color:#c5d7ff}.mode-copy strong{margin:7px 0 5px!important;font:900 clamp(30px,3.5vw,42px)/1 Georgia,serif!important;color:#fff7e9!important}.mode-copy p{min-height:42px;margin:0;color:#d8e6f3;font-size:12px;line-height:1.5}.mode-progress{display:block;margin-top:auto;padding:13px 0 5px;color:#ffe4a6;font-size:11px;font-weight:800}.mode-progress-track{display:block;height:5px;margin-top:7px;overflow:hidden;border-radius:99px;background:#ffffff24}.mode-progress-track b{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#fda247,#fff2b5);box-shadow:0 0 10px #ffd370;transition:width .55s}.mode-synergy .mode-progress-track b{background:linear-gradient(90deg,#8883eb,#d1e2ff)}
.mode-enter{display:flex;align-items:center;justify-content:space-between;margin-top:11px;padding-top:10px;border-top:1px solid #ffffff3d;color:#fff8df;font-size:11px;font-weight:900;letter-spacing:.04em}.mode-enter b{font-size:22px;line-height:1;transition:transform .2s}.campaign-mode-option:hover .mode-enter b{transform:translate(3px,-3px)}.mode-synergy.locked .mode-enter{color:#c1c9d5}.mode-synergy.locked .mode-enter b{display:none}
.mode-stage-footer{text-align:center;color:#edd9b1bd;font-size:9px;font-weight:800;letter-spacing:.2em}.mode-stage-footer span{padding:0 14px;color:#f9dd9a}
#campaign-modes-view:not(.hidden) .mode-stage-copy{animation:mode-rise .6s ease-out both}#campaign-modes-view:not(.hidden) .mode-coin{animation:mode-rise .7s .08s ease-out both}#campaign-modes-view:not(.hidden) .mode-synergy{animation:mode-rise .7s .2s ease-out both}
@keyframes mode-rise{from{opacity:0;translate:0 25px}to{opacity:1;translate:0 0}}@keyframes mode-star{50%{opacity:.3;scale:.5}}@keyframes mode-coin-idle{50%{transform:translateY(-8px) rotateY(25deg)}}@keyframes mode-node{50%{transform:translateY(-7px);box-shadow:0 0 30px #9bc8ffb0}}
@media(max-width:760px){.campaign-mode-stage{padding:25px 14px 20px;min-height:0}.campaign-mode-stage .campaign-mode-options{grid-template-columns:1fr;max-width:460px;gap:15px;margin:22px auto}.campaign-mode-stage .campaign-mode-option{min-height:0}.mode-art{height:142px}.mode-copy{padding:14px 17px 16px}.mode-copy p{min-height:0}.mode-stage-copy h2{font-size:clamp(36px,10vw,54px)}.mode-stage-copy p{font-size:12px}.mode-coin-face,.synergy-core{scale:.76}.mode-stage-footer{font-size:7px;letter-spacing:.08em}}
@media(prefers-reduced-motion:reduce){.mode-stage-sky i,.mode-coin-face,.synergy-node,#campaign-modes-view:not(.hidden) .mode-stage-copy,#campaign-modes-view:not(.hidden) .mode-coin,#campaign-modes-view:not(.hidden) .mode-synergy{animation:none}.campaign-mode-stage .campaign-mode-option,.mode-enter b{transition:none}}
#collection-view .collection{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:12px}
@media(min-width:761px){.app.battle-table .synergy-panel.player,.app.battle-table .synergy-panel.cpu{margin-top:230px}.app.battle-table .board>.enemy-hero,.app.battle-table .board>.player-row .hero{align-self:start}}
.synergy-chip.unique{border-color:#e9c982;background:linear-gradient(110deg,#564128ed,#243951ed);box-shadow:inset 0 1px #fff3ca4d,0 0 12px #f1cb7159}
.synergy-chip.unique .synergy-copy small{color:#ffe2a1;font-weight:900}

/* Hit regions follow the attack bands in the current printed card artwork. */
#attack-selector .attack-hit-normal{top:69.3%;height:6.5%}
#attack-selector.has-ultimate .attack-hit-normal{top:55.5%;height:6.4%}
#attack-selector.has-ultimate .attack-hit-ultimate{top:62.7%;height:14.9%}
@media(max-width:760px){#attack-selector{width:min(330px,76vw,calc(71.5dvh - 72px));max-height:none}#attack-selector .attack-selector-card{max-height:none}}
