:root{--bg: #12131a;--panel: #1c1e2a;--panel-2: #252838;--line: #343850;--ink: #e8e9f2;--muted: #9aa0bd;--accent: #ffd166;--danger: #ff6b6b;--common:#dfe3ee;--uncommon:#5fd67a;--rare:#5aa9ff;--epic:#e07bff;--legendary:#ffa64d;--divine:#ffe066;--eternal:#ff6b6b;--cosmic:#b8b8ff;--meta:#c77dff;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100%;max-width:1100px;margin:0 auto}.topbar{display:flex;align-items:center;gap:16px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}.stat{display:flex;align-items:center;gap:6px;white-space:nowrap}.stat b{color:var(--accent);font-weight:600}.spacer{flex:1}.nav{display:flex;gap:4px;padding:8px 14px;border-bottom:1px solid var(--line);overflow-x:auto}.nav button{background:var(--panel-2);color:var(--muted);border:1px solid var(--line);padding:7px 14px;border-radius:6px;cursor:pointer;font:inherit;white-space:nowrap}.nav button[aria-current=true]{background:var(--accent);color:#1a1a1a;border-color:var(--accent)}.screen{flex:1;overflow-y:auto;padding:16px}h2{margin:0 0 4px;font-size:16px}.sub{color:var(--muted);margin:0 0 16px;font-size:12px}.grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.card{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:8px;cursor:pointer;text-align:left;color:inherit;font:inherit}.card:hover{border-color:var(--accent)}.sprite{background-repeat:no-repeat;align-self:center;flex:none}.sprite-wrap{overflow:hidden;position:relative;flex:none}.name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta{font-size:11px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}.meta.chips{gap:3px;row-gap:3px;align-items:center}.note{font-size:11px;color:var(--muted);line-height:1.7;margin:0}.pill{padding:1px 6px;border-radius:99px;font-size:10px;border:1px solid currentColor}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}button.primary{background:var(--accent);color:#1a1a1a;border:0;padding:9px 16px;border-radius:6px;font:inherit;font-weight:600;cursor:pointer}button.primary:disabled{background:var(--panel-2);color:var(--muted);cursor:not-allowed}button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);padding:8px 14px;border-radius:6px;font:inherit;cursor:pointer}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px}.locked{opacity:.4}.bar{height:6px;background:var(--panel-2);border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent)}.empty{color:var(--muted);padding:40px 0;text-align:center}.reveal-backdrop{position:fixed;inset:0;background:#08090eeb;display:flex;flex-direction:column;align-items:center;z-index:50;padding:20px;overflow-y:auto;overscroll-behavior:contain;justify-content:center;justify-content:safe center}.reveal-grid{display:grid;grid-template-columns:repeat(auto-fit,132px);gap:12px;justify-content:center;perspective:1200px;width:100%;max-width:740px}.flip{width:132px;height:212px}.flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .52s cubic-bezier(.2,.8,.25,1)}.flip.is-flipped .flip-inner{transform:rotateY(180deg)}.flip-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:10px;border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px;overflow:hidden}.flip-back{background:repeating-linear-gradient(45deg,#262a3d 0 8px,#1e2130 8px 16px)}.flip-front{transform:rotateY(180deg)}.flip-front .name{font-size:11px;text-align:center;max-width:100%;line-height:1.25}.flip-front .meta{justify-content:center}.flip-front .pill{font-size:9px;padding:0 4px}.pity-tag{position:absolute;top:6px;right:6px;font-size:9px;color:var(--accent);border:1px solid var(--accent);border-radius:99px;padding:0 5px}:root[data-motion=reduced] .flip-inner{transition:none}:root[data-motion=reduced] .rar-cosmic:after,:root[data-motion=reduced] .rar-meta:after{animation:none}.battle{max-width:440px;margin:0 auto;display:flex;flex-direction:column;gap:10px;min-height:100%;justify-content:center;padding:8px 0 24px}.battle .panel{padding:12px}.orb-canvas{display:grid;place-items:center}.battle .orb-canvas{margin-top:auto}.battle-you{margin:10px 0 auto}.orb-canvas canvas{image-rendering:pixelated;border-radius:10px;background:#0d0f17;box-shadow:inset 0 0 0 1px var(--line);touch-action:none}select.ghost{background:var(--panel-2)}.rar{position:relative;border-color:color-mix(in srgb,var(--rar) 55%,var(--line))}.rar-quiet:before,.rar-quiet:after,.rar-quiet .holo{display:none!important}.rar-quiet{box-shadow:none}.rar-i1{box-shadow:0 0 10px -3px var(--rar-glow)}.rar-i2{box-shadow:0 0 18px -3px var(--rar-glow),inset 0 0 16px -12px var(--rar)}.rar-i2:before,.rar-i3:before,.rar-i4:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:conic-gradient(from var(--sheen, 0deg),transparent 0deg,var(--rar) 60deg,#fff 90deg,var(--rar) 120deg,transparent 200deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spin-border 5s linear infinite;pointer-events:none;z-index:2}@keyframes spin-border{to{--sheen: 360deg}}@property --sheen{syntax: "<angle>"; initial-value: 0deg; inherits: true;}.rar-i3{box-shadow:0 0 24px -3px var(--rar-glow),inset 0 0 20px -10px var(--rar)}.rar-i3:before{animation-duration:3.2s}.rar-i3 .holo,.rar-i3:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(115deg,transparent 36%,#ffffff4d 48%,transparent 60%);background-size:260% 100%;animation:foil 3.2s linear infinite;z-index:1}.rar-i4{box-shadow:0 0 34px -2px var(--rar-glow),inset 0 0 24px -8px var(--rar)}.rar-i4:before{animation-duration:3.2s}.rar-i4 .holo,.rar-i4:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(115deg,transparent 32%,#ffffff80 46%,transparent 60%),conic-gradient(from calc(var(--sheen, 0deg) * -1),#ff5f6d44,#ffc37144,#6dd5ed44,#b06ab344,#ff5f6d44);background-size:260% 100%,180% 180%;animation:foil 3.2s linear infinite;mix-blend-mode:screen;z-index:1}@keyframes foil{0%{background-position:190% 0,0 0}to{background-position:-90% 0,100% 100%}}.sparkles{position:absolute;inset:0;pointer-events:none;z-index:3}.sparkles i{position:absolute;width:6px;height:6px;margin:-3px 0 0 -3px;background:radial-gradient(circle,#fff 0 35%,transparent 70%);opacity:0;animation:twinkle 2.4s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:0;transform:scale(.4)}45%{opacity:1;transform:scale(1.1)}}.viewer-backdrop{position:fixed;inset:0;z-index:60;background:#06070cf2;display:grid;place-items:center;padding:24px;overflow-y:auto;overscroll-behavior:contain}.viewer-stage{display:flex;gap:34px;align-items:center;flex-wrap:wrap;justify-content:center;perspective:1500px}.art3d{position:relative;transform-style:preserve-3d;cursor:grab;touch-action:none;flex:none}.art3d.grabbing{cursor:grabbing}.art3d-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:16px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 38%,#262b40,#10121b 72%);border:1px solid color-mix(in srgb,var(--rar) 45%,var(--line))}.art3d-bare .art3d-front{background:none;border:0;border-radius:10px;box-shadow:none}.art3d-bare .art3d-back{border-radius:12px}.art3d-bare{box-shadow:none!important}.art3d-bare:before{display:none}.art3d-back{transform:rotateY(180deg);padding:0}.art3d .glare{position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at calc(50% + var(--tiltx, 0deg) * .9) 32%,#ffffff26,transparent 58%)}.viewer-info{max-width:300px;min-width:240px}.viewer-title{font-size:18px;font-weight:700;margin-bottom:8px}.viewer-desc{font-size:12px;line-height:1.75;color:var(--ink);margin:0 0 10px;border-left:2px solid color-mix(in srgb,var(--rar, var(--line)) 60%,transparent);padding-left:10px}.viewer-close{position:fixed;top:18px;right:18px}.card3d-line{display:flex;gap:8px;align-items:center;font-size:11px;color:var(--muted);flex-wrap:wrap}.card3d-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.card3d-stats div{background:#ffffff08;border-radius:8px;padding:9px;text-align:center}.card3d-stats b{display:block;font-size:14px;color:var(--accent)}.card3d-stats span{font-size:9px;color:var(--muted)}.viewer-hint{font-size:11px;color:var(--muted);margin-top:14px}.reveal-backdrop.burst-2{background:radial-gradient(circle at 50% 42%,#3a2f1466,#08090ef0 60%)}.reveal-backdrop.burst-3{background:radial-gradient(circle at 50% 42%,#2c1f4a88,#08090ef2 62%)}.flip{position:relative}.rays{position:absolute;inset:-46px;pointer-events:none;z-index:0;background:repeating-conic-gradient(from 0deg,var(--rar) 0 2deg,transparent 2deg 22deg);-webkit-mask:radial-gradient(circle,#000 12%,transparent 68%);mask:radial-gradient(circle,#000 12%,transparent 68%);opacity:.5;animation:rays-spin 9s linear infinite,rays-in .5s ease-out}@keyframes rays-spin{to{transform:rotate(360deg)}}@keyframes rays-in{0%{opacity:0;transform:scale(.5)}}.flip.is-flipped .flip-inner{animation:land .48s cubic-bezier(.2,1.4,.35,1)}@keyframes land{0%{scale:1}55%{scale:1.08}to{scale:1}}.flip-front{cursor:zoom-in}:root[data-motion=reduced] .rays,:root[data-motion=reduced] .flip.is-flipped .flip-inner,:root[data-motion=reduced] .rar-i2:before,:root[data-motion=reduced] .rar-i3:before,:root[data-motion=reduced] .rar-i4:before,:root[data-motion=reduced] .rar-i3 .holo,:root[data-motion=reduced] .rar-i4 .holo,:root[data-motion=reduced] .rar-i3:after,:root[data-motion=reduced] .rar-i4:after{animation:none}:root[data-motion=reduced] .sparkles i{animation:none;opacity:.7}.statuses{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.status{font-size:10px;padding:1px 7px;border-radius:99px;border:1px solid currentColor}.status-poison{color:#7ee787}.status-paralyze{color:#ffd166}.status-seal{color:#ff8fa3}.status-weaken{color:#c4a1ff}.status-silence{color:#ff9f6b}.status-ward{color:#7cd6ff}.status.is-boon{border-width:2px;font-weight:700}.statuses-enemy{justify-content:center;margin-bottom:4px}.status-brittle{color:#ffd166}.status-blunt{color:#9fe6c4}.status-burn{color:#ff8a5c}.charge.is-silenced .skill-button{opacity:.5;text-decoration:line-through}.charge.is-silenced .charge-bar{filter:grayscale(.7)}.card.picked{outline:2px solid var(--accent);outline-offset:2px}.statblock{margin-bottom:8px}.affinity{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.aff{font-size:10px;padding:2px 7px;border-radius:99px;border:1px solid #ffffff1a;color:var(--muted);white-space:nowrap}.aff b{margin-left:2px}.aff-strong{color:#7ee787;border-color:#7ee78755}.aff-weak{color:#ff8fa3;border-color:#ff8fa355}.aff-seal{color:var(--muted);opacity:.55;text-decoration:line-through}.enemy{position:relative;overflow:visible}.dmg-popup{position:absolute;left:0;right:0;top:26%;z-index:6;text-align:center;font-size:30px;font-weight:700;color:#fff;pointer-events:none;text-shadow:0 2px 10px #000,0 0 22px #000,0 0 4px #000;animation:pop-up .9s ease-out forwards}.dmg-popup.crit{color:#ffd166;font-size:40px}@keyframes pop-up{0%{opacity:0;transform:translateY(10px) scale(.7)}22%{opacity:1;transform:translateY(-2px) scale(1.15)}38%{transform:translateY(-4px) scale(1)}to{opacity:0;transform:translateY(-40px) scale(1)}}:root[data-motion=reduced] .dmg-popup{animation:calm-hold .7s ease-out forwards}input.ghost{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;font:inherit}.reveal-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center;margin-top:18px;position:relative;z-index:3}.flip-gone{visibility:hidden}.sell-tick{position:absolute;top:6px;left:6px;z-index:4;width:22px;height:22px;border-radius:50%;cursor:pointer;border:1px solid var(--line);background:#0e1017cc;color:var(--muted);font:11px/1 ui-monospace,monospace;display:grid;place-items:center}.sell-tick:hover{border-color:var(--accent);color:var(--accent)}.sell-tick.on{background:var(--accent);border-color:var(--accent);color:#1a1a1a}.reveal-actions .ghost.on{border-color:var(--accent);color:var(--accent)}.element-effect{position:absolute;inset:0;margin:auto;width:192px;height:192px;max-width:100%;pointer-events:none;z-index:5;image-rendering:pixelated;background-repeat:no-repeat}.grid-compact{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}.grid-compact .card{padding:8px;gap:5px}.grid-compact .name{font-size:10px}.forge-result{perspective:1200px}.forge-stage{display:flex;gap:30px;align-items:center;flex-wrap:wrap;justify-content:center}.forge-artwrap{position:relative;flex:none}.forge-rays{position:absolute;inset:-110px;pointer-events:none;background:repeating-conic-gradient(from 0deg,var(--rar) 0 2deg,transparent 2deg 18deg);-webkit-mask:radial-gradient(circle,#000 8%,transparent 62%);mask:radial-gradient(circle,#000 8%,transparent 62%);opacity:0;animation:rays-spin 11s linear infinite}.forge-stage.revealed .forge-rays{opacity:.45;transition:opacity .5s}.forge-art{position:relative;width:min(240px,60vw);height:min(300px,45vh);border-radius:14px;display:grid;place-items:center;overflow:hidden;flex:none;background:radial-gradient(circle at 50% 38%,#262b40,#10121b 72%);border:1px solid color-mix(in srgb,var(--rar) 50%,var(--line));transform:scale(.6);opacity:0}.forge-stage.revealed .forge-art{animation:forge-pop .62s cubic-bezier(.18,1.3,.4,1) forwards}@keyframes forge-pop{0%{transform:scale(.6) rotate(-6deg);opacity:0}60%{transform:scale(1.08) rotate(2deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.forge-copy{max-width:260px;opacity:0}.forge-stage.revealed .forge-copy{animation:fade-in .4s .32s ease-out forwards}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1}}:root[data-motion=reduced] .forge-stage.revealed .forge-art,:root[data-motion=reduced] .forge-stage.revealed .forge-copy{animation:calm-in .32s ease-out both;transform:none}:root[data-motion=reduced] .forge-rays{animation:none}.forge-actions{position:sticky;top:0;z-index:5;padding:10px 0;margin-bottom:4px;background:linear-gradient(var(--bg) 70%,transparent)}.card.dimmed{opacity:.32;filter:grayscale(1)}.card.dimmed:hover{opacity:.5}.affinity-panel{margin-bottom:14px}.affinity-panel.is-attuned{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:linear-gradient(color-mix(in srgb,var(--accent) 6%,transparent),transparent 70%),var(--panel)}.affinity-name{color:var(--accent)}.loadout-totals{margin-bottom:14px;gap:22px;flex-wrap:wrap}.loadout-auto{gap:6px;flex-wrap:nowrap}.paperdoll{display:grid;gap:10px;max-width:560px;margin:0 auto;grid-template-columns:1fr 1.35fr 1fr;grid-template-areas:"armor     character weapon" "accessory character pet" ".         food      ."}.doll-armor{grid-area:armor}.doll-weapon{grid-area:weapon}.doll-accessory{grid-area:accessory}.doll-pet{grid-area:pet}.doll-food{grid-area:food}.doll-character{grid-area:character}.doll-slot{position:relative;display:flex;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px;min-width:0}.doll-slot.rar{border:2px solid color-mix(in srgb,var(--rar) 78%,transparent);background:linear-gradient(color-mix(in srgb,var(--rar) 7%,transparent),transparent 60%),var(--panel)}.doll-slot.rar .doll-label{color:color-mix(in srgb,var(--rar) 70%,var(--muted))}.doll-label{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding-right:26px}.doll-el{letter-spacing:0;text-transform:none;font-size:10px;display:inline-flex;align-items:center;gap:2px}.doll-el.is-attuned{border:1px solid currentColor;border-radius:99px;padding:0 5px;font-weight:700}.doll-view{background:none;border:0;padding:0;font:inherit;color:inherit;display:flex;flex-direction:column;gap:4px;align-items:center;cursor:zoom-in;width:100%;min-width:0}.doll-view .name{font-size:11px;text-align:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doll-stat{font-size:10px;color:var(--muted)}.doll-big .doll-view .name{font-size:13px}.doll-big .doll-stat{font-size:11px}.doll-actions{position:absolute;top:4px;right:4px;display:flex;flex-direction:column;gap:4px}.doll-act{width:22px;height:22px;display:grid;place-items:center;padding:0;font-size:12px;line-height:1;background:var(--panel-2);color:var(--muted);border:1px solid var(--line);border-radius:6px;cursor:pointer}.doll-act:hover{color:var(--ink);border-color:var(--accent)}.doll-unequip:hover{color:var(--danger);border-color:var(--danger)}.doll-empty{border-style:dashed}.doll-add{cursor:pointer;padding:14px 0;justify-content:center}.doll-plus{font-size:22px;color:var(--muted);line-height:1}@media(max-width:640px){.paperdoll{gap:6px}.doll-slot{padding:6px}.doll-act{width:20px;height:20px}}.enemy{position:relative;overflow:visible;padding:0!important}.battle-stage{position:relative;border-radius:8px;overflow:hidden}.stage-field{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:end;min-height:172px;padding:8px 10px 0}.party-side{position:relative;height:164px}.party-shake{position:absolute;inset:0}.party-figure{position:absolute;transform-origin:50% 90%}.party-swing{transform-origin:50% 90%}.party-character{left:1%;bottom:18px;z-index:1}.party-weapon{left:29%;bottom:50%;z-index:3}.party-pet{left:32%;bottom:0;z-index:3}.party-weapon,.party-pet{filter:drop-shadow(0 2px 7px #000b)}.party-weapon{animation:party-bob-weapon 2.7s ease-in-out infinite}.party-pet{animation:party-bob-pet 3.9s ease-in-out infinite .4s}@keyframes party-bob-weapon{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(2.5deg)}}@keyframes party-bob-pet{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.03)}}.party-swing.is-striking{animation:party-strike .44s cubic-bezier(.3,-.5,.4,1.5)}@keyframes party-strike{0%{transform:translate(0) scale(1)}30%{transform:translate(-8px) scale(.96)}60%{transform:translate(22px) scale(1.1);filter:brightness(1.5)}to{transform:translate(0) scale(1)}}.party-shake.is-hurt{animation:party-hurt .36s ease-out}.party-shake.is-hurt-heavy{animation:party-hurt-heavy .62s ease-out}@keyframes party-hurt{0%,to{transform:translate(0);filter:none}20%{transform:translate(-9px);filter:brightness(2.4) saturate(.4)}55%{transform:translate(5px)}80%{transform:translate(-3px)}}@keyframes party-hurt-heavy{0%,to{transform:translate(0) scale(1);filter:none}12%{transform:translate(-16px) scale(.96);filter:brightness(3) saturate(0)}30%{transform:translate(11px) scale(1.02);filter:brightness(2.2) sepia(.5) hue-rotate(-30deg)}52%{transform:translate(-8px);filter:brightness(1.6)}74%{transform:translate(5px)}}.party-feed{position:absolute;left:4%;bottom:4%;z-index:4;pointer-events:none;animation:party-feed 1s ease-out forwards}@keyframes party-feed{0%{opacity:0;transform:translate(-14px,18px) scale(.6)}22%{opacity:1;transform:translateY(-6px) scale(1.1)}55%{opacity:1;transform:translate(6px,6px) scale(1)}78%{opacity:1;transform:translate(6px,10px) scale(.7)}to{opacity:0;transform:translate(6px,12px) scale(.35)}}.enemy-side{position:relative;display:grid;place-items:end center;height:164px}.party-side>.element-effect{z-index:5}.enemy-facing{transform:scaleX(-1)}:root[data-motion=reduced] .party-weapon,:root[data-motion=reduced] .party-pet{animation:none}:root[data-motion=reduced] .party-swing.is-striking,:root[data-motion=reduced] .party-shake.is-hurt,:root[data-motion=reduced] .party-shake.is-hurt-heavy{animation:calm-in .3s ease-out}:root[data-motion=reduced] .party-feed{animation:calm-hold 1s ease-out forwards}.enemy-bg{position:absolute;inset:0;background-repeat:no-repeat;filter:saturate(.85) brightness(.72)}.enemy-bg-veil{position:absolute;inset:0;background:linear-gradient(180deg,#0d0f1733,#0d0f17cc 78%,#0d0f17)}.battle-stage.is-boss .enemy-bg{filter:saturate(1.1) brightness(.62) hue-rotate(-12deg)}.enemy-figure{position:relative;display:grid;place-items:center;padding:0 0 4px;transform-origin:50% 90%}.enemy-readout{position:relative;padding:6px 12px 12px}.boss-tag{display:inline-block;margin-right:6px;font-size:9px;letter-spacing:.12em;color:var(--eternal);border:1px solid var(--eternal);border-radius:3px;padding:0 4px}.anim-idle{animation:enemy-idle 3.2s ease-in-out infinite}@keyframes enemy-idle{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.015)}}.anim-entering{animation:enemy-enter .5s cubic-bezier(.2,1.2,.4,1)}@keyframes enemy-enter{0%{transform:translateY(-28px) scale(.86);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.anim-hit{animation:enemy-hit .26s steps(2,end) 2}@keyframes enemy-hit{0%{transform:translate(0);filter:none}50%{transform:translate(9px);filter:brightness(3) saturate(0)}to{transform:translate(0);filter:none}}.anim-attack{animation:enemy-attack .42s cubic-bezier(.3,-.4,.5,1.4)}@keyframes enemy-attack{0%{transform:translate(0) scale(1)}35%{transform:translate(14px) scale(1.04)}62%{transform:translate(-26px) scale(1.1)}to{transform:translate(0) scale(1)}}.anim-dying{animation:enemy-die .56s ease-in forwards}@keyframes enemy-die{0%{transform:scale(1) rotate(0);opacity:1;filter:none}35%{transform:scale(1.12) rotate(-3deg);filter:brightness(2.6)}to{transform:scale(.55) rotate(9deg) translateY(26px);opacity:0}}.announce{position:fixed;left:0;right:0;top:38%;z-index:40;pointer-events:none;text-align:center;animation:announce 1.15s ease-out forwards}.announce-text{font-size:26px;font-weight:800;letter-spacing:.06em;text-shadow:0 3px 18px #000,0 0 30px currentColor}.announce-sub{font-size:12px;color:var(--muted);margin-top:4px}.announce-neutral .announce-text{color:var(--accent)}.announce-good .announce-text{color:#7ee787}.announce-bad .announce-text{color:var(--danger)}@keyframes announce{0%{opacity:0;transform:scale(.8) translateY(8px)}18%{opacity:1;transform:scale(1.04) translateY(0)}75%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.02) translateY(-10px)}}:root[data-motion=reduced] .anim-idle,:root[data-motion=reduced] .anim-entering,:root[data-motion=reduced] .anim-hit,:root[data-motion=reduced] .anim-attack{animation:none}:root[data-motion=reduced] .anim-dying{animation:calm-out .5s ease-in forwards}:root[data-motion=reduced] .announce{animation-duration:.9s}@media(max-width:640px){body{font-size:13px}.topbar{gap:10px;padding:8px 10px;font-size:12px}.nav{padding:6px 10px;gap:3px}.nav button{padding:6px 10px;font-size:12px}.screen{padding:12px 10px 28px}.grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));column-gap:8px;row-gap:16px}.grid-compact{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));column-gap:7px;row-gap:13px}.panel{padding:12px}.battle{max-width:100%;gap:8px;padding:4px 0 16px;justify-content:flex-start}.battle .panel{padding:8px}.enemy-figure{padding:0 0 2px}.stage-field{min-height:148px;padding:6px 6px 0}.party-side,.enemy-side{height:140px}.party-weapon{left:26%;bottom:48%}.party-pet{left:28%;bottom:0}.party-character{bottom:12px}.orb-canvas canvas{width:min(96vw,340px)!important;height:auto!important}.affinity{gap:4px}.aff{font-size:9px;padding:1px 5px}.dmg-popup{font-size:17px;right:10px}.dmg-popup.crit{font-size:21px}.announce-text{font-size:20px}.viewer-backdrop{align-content:start;padding:12px}.viewer-stage{gap:16px}.viewer-info{min-width:0;max-width:100%}.viewer-close{top:10px;right:10px;padding:6px 10px}.reveal-backdrop{align-items:flex-start;justify-content:flex-start;padding:12px}.reveal-grid{grid-template-columns:repeat(auto-fit,104px);column-gap:8px;row-gap:14px;max-width:100%}.flip{width:104px;height:132px}.flip-face{padding:6px;gap:3px}.flip-front .name{font-size:10px}.reveal-actions{position:sticky;bottom:0;padding:10px 0;background:linear-gradient(transparent,#08090ef5 30%)}.reveal-actions button{font-size:12px;padding:7px 10px}.forge-stage{gap:16px}.card3d-stats{grid-template-columns:repeat(2,1fr)}}@media(max-height:620px){.reveal-backdrop{align-items:flex-start}.viewer-backdrop{align-content:start}}.briefing{max-width:520px;width:100%}.briefing-body{font-size:13px;line-height:1.8;color:var(--ink);border-left:2px solid var(--accent);padding-left:12px;margin:0 0 16px}.foe{text-align:center;min-width:84px}.foe .name{font-size:10px;margin-top:4px}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.toggle input{width:16px;height:16px;accent-color:var(--accent)}.packopen{position:fixed;inset:0;width:100%;height:100%;z-index:55;display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,#14162299,#06070c 70%);cursor:pointer}.packopen-glow{position:absolute;left:50%;top:50%;margin:-160px 0 0 -160px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,var(--tone) 0%,transparent 62%);opacity:0;animation:po-glow 1.4s ease-out forwards}.packopen-core{position:absolute;left:50%;top:50%;margin:-46px 0 0 -46px;width:92px;height:92px;border-radius:22px;background:linear-gradient(150deg,#2b3049,#171a26);border:1px solid var(--tone);display:grid;place-items:center;box-shadow:0 0 28px -6px var(--tone);animation:po-core 1.05s cubic-bezier(.4,0,.2,1) forwards}.packopen-count{font-size:18px;font-weight:800;color:var(--tone)}.packopen.burst .packopen-core{animation:po-pop .38s ease-out forwards}.packopen-ring{position:absolute;left:50%;top:50%;margin:-45px 0 0 -45px;width:90px;height:90px;border-radius:50%;border:3px solid var(--tone);opacity:0}.packopen.burst .packopen-ring{animation:po-ring .42s ease-out forwards}.packopen-shards{position:absolute;left:50%;top:50%;width:0;height:0}.packopen-shards i{position:absolute;width:3px;height:26px;margin:-13px 0 0 -1.5px;background:linear-gradient(var(--tone),transparent);opacity:0;transform-origin:50% 50%}.packopen.burst .packopen-shards i{animation:po-shard .46s ease-out forwards}.packopen{--tone: #9aa0bd}.packopen.tone-1{--tone: #ffa64d}.packopen.tone-2{--tone: #ffe066}.packopen.tone-3{--tone: #b8b8ff}.packopen.tone-4{--tone: #c77dff}@keyframes po-glow{0%{opacity:0}55%{opacity:.5}to{opacity:0}}@keyframes po-core{0%{transform:translateY(-140px) scale(.5) rotate(-14deg);opacity:0}45%{transform:translateY(0) scale(1) rotate(0);opacity:1}70%{transform:translateY(0) scale(.94) rotate(3deg)}to{transform:translateY(0) scale(1.04) rotate(-2deg)}}@keyframes po-pop{0%{transform:scale(1.04);opacity:1}to{transform:scale(2.1);opacity:0;filter:blur(4px)}}@keyframes po-ring{0%{transform:scale(.6);opacity:.9}to{transform:scale(3.4);opacity:0}}@keyframes po-shard{0%{opacity:1;translate:0 0}to{opacity:0;translate:0 -110px}}:root[data-motion=reduced] .packopen-core{animation:calm-in .45s ease-out both;transform:none}:root[data-motion=reduced] .packopen-glow{animation:calm-glow 1.1s ease-in-out both;transform:none}:root[data-motion=reduced] .packopen-ring,:root[data-motion=reduced] .packopen-shards i{display:none}.briefing-rewards{background:#ffffff08;border-radius:8px;padding:10px;margin-top:8px}.briefing-foes{background:#ffffff08;border-radius:8px;padding:10px}.binder{position:relative;background:linear-gradient(160deg,#2a2036,#1a1622);border:1px solid #3a3350;border-radius:10px;padding:16px 16px 16px 30px;box-shadow:inset 0 0 60px -20px #000}.binder-rings{position:absolute;left:11px;top:22px;bottom:22px;display:flex;flex-direction:column;justify-content:space-between}.binder-rings i{width:9px;height:9px;border-radius:50%;background:linear-gradient(180deg,#9aa0bd,#4a4f6b);box-shadow:0 1px 2px #0008}.binder-page{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px}.binder-slot{position:relative;aspect-ratio:3 / 4;border-radius:6px;background:#ffffff08;border:1px dashed #ffffff1f;display:grid;place-items:center;padding:0}.binder-slot.filled{background:#0f111a;border-style:solid;cursor:zoom-in;overflow:hidden}.binder-count{position:absolute;right:3px;bottom:3px;font-size:9px;background:#000a;border-radius:3px;padding:0 3px;color:var(--ink)}.binder-lock{position:absolute;left:3px;top:3px;font-size:9px}.shelves{display:flex;flex-direction:column;gap:4px}.shelf{position:relative}.shelf-items{display:flex;gap:14px;align-items:flex-end;justify-content:flex-start;padding:10px 14px 0;flex-wrap:wrap}.shelf-item{position:relative;background:none;border:0;padding:0 0 6px;cursor:zoom-in;border-radius:6px}.shelf-shadow{position:absolute;left:50%;bottom:2px;width:46px;height:7px;transform:translate(-50%);border-radius:50%;background:radial-gradient(ellipse,#000a,transparent 70%)}.shelf-plank{height:12px;border-radius:3px;background:linear-gradient(180deg,#4a3b2c,#2c231a);box-shadow:0 3px 10px -3px #000,inset 0 1px #7a6248}@media(max-width:640px){.binder{padding:12px 12px 12px 26px}.binder-page{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));column-gap:7px;row-gap:12px}.shelf-items{gap:10px;padding:8px 8px 0}}.anim-charging{animation:enemy-charge .7s ease-in-out}@keyframes enemy-charge{0%{transform:scale(1);filter:none}60%{transform:scale(1.14) translateY(-6px);filter:brightness(1.8) saturate(1.4)}to{transform:scale(1.06);filter:brightness(1.3)}}.charge-warning{position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(circle at 50% 40%,#ff6b6b55,transparent 62%);animation:charge-pulse .7s ease-in-out}@keyframes charge-pulse{0%,to{opacity:0}50%{opacity:1}}:root[data-motion=reduced] .anim-charging{animation:none}:root[data-motion=reduced] .charge-warning{animation:calm-glow .9s ease-in-out infinite}.cardback{position:absolute;inset:0;border-radius:inherit;overflow:hidden;background:hsl(var(--hue) 30% 12%);display:grid;place-items:center}.cardback-field{position:absolute;inset:0;opacity:.4}.lattice-0 .cardback-field{background:repeating-linear-gradient(45deg,hsl(var(--hue) 40% 20%) 0 6px,transparent 6px 12px),repeating-linear-gradient(-45deg,hsl(var(--hue) 40% 18%) 0 6px,transparent 6px 12px)}.lattice-1 .cardback-field{background:repeating-conic-gradient(from 0deg,hsl(var(--hue) 42% 19%) 0 12deg,transparent 12deg 24deg)}.lattice-2 .cardback-field{background:radial-gradient(circle at 50% 50%,hsl(var(--hue) 45% 22%) 0 2px,transparent 3px) 0 0 / 18px 18px,radial-gradient(circle at 50% 50%,hsl(var(--hue) 45% 18%) 0 2px,transparent 3px) 9px 9px / 18px 18px}.cardback-frame{position:absolute;inset:8px;border-radius:8px;border:2px solid var(--rar);box-shadow:inset 0 0 0 1px #0006,0 0 12px -4px var(--rar)}.cardback-frame:after{content:"";position:absolute;inset:5px;border-radius:5px;border:1px solid color-mix(in srgb,var(--rar) 45%,transparent)}.cardback-medallion{position:relative;width:36%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,hsl(var(--hue) 35% 26%),hsl(var(--hue) 40% 12%) 70%);border:2px solid var(--rar);display:grid;place-items:center;box-shadow:0 0 18px -6px var(--rar),inset 0 0 14px -6px #000}.cardback-initials{font-size:15px;font-weight:800;letter-spacing:.06em;color:var(--rar);text-shadow:0 1px 3px #000}.cardback-corners{position:absolute;inset:14px}.cardback-corners i{position:absolute;width:10px;height:10px;border:2px solid var(--rar);opacity:.9}.cardback-corners i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.cardback-corners i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}.cardback-corners i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.cardback-corners i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}.corners-8 i:nth-child(5){left:50%;top:0;width:3px;height:3px;transform:translate(-50%) rotate(45deg)}.corners-8 i:nth-child(6){left:50%;bottom:0;width:3px;height:3px;transform:translate(-50%) rotate(45deg)}.corners-8 i:nth-child(7){left:0;top:50%;width:3px;height:3px;transform:translateY(-50%) rotate(45deg)}.corners-8 i:nth-child(8){right:0;top:50%;width:3px;height:3px;transform:translateY(-50%) rotate(45deg)}.cardback-plate{position:absolute;bottom:22px;left:50%;transform:translate(-50%);display:flex;gap:6px;align-items:center;max-width:74%;font-size:9px;letter-spacing:.08em;color:color-mix(in srgb,var(--rar) 70%,#fff);background:#0009;border-radius:99px;padding:3px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cardback-grade{color:var(--rar)}.cardback-sheen{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 38%,#fff 50%,transparent 62%);opacity:var(--sheen-a, 0)}.cardback.tier-3 .cardback-sheen,.cardback.tier-4 .cardback-sheen{background:linear-gradient(115deg,transparent 36%,#ffffffcc 48%,transparent 60%);background-size:220% 100%;animation:foil 3.4s linear infinite;opacity:calc(var(--sheen-a, 0) + .1);mix-blend-mode:screen}.cardback.tier-4 .cardback-sheen{background:linear-gradient(115deg,transparent 36%,#ffffffcc 48%,transparent 60%),conic-gradient(from 0deg,#ff5f6d33,#ffc37133,#6dd5ed33,#b06ab333,#ff5f6d33);background-size:220% 100%,160% 160%;animation:foil 3.4s linear infinite}.pill-quality b{letter-spacing:-1px;margin-right:1px}.pill-element{background:color-mix(in srgb,currentColor 12%,transparent)}.pill-quality{background:color-mix(in srgb,currentColor 10%,transparent)}.raid{border-color:color-mix(in srgb,var(--eternal) 40%,var(--line))}.raid-stars{color:var(--divine);font-size:11px;letter-spacing:1px}.price{font-size:12px;color:var(--accent);margin-top:2px}.price b{font-size:14px}.habitats{display:flex;flex-direction:column;gap:16px}.habitat{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line);min-height:130px}.habitat.aquarium{background:linear-gradient(180deg,#123049,#0b1c2e 55%,#071320);box-shadow:inset 0 0 70px -18px #6dd5ed55}.habitat.aviary{background:linear-gradient(180deg,#2a2440,#1d1b30 55%,#14121f);box-shadow:inset 0 0 70px -20px #b07bff44}.habitat.enclosure{background:linear-gradient(180deg,#1b2a1a,#16211a 60%,#101711);box-shadow:inset 0 0 70px -22px #7ad17a44}.habitat-label{position:absolute;left:10px;top:8px;z-index:4;font-size:10px;color:var(--muted);background:#0007;border-radius:99px;padding:2px 8px}.aquarium-floor{position:absolute;left:0;right:0;bottom:0;height:34px;background:linear-gradient(180deg,transparent,#06121c)}.aviary-floor{position:absolute;left:0;right:0;bottom:0;height:30px;background:linear-gradient(180deg,transparent,#100e1a)}.enclosure-floor{position:absolute;left:0;right:0;bottom:0;height:40px;background:linear-gradient(180deg,transparent,#0d1410 70%);border-top:1px solid #2a3a26}.critter{position:absolute;background:none;border:0;padding:0;cursor:zoom-in;z-index:2;border-radius:6px}.critter-aquarium{animation:swim linear infinite alternate}.critter-aviary{animation:flit ease-in-out infinite alternate}.critter-enclosure{animation:roam ease-in-out infinite alternate}@keyframes swim{0%{transform:translate(0) rotate(-2deg)}30%{transform:translate(34px,-14px) rotate(2deg)}60%{transform:translate(8px,16px) rotate(-3deg)}to{transform:translate(48px,4px) rotate(1deg)}}@keyframes flit{0%{transform:translate(0) rotate(-6deg)}25%{transform:translate(24px,-26px) rotate(5deg)}55%{transform:translate(-12px,-12px) rotate(-4deg)}to{transform:translate(30px,-34px) rotate(6deg)}}@keyframes roam{0%{transform:translate(0) scaleX(1)}45%{transform:translate(40px,4px) scaleX(1)}50%{transform:translate(42px) scaleX(-1)}to{transform:translate(2px,8px) scaleX(-1)}}.bubbles{position:absolute;inset:0;z-index:1;pointer-events:none}.bubbles i{position:absolute;bottom:-12px;width:6px;height:6px;border-radius:50%;background:#bfe3ff33;border:1px solid #bfe3ff55;animation:bubble 6s linear infinite}@keyframes bubble{0%{transform:translateY(0) scale(.6);opacity:0}15%{opacity:.8}to{transform:translateY(-300px) scale(1.1);opacity:0}}:root[data-motion=reduced] .critter-aquarium,:root[data-motion=reduced] .critter-aviary,:root[data-motion=reduced] .critter-enclosure,:root[data-motion=reduced] .bubbles i{animation:none}@media(max-width:640px){.habitat{max-height:230px}}.forge-arrow{color:var(--accent);font-weight:700;margin:0 2px}.forge-step{align-items:center;row-gap:6px}.forge-was{display:inline-flex;gap:6px;opacity:.5}.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{background:var(--panel-2);color:var(--muted);border:1px solid var(--line);padding:7px 14px;border-radius:6px;cursor:pointer;font:inherit;white-space:nowrap}.seg button.on{background:var(--accent);color:#1a1a1a;border-color:var(--accent)}.card-lock{position:absolute;top:5px;left:6px;z-index:3;font-size:11px;line-height:1;filter:drop-shadow(0 1px 2px #000)}.bulk-sell{max-width:820px;width:100%;max-height:84vh;display:flex;flex-direction:column}.bulk-summary{margin-bottom:12px}.bulk-list{overflow-y:auto;min-height:0}button.primary.danger{background:var(--danger);border-color:var(--danger);color:#fff}.battle-you{position:relative}.hp-bar{height:10px;position:relative}.hp-bar>i{position:absolute;left:0;top:0;height:100%}.hp-ghost{background:var(--danger);opacity:.55;transition:width .3s ease-out .12s}.hp-fill{background:var(--accent)}.battle-you.is-bracing{animation:brace-shake .34s ease-in-out infinite}.battle-you.is-bracing:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:8px;box-shadow:inset 0 0 34px -6px var(--danger);animation:brace-pulse .34s ease-in-out infinite}.statblock.is-bracing .hp-fill{animation:brace-flicker .18s steps(2) infinite}@keyframes brace-shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes brace-pulse{0%,to{opacity:.45}50%{opacity:.9}}@keyframes brace-flicker{0%{filter:none}to{filter:brightness(1.5)}}.hp-feed{position:absolute;right:12px;top:6px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:2px;pointer-events:none}.hp-float{font-weight:700;font-size:14px;line-height:1.2;text-shadow:0 1px 3px #000,0 0 10px #0009;animation:hp-rise 1.4s ease-out forwards}.hp-hit{color:var(--danger)}.hp-super{color:#fff;font-size:20px;text-shadow:0 0 12px var(--danger),0 1px 3px #000}.hp-poison{color:#9ae66e}.hp-heal{color:var(--accent)}.hp-dodge,.hp-status{color:var(--muted);font-size:12px}.hp-status{color:#c9a7ff}@keyframes hp-rise{0%{opacity:0;transform:translateY(6px) scale(.9)}12%{opacity:1;transform:translateY(0) scale(1.08)}22%{transform:translateY(0) scale(1)}70%{opacity:1}to{opacity:0;transform:translateY(-18px)}}.status.is-applied{animation:status-land .7s cubic-bezier(.2,1.4,.4,1)}.status.is-ticking{animation:status-bite .6s ease-out}@keyframes status-land{0%{opacity:0;transform:scale(.6);box-shadow:0 0 0 0 currentColor}40%{opacity:1;transform:scale(1.18);box-shadow:0 0 0 6px transparent}to{transform:scale(1);box-shadow:0 0 0 0 transparent}}@keyframes status-bite{0%,to{transform:scale(1);filter:none}35%{transform:scale(1.12);filter:brightness(1.6)}}:root[data-motion=reduced] .battle-you.is-bracing,:root[data-motion=reduced] .battle-you.is-bracing:after,:root[data-motion=reduced] .statblock.is-bracing .hp-fill{animation:none}:root[data-motion=reduced] .hp-float{animation:calm-hold 1.2s ease-out forwards}:root[data-motion=reduced] .status.is-applied,:root[data-motion=reduced] .status.is-ticking{animation:calm-in .3s ease-out}.element-effect{position:absolute;inset:0;margin:auto;width:192px;height:192px;max-width:100%;pointer-events:none;z-index:4;image-rendering:pixelated;background-repeat:no-repeat}.charge{display:flex;align-items:center;gap:8px;margin-bottom:6px}.charge-bar{flex:1;height:8px;border-radius:99px;overflow:hidden;background:var(--panel-2);position:relative}.charge-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--rar, var(--accent)),#fff);transition:width .25s ease-out}.charge.is-ready .charge-bar>i{animation:charge-ready 1.1s ease-in-out infinite}@keyframes charge-ready{0%,to{filter:brightness(1)}50%{filter:brightness(1.7)}}.skill-button{padding:5px 12px;white-space:nowrap;cursor:pointer;border-radius:6px;font:inherit;font-size:12px;background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}.skill-button.is-ready{background:var(--accent);color:#1a1a1a;border-color:var(--accent);animation:charge-ready 1.1s ease-in-out infinite}.skill-button:disabled{cursor:default}:root[data-motion=reduced] .skill-button.is-ready,:root[data-motion=reduced] .charge.is-ready .charge-bar>i{animation:none}.quest-mod{display:flex;flex-direction:column;gap:2px;margin-bottom:10px;padding:7px 9px;border-radius:6px;font-size:11px;background:color-mix(in srgb,var(--accent) 9%,transparent);border-left:2px solid var(--accent)}.quest-mod b{color:var(--accent)}.quest-mod span{color:var(--muted)}.almanac-grid{display:grid;gap:10px;margin-bottom:16px;grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}.almanac-cell{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.almanac-cell b{display:block;font-size:19px;line-height:1.3}.almanac-cell span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.rarity-bars{display:flex;flex-direction:column;gap:5px}.rarity-bar{display:grid;grid-template-columns:78px 1fr 54px;gap:8px;align-items:center}.rarity-bar .bar{height:8px}.rarity-bar .bar>i{background:var(--rar)}.rarity-bar em{font-style:normal;font-size:11px;text-transform:capitalize}.rarity-bar u{text-decoration:none;font-size:11px;color:var(--muted);text-align:right}.set-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;background:var(--panel);border:1px solid var(--line);margin-bottom:6px}.set-row.is-complete{border-color:var(--accent)}.set-row .bar{height:7px;margin-top:5px}.set-tick{color:var(--accent);font-weight:700}.habitat-stage{position:fixed;inset:0;z-index:60;padding:14px;background:#08090ef0;display:flex;align-items:stretch;justify-content:stretch}.habitat.is-full{flex:1;height:auto;min-height:0;border-radius:12px}.habitat.is-full .critter{transform:scale(1.5)}.habitat.is-full .habitat-label{font-size:13px;padding:4px 12px}.habitat-full{position:absolute;right:8px;top:8px;z-index:5;width:26px;height:26px;display:grid;place-items:center;padding:0;font-size:13px;line-height:1;cursor:pointer;background:#0007;color:var(--muted);border:1px solid var(--line);border-radius:6px}.habitat-full:hover{color:var(--ink);border-color:var(--accent)}.aff-tier{border-color:var(--accent)!important;color:var(--accent)}.arena-head{gap:22px;flex-wrap:wrap;margin-bottom:14px}.arena-run{margin-bottom:14px;border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.arena-floor.is-champion{border-color:var(--eternal)}.arena-tag{color:var(--meta);border:1px solid currentColor;border-radius:99px;padding:0 6px;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.skill-carry{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.skill-slot{flex:1 1 150px;min-width:130px;padding:8px 10px;border-radius:8px;background:var(--panel);border:1px dashed var(--line);text-align:center;color:inherit;font:inherit}.skill-slot.is-set{border-style:solid;border-color:var(--accent);cursor:pointer}.skill-slot.is-set:hover{border-color:var(--danger)}.skill-slot .meta{justify-content:center}.skill-card{display:flex;flex-direction:column;gap:8px}.skill-card .meta{min-height:0}.skill-card.is-owned{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.skill-card.is-carried{border-color:var(--accent);background:linear-gradient(color-mix(in srgb,var(--accent) 7%,transparent),transparent 65%),var(--panel)}.skill-card.is-spire{border-style:dashed}.skill-card button{margin-top:auto}.charge-bar>b{position:absolute;top:0;bottom:0;width:2px;background:#fff5;transform:translate(-1px)}.help{max-width:780px}.help-section{margin-bottom:26px}.help-section h3{margin:0 0 8px;font-size:14px;color:var(--accent);border-bottom:1px solid var(--line);padding-bottom:6px}.help-section p{font-size:12px;line-height:1.75;margin:0 0 10px}.help-chips{display:flex;gap:5px;flex-wrap:wrap}.help-table{width:100%;border-collapse:collapse;font-size:11px;margin:8px 0 12px;display:block;overflow-x:auto}.help-table th,.help-table td{text-align:left;padding:5px 10px 5px 0;border-bottom:1px solid var(--line);vertical-align:top}.help-table th{color:var(--muted);font-weight:600;white-space:nowrap}.portal-stage{flex-direction:column;gap:18px}.portal{position:relative;width:280px;height:280px;display:grid;place-items:center}.portal-eye{position:absolute;left:50%;top:50%;margin:-110px 0 0 -110px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,var(--rar) 0%,#0b0d16 62%,transparent 72%);filter:blur(2px);animation:portal-open 1.5s cubic-bezier(.2,.9,.25,1) both}.portal-ring{position:absolute;left:50%;top:50%;margin:-120px 0 0 -120px;width:240px;height:240px;border-radius:50%;border:2px solid var(--rar);opacity:0;animation:portal-ring 1.5s ease-out both}.portal-ring-2{animation-delay:.18s;border-style:dashed}.portal-rays{position:absolute;left:50%;top:50%;margin:-150px 0 0 -150px;width:300px;height:300px;opacity:0;background:repeating-conic-gradient(from 0deg,var(--rar) 0 1.5deg,transparent 1.5deg 16deg);mask:radial-gradient(circle,transparent 38%,#000 62%,transparent 78%);-webkit-mask:radial-gradient(circle,transparent 38%,#000 62%,transparent 78%);animation:portal-rays 1.7s ease-out both}.portal-art{position:relative;z-index:2;animation:portal-emerge 1.5s cubic-bezier(.2,1.1,.3,1) both}.portal-shards{position:absolute;left:50%;top:50%;width:0;height:0}.portal-shards i{position:absolute;width:2px;height:34px;margin:-17px 0 0 -1px;background:linear-gradient(var(--rar),transparent);opacity:0;transform-origin:50% 50%;animation:portal-shard 1.1s ease-out .55s both}.portal-copy{text-align:center;z-index:2}@keyframes portal-open{0%{transform:scale(0) rotate(0);opacity:0}40%{transform:scale(1.06) rotate(120deg);opacity:1}to{transform:scale(1) rotate(200deg);opacity:.92}}@keyframes portal-ring{0%{transform:scale(.2) rotate(0);opacity:0}35%{opacity:1}to{transform:scale(1) rotate(180deg);opacity:.5}}@keyframes portal-rays{0%{transform:scale(.4) rotate(0);opacity:0}45%{opacity:.55}to{transform:scale(1.1) rotate(90deg);opacity:0}}@keyframes portal-emerge{0%{transform:scale(.1) translateY(26px);opacity:0;filter:brightness(3)}45%{opacity:0}62%{transform:scale(1.16) translateY(-6px);opacity:1;filter:brightness(1.8)}to{transform:scale(1) translateY(0);opacity:1;filter:brightness(1)}}@keyframes portal-shard{0%{transform:rotate(inherit) translateY(0);opacity:0}20%{opacity:1}to{opacity:0}}.mint-bar{gap:10px;flex-wrap:wrap;margin-bottom:14px}.arena-warning{border-left:2px solid var(--danger);padding-left:10px}.arena-apotheosis{margin-bottom:14px;border-style:dashed}.arena-apotheosis.is-ascended{border-style:solid;border-color:var(--meta);background:linear-gradient(color-mix(in srgb,var(--meta) 10%,transparent),transparent 70%),var(--panel)}.arena-apotheosis .name{color:var(--meta)}:root[data-motion=reduced] .portal-eye,:root[data-motion=reduced] .portal-ring,:root[data-motion=reduced] .portal-rays,:root[data-motion=reduced] .portal-shards i{animation:calm-in .3s ease-out both}:root[data-motion=reduced] .portal-art{animation:calm-in .4s ease-out both}.gift-button{position:relative;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:4px 9px;font-size:15px;line-height:1.2;cursor:pointer;color:inherit}.gift-button.has-gifts{border-color:var(--accent);animation:gift-nudge 2.6s ease-in-out infinite}.gift-badge{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;display:grid;place-items:center;padding:0 4px;background:var(--accent);color:#1a1a1a;border-radius:99px;font-size:10px;font-weight:700}@keyframes gift-nudge{0%,88%,to{transform:rotate(0)}91%{transform:rotate(-9deg)}95%{transform:rotate(9deg)}}.gift-panel{max-width:560px;width:100%}.gift-open{font-size:56px;text-align:center;animation:gift-pop .6s cubic-bezier(.2,1.5,.4,1)}.gift-open.is-empty{opacity:.35;animation:none}@keyframes gift-pop{0%{transform:scale(.4) rotate(-12deg);opacity:0}60%{transform:scale(1.15) rotate(4deg);opacity:1}to{transform:scale(1) rotate(0)}}.gift-row{display:flex;gap:8px;flex-wrap:wrap}.gift-tile{flex:1 1 84px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:8px;text-align:center}.gift-tile.is-special{border-color:var(--accent)}.gift-icon{font-size:22px}.gift-special{color:var(--accent)}.machine-peek{background:none;border:0;padding:0;cursor:zoom-in;color:inherit;position:relative;display:block;border-radius:8px}.machine-peek:hover{outline:1px solid var(--accent);outline-offset:2px}.machine-peek-hint{position:absolute;left:0;right:0;bottom:0;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:linear-gradient(transparent,#000a 55%);border-radius:0 0 8px 8px}.pool-preview{max-width:860px;width:100%;max-height:86vh;display:flex;flex-direction:column}.pool-odds{margin-bottom:10px}.pool-odds-row{display:flex;flex-wrap:wrap;gap:4px 12px;margin-bottom:6px}.pool-odd{display:inline-flex;gap:5px;font-size:11px}.pool-odd b{text-transform:capitalize}.pool-odd span{color:var(--muted)}.pool-list{overflow-y:auto;min-height:0}.pool-series{position:sticky;top:0;z-index:1;background:var(--panel);padding:6px 0;margin-top:6px;font-weight:700}.pool-card{position:relative}.pool-card.is-missing{opacity:.55;border-style:dashed}.pool-have{position:absolute;top:4px;right:6px;color:var(--accent);font-size:12px;font-weight:700}:root[data-motion=reduced] .gift-button.has-gifts,:root[data-motion=reduced] .gift-open{animation:none}.trade-panel{max-width:720px;width:100%;max-height:84vh;display:flex;flex-direction:column}.trade-body{display:flex;flex-direction:column;min-height:0}.trade-list{overflow-y:auto;min-height:0}.trade-confirm{gap:10px;margin-bottom:12px;flex-wrap:wrap}.trade-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.04em;line-height:1.7;word-break:break-all;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:10px;user-select:all}.trade-input{width:100%;padding:10px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.forge-ladder{flex-wrap:wrap}.forge-rung{display:inline-flex;align-items:center;gap:4px}@keyframes calm-in{0%{opacity:0}to{opacity:1}}@keyframes calm-out{0%{opacity:1}to{opacity:0}}@keyframes calm-hold{0%{opacity:0}25%{opacity:1}75%{opacity:1}to{opacity:0}}@keyframes calm-glow{0%,to{opacity:.25}50%{opacity:.85}}.levelup-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 45%,#3a2f1499,#08090eed 62%);animation:levelup-veil .3s ease-out}.levelup-backdrop.is-leaving{animation:levelup-veil .26s ease-in reverse}.levelup{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--accent);border-radius:14px;padding:26px 30px;text-align:center;max-width:380px;width:100%;box-shadow:0 0 60px -18px var(--accent);animation:levelup-pop .5s cubic-bezier(.2,1.5,.4,1)}.is-leaving .levelup{animation:levelup-pop .24s ease-in reverse}.levelup-rays{position:absolute;inset:-60%;pointer-events:none;background:conic-gradient(from 0deg,transparent 0deg,#ffd16622 16deg,transparent 34deg,transparent 90deg,#ffd16622 106deg,transparent 124deg,transparent 180deg,#ffd16622 196deg,transparent 214deg,transparent 270deg,#ffd16622 286deg,transparent 304deg,transparent 360deg);animation:levelup-spin 9s linear infinite}.levelup>*:not(.levelup-rays){position:relative}.levelup-kicker{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.levelup-number{display:flex;align-items:baseline;justify-content:center;gap:10px;margin:6px 0 12px}.levelup-number b{font-size:54px;line-height:1;color:var(--accent)}.levelup-from{font-size:22px;color:var(--muted)}.levelup-arrow{color:var(--muted)}.levelup-spoils{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.levelup-spoil{font-size:12px;padding:3px 10px;border-radius:99px;border:1px solid var(--line);background:var(--panel-2)}.levelup-next{margin:10px 0 14px}@keyframes levelup-veil{0%{opacity:0}to{opacity:1}}@keyframes levelup-pop{0%{opacity:0;transform:scale(.82) translateY(14px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes levelup-spin{to{transform:rotate(360deg)}}:root[data-motion=reduced] .levelup-rays{animation:none}:root[data-motion=reduced] .levelup{animation:calm-in .3s ease-out}:root[data-motion=reduced] .is-leaving .levelup{animation:none}.levelup-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--accent);border-radius:10px;padding:8px 12px;margin-bottom:12px;background:linear-gradient(90deg,#ffd1661f,transparent);animation:levelup-note-in .6s cubic-bezier(.2,1.4,.4,1)}.levelup-note b{color:var(--accent)}@keyframes levelup-note-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}:root[data-motion=reduced] .levelup-note{animation:calm-in .3s ease-out}.presets{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;padding:8px 12px}.preset{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:99px;overflow:hidden;background:var(--panel-2)}.preset-wear{border:0;background:none;color:var(--ink);font:inherit;font-size:12px;padding:4px 4px 4px 12px;cursor:pointer}.preset-wear:hover{color:var(--accent)}.preset-drop{border:0;background:none;color:var(--muted);font:inherit;font-size:11px;padding:4px 10px 4px 6px;cursor:pointer}.preset-drop:hover{color:var(--danger)}.preset-rename{font:inherit;font-size:12px;padding:4px 12px;border-radius:99px;border:1px solid var(--accent);background:var(--panel-2);color:var(--ink);max-width:140px}.fervor{display:flex;align-items:center;gap:8px;margin:0 auto 6px;max-width:288px;width:100%}.fervor-name{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.fervor-mult{font-size:11px;color:var(--ink);font-weight:700}.fervor-bar{flex:1;height:4px;border-radius:99px;overflow:hidden;background:var(--panel-2);border:1px solid var(--line)}.fervor-bar i{display:block;height:100%;background:var(--accent);transition:width .09s linear}.fervor.is-peak .fervor-name{animation:fervor-peak 1.1s ease-in-out infinite}.fervor.is-peak .fervor-bar i{background:#fff;box-shadow:0 0 8px var(--accent)}@keyframes fervor-peak{0%,to{opacity:1}50%{opacity:.55}}:root[data-motion=reduced] .fervor.is-peak .fervor-name{animation:none}:root[data-motion=reduced] .fervor-bar i{transition:none}.meta.is-trance{color:var(--accent)}.meta.is-trance b{font-size:15px}.tower-climb{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}.tower-climb .primary{padding:10px 22px;font-size:15px}.tower-exits{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px;padding-top:14px;border-top:1px solid var(--line)}@media(max-width:640px){.tower-climb .primary{width:100%}.tower-exits{margin-top:26px}.tower-exits button{flex:1}}.pill-awaken{color:var(--accent);border-color:var(--accent);font-weight:700;letter-spacing:.04em}.awaken-mark{color:var(--accent);font-weight:700;font-size:10px;letter-spacing:0}.is-awakened{box-shadow:inset 0 0 0 1px var(--accent),0 0 14px -6px var(--accent)}.card.is-awakened,.doll-slot.is-awakened{border-color:var(--accent)}.training-readout{margin:0 auto 8px;max-width:460px;width:100%}.training-readout .stat b{color:var(--accent)}.training-readout .meta{margin-top:6px;line-height:1.5}.training-picker{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.training-el{display:flex;align-items:center;gap:8px;font:inherit;font-size:12px;padding:6px 12px;border-radius:8px;background:var(--panel-2);border:1px solid var(--line);color:var(--ink);cursor:pointer}.training-el:hover{border-color:var(--accent)}.training-el.on{background:var(--panel);box-shadow:0 0 0 1px currentColor inset}.training-el b{color:var(--muted)}.training-el.is-strong b{color:#7ee787}.training-el.is-weak b{color:#ff8fa3}
