.reveal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;overflow:auto;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(circle at 50% 45%,#3b2a8a,#120e24 75%)}.reveal-rays{position:fixed;top:-50%;right:-50%;bottom:-50%;left:-50%;pointer-events:none;background:repeating-conic-gradient(from 0deg,var(--burst) 0deg 5deg,transparent 5deg 15deg);opacity:.12;animation:spin 14s linear infinite}.reveal-rays.charge{opacity:.08}.reveal-rays.burst{opacity:.55;animation:spin 3s linear infinite}.reveal-orb{position:relative;filter:drop-shadow(0 0 30px #ffb02e)}.reveal-orb.charge{animation:charge 1.5s ease-in forwards}.reveal-orb.burst{animation:burst .8s ease-out forwards;filter:drop-shadow(0 0 60px var(--burst))}.reveal-cards{position:relative;width:min(900px,100%);display:grid;justify-items:center}.reveal-hint{position:fixed;bottom:20px;left:0;right:0;text-align:center;color:var(--muted);font-weight:700;margin:0}.flip{animation:flip .35s ease-out both}.flip.rarity-LR .card{background:linear-gradient(160deg,#5a3f00,var(--panel) 60%);box-shadow:0 0 0 3px #ffc53d,0 0 28px #ffc53d}.flip.rarity-SSR .card{background:linear-gradient(160deg,#4a2a7a,var(--panel) 60%);box-shadow:0 0 0 3px #c08af5,0 0 20px #c08af5}@keyframes charge{0%{transform:scale(.3) rotate(-30deg)}60%{transform:scale(1) rotate(10deg)}75%{transform:scale(.95) translate(-4px)}85%{transform:scale(1.02) translate(4px)}to{transform:scale(1.08)}}@keyframes burst{to{transform:scale(4);opacity:0}}@keyframes flip{0%{transform:rotateY(90deg) scale(.8);opacity:0}to{transform:none;opacity:1}}.field{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:24px;padding:30px 16px 16px;min-height:380px;border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:#2b1f6b}.field-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-size:cover;background-position:center bottom;image-rendering:pixelated}.row{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;align-items:end}.row.player>:nth-child(odd),.row.enemy>:nth-child(2n){margin-bottom:26px}.tile{position:relative;width:100%;max-width:128px;justify-self:center;display:grid;justify-items:center;gap:4px;padding:0;border:0;background:none;color:var(--text);font:inherit;cursor:default;transition:opacity .3s,filter .3s}.tile-portrait{position:relative;display:grid;place-items:end center;height:var(--sprite-h, 120px);width:100%}.tile-portrait:before{content:"";position:absolute;left:50%;bottom:-4px;width:64%;height:12px;transform:translate(-50%);border-radius:50%;background:#0007;z-index:-1}.tile-portrait>svg{display:block;max-width:100%;height:auto}.tile.active .tile-portrait:before{background:radial-gradient(closest-side,var(--ki),#ffd23f00);height:18px;bottom:-7px}.tile-info{width:100%;display:grid;gap:3px;padding:4px 6px 5px;background:#120e24eb;border:2px solid var(--ink);border-radius:8px;box-shadow:2px 2px 0 var(--ink)}.tile.active .tile-info{border-color:var(--ki)}.tile.targetable{cursor:pointer}.tile.targetable .tile-info{border-color:var(--danger);animation:target .9s ease-in-out infinite}.tile.player.targetable .tile-info{border-color:var(--scouter)}.tile.targetable:hover .tile-portrait{transform:translateY(-3px)}.tile.dead .tile-info{opacity:.45}.tile.dead .tile-portrait{filter:brightness(.75)}.tile-name{font-size:12px;font-weight:800;line-height:1.15;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-meta{display:grid;grid-template-columns:auto 1fr;gap:5px;align-items:center}.bar{width:100%;height:8px;border-radius:4px;background:#000;border:1.5px solid #000;overflow:hidden}.bar i{display:block;height:100%;transition:width .35s ease-out}.bar.hp i{background:var(--scouter);box-shadow:inset 0 -2px #3faa33}.bar.hp[data-low] i{background:var(--danger);box-shadow:inset 0 -2px #a8202f}.bar.gauge{height:5px;border-width:1px}.bar.gauge i{background:#6ea8ff}.hp-num{font:800 11px "M PLUS Rounded 1c",sans-serif;color:var(--muted);line-height:1}.fx-icons{display:flex;flex-wrap:wrap;gap:2px;justify-content:center}.fx-icons:empty{display:none}.fx-icons span{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--ink)}.fx-icons .buff{background:#3a6fff;color:#fff}.fx-icons .debuff{background:var(--danger);color:#fff}.floater{position:absolute;top:14px;left:50%;z-index:5;transform:translate(-50%);display:grid;justify-items:center;line-height:1;font:400 26px var(--display);color:#fff;white-space:nowrap;pointer-events:none;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--ink);animation:float .95s ease-out forwards}.floater small{font-size:12px;color:var(--ki)}.floater.crit{color:var(--ki);font-size:34px}.floater.heal{color:var(--scouter)}.floater.resisted{color:var(--muted);font-size:15px}.tile.player .tile-portrait.acting{animation:lunge-right .4s ease-out}.tile.enemy .tile-portrait.acting{animation:lunge-left .4s ease-out}.tile.player .tile-portrait.hit{animation:knock-left .4s ease-out}.tile.enemy .tile-portrait.hit{animation:knock-right .4s ease-out}.char-sprite[data-pose=idle]{animation:breathe 1.4s steps(2,jump-none) infinite}.tile-portrait.powered{animation:powered .5s ease-out}.speed-lines{position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;z-index:0;pointer-events:none;background:repeating-conic-gradient(from 0deg,#ffffff 0deg 1.5deg,transparent 1.5deg 9deg);animation:lines .45s ease-out forwards}.flash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;background:radial-gradient(circle,#fff 0%,var(--fx) 60%,transparent 100%);animation:flash .5s ease-out forwards}.projectile{position:absolute;z-index:4;width:0;height:0;transform-origin:0 0;pointer-events:none}.projectile .sprite-fx{position:absolute;left:0;top:-22px;animation-name:fx-play,travel!important}.sprite-fx{display:block;background-repeat:no-repeat;image-rendering:pixelated;pointer-events:none}.sprite-fx.on-tile{position:absolute;left:50%;top:calc(var(--sprite-h, 120px) * .55);z-index:4;transform:translate(-50%,-50%)}@keyframes fx-play{0%{background-position:0 0}to{background-position:var(--sheet-w) 0}}@keyframes travel{0%{translate:-40px 0}to{translate:calc(var(--dist) - 80px) 0}}.beam{position:absolute;z-index:4;height:16px;margin-top:-8px;transform-origin:0 50%;pointer-events:none;border-radius:8px;border:2px solid var(--ink);background:linear-gradient(180deg,var(--fx),#fff 50%,var(--fx));box-shadow:0 0 18px var(--fx);animation:beam .45s ease-out forwards}.skillbar{margin-top:14px;background:var(--panel-2)}.skill-buttons{display:flex;gap:10px;flex-wrap:wrap}.skill-btn{flex:1 1 150px;justify-content:flex-start;text-align:left}.skill-btn small{display:block;font-weight:700;font-size:11px;opacity:.8}.battle-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}.end-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a071acc;display:grid;place-items:center;padding:16px;z-index:10;overflow:hidden}.end-overlay:before{content:"";position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;background:repeating-conic-gradient(from 0deg,var(--end) 0deg 5deg,transparent 5deg 15deg);opacity:.25;animation:spin 20s linear infinite}.end-overlay .panel{position:relative;max-width:440px;width:100%;text-align:center;animation:pop .25s ease-out}.end-title{font-size:clamp(40px,9vw,56px);transform:rotate(-4deg);margin-bottom:8px}@keyframes target{50%{box-shadow:0 0 12px currentColor,2px 2px 0 var(--ink)}}@keyframes float{0%{opacity:0;transform:translate(-50%,6px) scale(.6)}20%{opacity:1;transform:translate(-50%,-6px) scale(1.15)}to{opacity:0;transform:translate(-50%,-42px) scale(1)}}@keyframes lunge-right{45%{transform:translate(26px)}}@keyframes lunge-left{45%{transform:translate(-26px)}}@keyframes knock-left{20%{transform:translate(-14px)}40%{transform:translate(-8px)}60%{transform:translate(-11px)}}@keyframes knock-right{20%{transform:translate(14px)}40%{transform:translate(8px)}60%{transform:translate(11px)}}@keyframes breathe{0%{margin-bottom:0}to{margin-bottom:2px}}@keyframes shake{15%{transform:translate(-7px) rotate(-3deg)}35%{transform:translate(7px) rotate(3deg)}55%{transform:translate(-5px)}75%{transform:translate(3px)}}@keyframes powered{0%{filter:brightness(1)}40%{filter:brightness(1.8) drop-shadow(0 0 10px var(--scouter))}to{filter:brightness(1)}}@keyframes lines{0%{opacity:.45;transform:scale(1.3) rotate(0)}to{opacity:0;transform:scale(1) rotate(8deg)}}@keyframes flash{0%{opacity:.85}to{opacity:0}}@keyframes beam{0%{clip-path:inset(0 100% 0 0);opacity:1}45%{clip-path:inset(0 0 0 0);opacity:1}to{clip-path:inset(0 0 0 0);opacity:0}}@media(max-width:480px){.field{gap:10px;padding:22px 6px 10px;min-height:300px}.row{gap:8px 6px}.row.player>:nth-child(odd),.row.enemy>:nth-child(2n){margin-bottom:16px}.tile-portrait{--sprite-h: 76px}.tile-info{padding:3px 4px 4px}.tile-name{font-size:10px}.hp-num{display:none}.tile-meta{grid-template-columns:1fr}.floater{font-size:20px}.floater.crit{font-size:26px}}.wave-tag{display:inline-block;vertical-align:middle;margin-left:6px;padding:1px 10px;transform:rotate(-3deg);background:var(--ink);color:var(--ki);border-radius:6px;font-size:14px;-webkit-text-stroke:0;text-shadow:none}.row:has(>:only-child){grid-template-columns:minmax(0,1fr)}:root{--sky-1: #2b1f6b;--sky-2: #4a2a8a;--sky-glow: #b0489a;--ink: #120e24;--panel: #241a5c;--panel-2: #31267a;--text: #fff7ea;--muted: #c6bcf2;--gi: #ff7a1a;--gi-dark: #c24e00;--ki: #ffd23f;--blue: #3a6fff;--blue-dark: #1d3fb0;--scouter: #7cff6b;--danger: #ff4d5e;--radius: 10px;--shadow: 5px 5px 0 var(--ink);--display: "Dela Gothic One", "M PLUS Rounded 1c", sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{color:var(--text);font-family:"M PLUS Rounded 1c",system-ui,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;background-color:var(--sky-1);background-image:radial-gradient(circle,#ffffff10 1px,transparent 1.4px),radial-gradient(120% 70% at 50% 115%,var(--sky-glow) 0%,transparent 60%),linear-gradient(180deg,var(--sky-1) 0%,var(--sky-2) 100%);background-size:6px 6px,100% 100%,100% 100%;background-attachment:fixed}h1,h2,h3,.title{font-family:var(--display);font-weight:400;letter-spacing:.5px;line-height:1.15;margin:0}.inked{color:var(--text);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--ink)}a{color:var(--ki)}:focus-visible{outline:3px solid var(--ki);outline-offset:2px}.page{max-width:1080px;margin:0 auto;padding:16px 16px 64px}.panel{background:var(--panel);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:3px solid var(--ink);border-radius:10px;padding:10px 18px;font:800 15px "M PLUS Rounded 1c",sans-serif;color:var(--ink);background:var(--gi);box-shadow:4px 4px 0 var(--ink),inset 0 -4px 0 var(--gi-dark);cursor:pointer;text-decoration:none;transition:transform .06s,box-shadow .06s,filter .15s}.btn:hover:not(:disabled){filter:brightness(1.07)}.btn:active:not(:disabled){transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink),inset 0 -2px 0 var(--gi-dark)}.btn:disabled{filter:grayscale(.9) brightness(.7);cursor:not-allowed}.btn.blue{background:var(--blue);color:var(--text);box-shadow:4px 4px 0 var(--ink),inset 0 -4px 0 var(--blue-dark)}.btn.ghost{background:var(--panel-2);color:var(--text);box-shadow:4px 4px 0 var(--ink),inset 0 -4px #1f1857}.btn.small{padding:6px 12px;font-size:13px;border-width:2px;box-shadow:3px 3px 0 var(--ink)}.btn.big{padding:14px 26px;font-size:18px}.field{display:grid;gap:6px;margin-bottom:14px}.field span{color:var(--muted);font-size:14px;font-weight:700}.field input{background:var(--text);border:3px solid var(--ink);border-radius:8px;padding:11px 12px;color:var(--ink);font:500 16px "M PLUS Rounded 1c",sans-serif}.field input:focus{outline:3px solid var(--ki);outline-offset:1px}.error{color:var(--text);background:var(--danger);border:2px solid var(--ink);border-radius:8px;padding:8px 12px;margin:10px 0;font-weight:700}.muted{color:var(--muted)}.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 6px;border-radius:999px;background:var(--ink);border:2px solid var(--ink);font-size:14px;font-weight:800;white-space:nowrap}.chip svg{flex:none}.topbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:20px}.brand{font-family:var(--display);font-size:30px;color:var(--gi);text-decoration:none;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--ink);transform:rotate(-3deg);display:inline-block}.resources{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:2px solid var(--ink);background:var(--panel-2);color:var(--text);cursor:pointer}.card{position:relative;display:grid;justify-items:center;gap:4px;text-align:center;padding:10px 8px;border-radius:var(--radius);background:var(--panel);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);cursor:pointer;color:inherit;font:inherit;transition:transform .08s}.card:hover{transform:translateY(-2px)}.card.selected{background:var(--panel-2);outline:3px solid var(--ki);outline-offset:2px}.card .name{font-weight:800;font-size:14px;line-height:1.2}.stars{color:var(--ki);font-size:13px;letter-spacing:1px;-webkit-text-stroke:.5px var(--ink)}.rarity-tag{position:absolute;top:-9px;left:-9px;font:400 13px var(--display);padding:2px 7px;border-radius:6px;border:2px solid var(--ink);color:var(--ink);transform:rotate(-8deg)}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.tabs button{background:var(--panel);color:var(--muted);border:2px solid var(--ink);border-radius:999px;padding:6px 14px;font:700 14px "M PLUS Rounded 1c",sans-serif;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.tabs button.active{color:var(--ink);background:var(--ki);box-shadow:2px 2px 0 var(--ink)}.footer{margin-top:40px;text-align:center;font-size:13px}.footer a{color:var(--muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.ic-zeni{color:#ffd23f}.ic-ki{color:#ff7a1a}.ic-crystals{color:#6fe3ff}.card-badge{position:absolute;top:-9px;right:-9px;transform:rotate(6deg);background:var(--gi);color:var(--ink);border:2px solid var(--ink);border-radius:6px;font:800 11px "M PLUS Rounded 1c",sans-serif;padding:1px 7px}.resume{display:flex;align-items:center;gap:14px;margin-bottom:18px;color:inherit;text-decoration:none;background:var(--panel-2)}.resume svg{color:var(--gi);flex:none}.home-tiles{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.home-tile{position:relative;overflow:hidden;display:block;min-height:180px;padding:20px;border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);text-decoration:none;transition:transform .08s}.home-tile:before{content:"";position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;background:repeating-conic-gradient(from 0deg at 80% 40%,#ffffff14 0deg 4deg,transparent 4deg 12deg)}.home-tile:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink)}.home-tile h2{position:relative;font-size:30px}.home-tile p{position:relative;max-width:22ch;font-weight:700;margin:8px 0 0}.home-tile-icon{position:absolute;right:14px;bottom:10px;opacity:.9;filter:drop-shadow(3px 3px 0 var(--ink))}.tile-red{background:linear-gradient(135deg,#ff5a3d,#b3223f)}.tile-gold{background:linear-gradient(135deg,#ffb52e,#e0601a)}.tile-gold .home-tile-icon{color:#ffe9a3}.tile-blue{background:linear-gradient(135deg,#3a8bff,#2b3fb8)}.tile-green{background:linear-gradient(135deg,#3ccf7a,#1b7a4a)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a071acc;display:grid;place-items:center;padding:16px;z-index:10}.modal-backdrop>.panel{animation:pop .18s ease-out}.skill-row{border-top:2px dashed #ffffff22;padding:10px 0}@keyframes pop{0%{transform:scale(.92);opacity:0}to{transform:none;opacity:1}}.summon-banner{position:relative;overflow:hidden;text-align:center;padding:28px 16px 22px;border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:radial-gradient(circle at 50% 30%,#ffb02e55,transparent 60%),linear-gradient(180deg,#3a2a9a,#241a5c)}.summon-banner:before{content:"";position:absolute;top:-60%;right:-60%;bottom:-60%;left:-60%;background:repeating-conic-gradient(from 0deg at 50% 50%,#ffd23f18 0deg 5deg,transparent 5deg 14deg);animation:spin 40s linear infinite}.summon-banner>*{position:relative}.summon-banner h1{font-size:clamp(28px,5vw,42px)}.summon-banner p{font-weight:700;margin:8px 0 0}.summon-balls{display:flex;justify-content:center;gap:4px;flex-wrap:wrap;margin-bottom:12px}.summon-balls svg:nth-child(odd){transform:translateY(6px)}.summon-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:20px 0 6px}.pity{color:var(--muted);font-size:14px}.pity b{color:var(--ki)}.rarity-dot{display:inline-block;min-width:34px;text-align:center;border-radius:999px;color:var(--ink);font:400 12px var(--display);padding:1px 6px}@keyframes spin{to{transform:rotate(360deg)}}.stages{display:grid;gap:10px}.stage{display:flex;align-items:center;gap:14px;color:inherit;text-decoration:none;padding:12px 14px;border-left:8px solid var(--saga);transition:transform .08s}a.stage:hover{transform:translate(4px)}.stage.locked{opacity:.45}.stage-num{flex:none;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:3px solid var(--ink);background:var(--saga);color:var(--ink);font:400 18px var(--display)}.stage-num.boss{background:var(--danger);color:var(--text)}.stage-rewards{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;color:var(--muted);margin-top:2px}.stage-rewards span{display:inline-flex;align-items:center;gap:3px}.enemy-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 0}.team-bar{margin:14px 0 18px;position:sticky;top:8px;z-index:2;background:var(--panel-2)}.team-slot{position:relative;width:76px;height:76px;border-radius:12px;border:3px dashed #ffffff44;display:grid;place-items:center;color:var(--muted);font-weight:700;font-size:13px}.team-slot.filled{border:none}.leader-crown{position:absolute;top:-12px;left:50%;transform:translate(-50%) rotate(-8deg);color:var(--ki);filter:drop-shadow(2px 2px 0 var(--ink))}.char-sprite{display:block;background-repeat:no-repeat;image-rendering:pixelated;filter:drop-shadow(2px 2px 0 var(--ink))}.char-sprite.flip{transform:scaleX(-1)}.card-figure{display:grid;place-items:end center;height:100px}.char-placeholder{display:grid;place-items:end center;opacity:.85;filter:drop-shadow(2px 2px 0 var(--ink))}.role-badge{display:inline-flex;align-items:center;gap:3px;font-weight:800;font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.roles-covered{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px;font-size:13px}.roles-covered .chip.missing{opacity:.5;text-decoration:line-through}.card-meta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 6px;font-size:12px}.card-meta>*{white-space:nowrap}.upgrade{display:grid;gap:14px;margin:14px 0}.upgrade section{border-top:2px dashed #ffffff22;padding-top:10px}.upgrade .chip.missing{opacity:.55}.upgrade h3{margin:0 0 8px;font-size:18px}.upgrade-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.upgrade-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));max-height:320px;overflow:auto;margin-bottom:10px}
