:root{--bg:#231b38;--card:#2e2450;--card2:#382c62;--line:#5d4d96;--text:#f4efff;--dim:#a99fc9;--accent:#ffd36b;font-family:Nunito,Trebuchet MS,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);touch-action:none;-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}#app,#game{position:fixed;inset:0}.overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10;background:#140e24b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.hidden{display:none}.menu-card{background:var(--card);border:2px solid var(--line);touch-action:pan-y;border-radius:24px;width:min(880px,100%);max-height:100%;padding:28px 32px;overflow-y:auto;box-shadow:0 20px 60px #00000073}.menu-card.small{text-align:center;width:min(460px,100%)}h1{letter-spacing:1px;margin:0;font-size:44px;font-weight:900}h2{text-transform:uppercase;letter-spacing:2px;color:var(--dim);margin:22px 0 10px;font-size:14px;font-weight:800}.logo-cat{color:var(--accent)}.sub{color:var(--dim);margin:4px 0 0;font-weight:700}.dim{color:var(--dim);font-size:14px}.cats{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.cat{background:var(--card2);color:var(--text);font:inherit;cursor:pointer;border:3px solid #0000;border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:12px 10px 14px;transition:transform .12s,border-color .12s;display:flex}.cat:hover{transform:translateY(-2px)}.cat.active{border-color:var(--c);box-shadow:0 0 0 4px color-mix(in srgb, var(--c) 25%, transparent)}.cat img{width:96px;height:96px}.cat strong{color:var(--c);font-size:20px;font-weight:900}.cat .el{color:var(--dim);font-size:13px;font-weight:800}.cat .ab{color:var(--dim);font-size:12px;line-height:1.35}.cat .ab b{color:var(--text)}.row{flex-wrap:wrap;gap:32px;display:flex}.seg{background:var(--card2);border-radius:14px;padding:4px;display:inline-flex}.seg button,select{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:10px 16px;font-size:16px;font-weight:800}.seg button.active{background:var(--accent);color:#2a1f45}select{background:var(--card2);border-radius:14px;min-width:180px;padding:14px 16px}button.play,button.ghost{font:inherit;cursor:pointer;border:0;border-radius:16px;padding:14px 40px;font-size:22px;font-weight:900;transition:transform .1s}button.play{background:var(--accent);color:#2a1f45;margin:26px auto 0;display:block;box-shadow:0 6px #c99a2e}button.play:active{transform:translateY(3px);box-shadow:0 3px #c99a2e}button.ghost{color:var(--text);border:2px solid var(--line);background:0 0}.buttons{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:22px;display:flex}.buttons button.play{margin:0}.help{background:var(--card2);border-radius:14px;margin-top:22px;padding:10px 16px;font-size:14px;line-height:1.5}.help summary{cursor:pointer;font-weight:800}.keys{border-spacing:10px 4px}.keys td:nth-child(odd){color:var(--accent);white-space:nowrap;font-weight:900}.score{color:var(--accent);margin:10px 0 0;font-size:56px;font-weight:900}.stats{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px;display:grid}.stats div{background:var(--card2);border-radius:14px;flex-direction:column;padding:10px;display:flex}.stats b{font-size:26px;font-weight:900}.stats span{color:var(--dim);font-size:13px}@media (max-width:700px){.menu-card{padding:20px 16px}.cats{grid-template-columns:repeat(2,1fr)}h1{font-size:34px}}.menu-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.wallet{background:var(--card2);border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:18px;font-weight:900;display:flex}.wallet span{align-items:center;gap:6px;margin-left:8px;display:inline-flex}.wallet .golden b{color:var(--accent)}.yarn{vertical-align:middle;flex:none}.h2row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.atelier-btn{font:inherit;color:#2a1f45;cursor:pointer;background:linear-gradient(135deg,#ff9ad0,#ffd36b);border:0;border-radius:14px;margin:12px 0 10px;padding:10px 16px;font-size:15px;font-weight:900;position:relative;box-shadow:0 4px #c2649a}.atelier-btn:active{transform:translateY(2px);box-shadow:0 2px #c2649a}.badge{color:#fff;border:2px solid var(--card);background:#ff4b6e;border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:12px;font-style:normal;font-weight:900;display:flex;position:absolute;top:-8px;right:-8px}.cat-av{justify-content:center;align-items:flex-end;height:128px;display:flex}.cat-av svg{width:auto;height:128px}.reward{flex-direction:column;gap:10px;margin-top:16px;display:flex}.reward-threads{justify-content:center;align-items:center;gap:8px;font-size:18px;font-weight:800;display:flex}.reward-threads b{color:var(--accent);font-size:26px}.reward-threads small{color:var(--dim);font-weight:700}.reward-bp{text-align:left;background:var(--card2);border:2px solid var(--rc);box-shadow:0 0 24px color-mix(in srgb, var(--rc) 35%, transparent);border-radius:16px;align-items:center;gap:12px;padding:8px 14px;animation:.5s cubic-bezier(.3,1.6,.5,1) pop-in;display:flex}.reward-bp .thumb svg{width:72px;height:auto}.reward-bp small{color:var(--dim);font-weight:800;display:block}.reward-bp strong{font-size:20px;font-weight:900;display:block}.reward-bp span{color:var(--rc);font-size:13px;font-weight:800}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}}.r-common{--rc:#b9b3cf}.r-rare{--rc:#4aa3ff}.r-epic{--rc:#b26bff}.r-legendary{--rc:#ffc93d}b.r-common,b.r-rare,b.r-epic,b.r-legendary{color:var(--rc)}.atelier-overlay{align-items:stretch;padding:12px}.atelier{background:var(--card);border:2px solid var(--line);border-radius:24px;flex-direction:column;width:min(1180px,100%);max-height:100%;margin:auto;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000073}.at-head{border-bottom:2px solid var(--line);align-items:center;gap:16px;padding:12px 18px;display:flex}.at-head h1{flex:1;font-size:30px}button.small{white-space:nowrap;border-radius:12px!important;padding:8px 14px!important;font-size:15px!important}button.play.small{align-items:center;gap:6px;margin:0;display:inline-flex;box-shadow:0 3px #c99a2e}button:disabled{opacity:.45;cursor:not-allowed}.at-body{flex:1;grid-template-columns:340px 1fr;min-height:0;display:grid}.stage-col{border-right:2px solid var(--line);touch-action:pan-y;flex-direction:column;gap:10px;padding:14px 16px;display:flex;overflow-y:auto}.char-tabs{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.char-tab{font:inherit;background:var(--card2);color:var(--text);cursor:pointer;border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:11px;font-weight:800;display:flex;overflow:hidden}.char-tab span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.char-tab.active{border-color:var(--c);background:color-mix(in srgb, var(--c) 18%, var(--card2))}.stage{background:radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--c) 35%, transparent), transparent 62%), linear-gradient(180deg, #2a2050, #1c1636);border-radius:20px;flex-direction:column;align-items:center;padding:6px 0 10px;display:flex;position:relative}.stage .avatar{z-index:1;width:250px;height:auto;position:relative}.podium{background:radial-gradient(ellipse, color-mix(in srgb, var(--c) 55%, #2a2050), #1c1636 70%);width:210px;height:36px;box-shadow:0 0 30px color-mix(in srgb, var(--c) 40%, transparent);border-radius:50%;position:absolute;bottom:62px}.class-tag{z-index:1;text-align:center;color:var(--dim);padding:0 12px;font-size:13px;position:relative}.class-tag b{color:var(--c)}.class-tag small{font-size:12px;display:block}.tryon{background:var(--card2);border:2px dashed var(--accent);border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:none}.tryon.show{display:flex}.tryon>div{flex:1;min-width:110px}.tryon small{color:var(--dim);text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:800;display:block}.tryon b{font-size:16px}.soon{color:var(--accent);font-size:13px;font-weight:800}.name-row{color:var(--dim);align-items:center;gap:10px;font-weight:800;display:flex}.name-row input{min-width:0;font:inherit;color:var(--text);background:var(--card2);border:2px solid var(--line);-webkit-user-select:text;user-select:text;border-radius:12px;flex:1;padding:8px 12px;font-size:18px;font-weight:900}.name-row input:focus{border-color:var(--accent);outline:none}.stage-buttons{justify-content:center;gap:8px;display:flex}.panel-col{flex-direction:column;min-width:0;min-height:0;display:flex}.tabs{border-bottom:2px solid var(--line);gap:4px;padding:10px 14px 0;display:flex;overflow-x:auto}.tabs button{font:inherit;color:var(--dim);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:12px 12px 0 0;padding:10px 16px;font-size:16px;font-weight:900;position:relative}.tabs button.active{color:var(--text);background:var(--card2)}.tabs .badge{top:0;right:-2px}.tab-body{touch-action:pan-y;flex:1;padding:4px 18px 18px;overflow-y:auto}.tab-body h3{text-transform:uppercase;letter-spacing:1.5px;color:var(--dim);align-items:center;gap:12px;margin:16px 0 8px;font-size:13px;font-weight:900;display:flex}.tab-body h4{color:var(--dim);margin:10px 0 6px;font-size:12px}.check{text-transform:none;letter-spacing:0;cursor:pointer;align-items:center;gap:6px;font-weight:800;display:inline-flex}.swatches{flex-wrap:wrap;gap:8px;display:flex}.sw{background:var(--sw);cursor:pointer;color:#2a1f45;border:3px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:transform .1s;display:flex}.sw:hover:not(:disabled){transform:scale(1.12)}.sw.active{box-shadow:0 0 0 3px var(--accent);border-color:#fff}.sw.legend{color:#6a4a00;background:conic-gradient(#fff3a0,#ffc93d,#e89a10,#fff3a0)}.pv-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;display:grid}.pv,.item{font:inherit;color:var(--text);background:var(--card2);cursor:pointer;border:2px solid #0000;border-radius:14px;flex-direction:column;align-items:center;padding:6px 4px 8px;transition:transform .1s,border-color .1s;display:flex}.pv:hover:not(:disabled),.item:hover{transform:translateY(-2px)}.pv span{align-items:center;gap:4px;font-size:12px;font-weight:800;display:inline-flex}.pv.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--card2))}.pv.legend{border-color:#ffc93d55}.slots{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.slot{font:inherit;color:var(--dim);background:var(--card2);cursor:pointer;border:2px solid #0000;border-radius:999px;padding:7px 14px;font-size:14px;font-weight:800}.slot.filled{color:var(--text)}.slot.filled:after{content:" •";color:var(--accent)}.slot.active{border-color:var(--accent);color:var(--text)}.items,.legend-row{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;margin-top:12px;display:grid}.item{border-color:color-mix(in srgb, var(--rc,#5d4d96) 55%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--rc,#5d4d96) 22%, var(--card2)), var(--card2) 60%);position:relative}.item .thumb{align-items:flex-end;height:104px;display:flex}.item .thumb svg{width:auto;height:104px}.thumb.empty{color:var(--dim);font-size:40px;align-items:center!important}.item strong{text-align:center;margin-top:2px;font-size:13px;font-weight:900;line-height:1.15}.item small{color:var(--rc,var(--dim));font-size:11px;font-weight:800}.item em{color:var(--dim);align-items:center;gap:4px;margin-top:4px;font-size:12px;font-style:normal;font-weight:800;display:inline-flex}.item em.worn{color:var(--accent)}.item em.price{color:var(--text)}.item.notowned .thumb{filter:saturate(.55)brightness(.85)}.item.worn{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.item.trying{border-style:dashed;border-color:var(--accent)}.item.r-legendary{background:linear-gradient(160deg, #6a4a10, var(--card2) 55%);overflow:hidden}.item.r-legendary:before{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 35%,#ffe69659 50%,#0000 65%) 0 0/250% 100%;animation:2.8s linear infinite shine;position:absolute;inset:0}.item.r-legendary.notowned .thumb{filter:none}@keyframes shine{0%{background-position:150% 0}to{background-position:-100% 0}}.hint{color:var(--dim);margin-top:14px;font-size:13px}.info-box{background:var(--card2);border-radius:14px;margin-top:12px;padding:4px 14px;font-size:14px;line-height:1.45}.info-box p{display:block}.info-box.gold{border:2px solid #ffc93d66}.gold-title{color:var(--accent)!important}.bp-list{flex-direction:column;gap:8px;display:flex}.bp{background:var(--card2);border-left:5px solid var(--rc);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:6px 12px;display:flex}.bp .thumb svg{width:56px;height:auto}.bp-text{flex:1;min-width:120px}.bp-text strong{display:block}.bp-text small{color:var(--rc);font-weight:800}.coll{background:var(--card2);border-radius:16px;margin-top:12px;padding:12px 14px}.coll-head{justify-content:space-between;gap:12px;display:flex}.coll-head strong{font-size:18px;font-weight:900;display:block}.coll-head small{color:var(--dim);font-size:13px}.coll-count{color:var(--accent);font-size:20px;font-weight:900}.bar{background:#1c1636;border-radius:5px;height:10px;margin:10px 0;overflow:hidden}.bar i{background:linear-gradient(90deg,#ff7eb6,#ffd36b);border-radius:5px;height:100%;display:block}.coll-items{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1.5px solid color-mix(in srgb, var(--rc) 60%, transparent);color:var(--dim);opacity:.6;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:800}.chip.have{opacity:1;color:var(--text);background:color-mix(in srgb, var(--rc) 25%, transparent)}.chip.bp{opacity:.9;border-style:dashed}.coll-reward{color:var(--dim);margin-top:10px;font-size:13px}.toast{background:var(--accent);color:#2a1f45;opacity:0;pointer-events:none;z-index:5;border-radius:999px;padding:10px 20px;font-weight:900;transition:opacity .2s,transform .2s;position:absolute;bottom:22px;left:50%;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}@media (max-width:820px){.at-body{touch-action:pan-y;display:block;overflow-y:auto}.stage-col{border-right:0;border-bottom:2px solid var(--line);overflow:visible}.stage .avatar{width:200px}.podium{width:170px;bottom:58px}.tab-body{overflow:visible}.at-head{flex-wrap:wrap;gap:8px 12px;padding:10px 12px}.at-head h1{font-size:24px}.at-head .wallet{order:3;justify-content:center;width:100%}.wallet{padding:4px 10px;font-size:15px}.panel-col{display:block}.tabs{z-index:2;background:var(--card);padding:8px 8px 0;position:sticky;top:0}.tabs button{padding:9px 11px;font-size:14px}.tab-body{padding:4px 12px 16px}.items,.legend-row{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.avatar.anim .av-body{transform-origin:120px 262px;animation:3.2s ease-in-out infinite av-breathe}.avatar.anim .av-head{transform-origin:120px 170px;animation:3.2s ease-in-out infinite av-bob}.avatar.anim .av-eye{transform-box:fill-box;transform-origin:50%;animation:4.6s infinite av-blink}.avatar.anim .av-tail{transform-origin:150px 244px;animation:2.6s ease-in-out infinite av-tail}.avatar.anim .av-twinkle,.avatar.anim .av-ember,.avatar.anim .av-flame,.avatar.anim .av-float{transform-box:fill-box;transform-origin:50%}.avatar.anim .av-twinkle{animation:1.8s ease-in-out infinite av-twinkle}.avatar.anim .av-pulse{transform-box:fill-box;transform-origin:50%;animation:2.2s ease-in-out infinite av-pulse}.avatar.anim .av-flap{transform-origin:120px 180px;animation:1.6s ease-in-out infinite av-flap}.avatar.anim .av-cape{transform-origin:120px 166px;animation:2.4s ease-in-out infinite av-cape}.avatar.anim .av-flame{transform-origin:50% 0;animation:.35s ease-in-out infinite alternate av-flame}.avatar.anim .av-zap{animation:.9s steps(2,end) infinite av-zap}.avatar.anim .av-float{animation:2.4s ease-in-out infinite av-float}.avatar.anim .av-ember{animation:1.8s ease-in infinite av-ember}.avatar.anim .av-steam{animation:2s ease-in-out infinite av-steam}.avatar.anim .av-scan{animation:1.6s ease-in-out infinite alternate av-scan}.avatar.anim .av-code{animation:.6s steps(2,end) infinite av-code}.avatar.anim .av-thread{animation:1s linear infinite av-thread}.avatar.anim .d1{animation-delay:-.6s!important}.avatar.anim .d2{animation-delay:-1.2s!important}@keyframes av-breathe{50%{transform:scale(1.025,.985)}}@keyframes av-bob{50%{transform:translateY(2.5px)rotate(-1.5deg)}}@keyframes av-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes av-tail{50%{transform:rotate(-9deg)}}@keyframes av-twinkle{50%{opacity:.5;transform:scale(.4)rotate(45deg)}}@keyframes av-pulse{50%{opacity:.7;transform:scale(1.06)}}@keyframes av-flap{50%{transform:scaleX(.9)}}@keyframes av-cape{50%{transform:skew(4deg)}}@keyframes av-flame{to{transform:scaleY(1.25)scaleX(.85)}}@keyframes av-zap{50%{opacity:.2}}@keyframes av-float{50%{transform:translateY(-8px)scale(1.1)}}@keyframes av-ember{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-40px)}}@keyframes av-steam{50%{opacity:.2;transform:translateY(-6px)}}@keyframes av-scan{to{transform:translate(84px)}}@keyframes av-code{50%{opacity:.45}}@keyframes av-thread{to{stroke-dashoffset:-20px}}@media (prefers-reduced-motion:reduce){.avatar.anim *{animation:none!important}}
