.menu{background:radial-gradient(at 50% 30%,#12285a 0%,#08122c 55%,#02050f 100%);place-items:center;transition:opacity .6s,transform .6s;display:grid;position:fixed;inset:0;overflow:hidden}.menu.leaving{opacity:0;transform:scale(1.08)}.menu-aurora{filter:blur(20px);background:radial-gradient(40% 30% at 25% 30%,#0ac8b940,#0000 70%),radial-gradient(35% 30% at 75% 25%,#785aff47,#0000 70%),radial-gradient(40% 35% at 55% 80%,#c8aa6e2e,#0000 70%);animation:16s ease-in-out infinite alternate aurora;position:absolute;inset:-20%}.menu-ball{background:linear-gradient(#0000 47%,#c8aa6e2e 47% 53%,#0000 53%);border:3px solid #c8aa6e2e;border-radius:50%;width:min(90vh,90vw);height:min(90vh,90vw);animation:60s linear infinite spin;position:absolute}.menu-ball:after{content:"";background:#0ac8b90f;border:3px solid #c8aa6e40;border-radius:50%;position:absolute;inset:40%}.menu-crystal{clip-path:polygon(50% 0,100% 35%,80% 100%,20% 100%,0 35%);filter:drop-shadow(0 0 24px #508cffcc);opacity:.55;background:linear-gradient(#7fb2ffd9,#2557d659);width:90px;height:220px;animation:6s ease-in-out infinite float;position:absolute}.menu-crystal.c0{bottom:-30px;left:6%;transform:rotate(-12deg)}.menu-crystal.c1{width:60px;height:150px;animation-delay:-2s;bottom:-60px;left:14%}.menu-crystal.c2{animation-delay:-1s;bottom:-40px;right:8%;transform:rotate(10deg)}.menu-crystal.c3{width:70px;height:170px;animation-delay:-3.5s;bottom:-70px;right:17%}.menu-particle{opacity:0;background:#9fd0ff;border-radius:50%;animation:linear infinite rise;position:absolute;bottom:-10px;box-shadow:0 0 8px 2px #78beffcc}.menu-content{z-index:2;text-align:center;flex-direction:column;align-items:center;gap:10px;animation:1s ease-out menuIn;display:flex;position:relative}.menu-kicker{letter-spacing:.5em;text-transform:uppercase;color:var(--teal);font-size:13px}.menu-title{letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(100deg,#8a6a2a 0%,#f0e6d2 25%,#c8aa6e 40%,#fff8e0 50%,#c8aa6e 60%,#8a6a2a 100%) 0 0/250% 100%;color:#0000;filter:drop-shadow(0 4px #3a2a08)drop-shadow(0 0 22px #c8aa6e73);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(56px,11vw,120px);font-weight:900;line-height:1;animation:5s linear infinite shimmer}.menu-subtitle{letter-spacing:.6em;text-transform:uppercase;color:var(--gold-hi);text-shadow:0 0 14px #0ac8b9b3;margin:-6px 0 0;font-size:clamp(18px,3vw,32px);font-weight:300}.menu-showcase{justify-content:center;align-items:flex-end;gap:4px;min-height:130px;margin:14px 0 8px;display:flex}.menu-showcase img{width:88px;height:88px;image-rendering:pixelated;filter:drop-shadow(0 8px 6px #0009);animation:2.4s ease-in-out infinite bob}.menu-showcase img.big{filter:drop-shadow(0 0 16px #ff6ebecc)drop-shadow(0 8px 6px #0009);width:128px;height:128px}.menu-buttons{flex-direction:column;gap:12px;width:280px;display:flex}.menu-play{letter-spacing:.3em;text-transform:uppercase;color:#fff;border:2px solid var(--teal);background:linear-gradient(#0e8f86,#064a47);padding:16px;font-size:22px;font-weight:800;animation:2.2s ease-in-out infinite pulse;position:relative;overflow:hidden;box-shadow:0 0 24px #0ac8b973}.menu-play:after{content:"";background:linear-gradient(100deg,#0000,#ffffff73,#0000);width:40%;animation:3s ease-in-out infinite sweep;position:absolute;top:0;bottom:0;left:-60%;transform:skew(-20deg)}.menu-play:hover:not(:disabled){transform:scale(1.05);box-shadow:0 0 40px #0ac8b9cc}.menu-secondary{letter-spacing:.2em;text-transform:uppercase;padding:12px;font-size:14px}.menu-footer{letter-spacing:.2em;text-transform:uppercase;color:var(--text);margin-top:10px;font-size:12px}.mode-heading{text-transform:uppercase;letter-spacing:.25em;color:var(--gold-hi);text-shadow:0 0 20px #c8aa6e80;margin:0;font-size:clamp(32px,5vw,56px)}.mode-cards{flex-wrap:wrap;justify-content:center;gap:28px;margin:24px 0 18px;display:flex}.mode-card{text-align:center;border:2px solid var(--gold-dim);background:linear-gradient(160deg,#14285ad9,#060c1ee6);border-radius:4px;flex-direction:column;align-items:center;gap:8px;width:300px;padding:22px 20px;transition:transform .25s,box-shadow .25s,border-color .25s;animation:.8s ease-out both menuIn;display:flex;position:relative;overflow:hidden}.mode-card:nth-child(2){animation-delay:.15s}.mode-card:hover:not(:disabled){border-color:var(--teal);transform:translateY(-8px)scale(1.03);box-shadow:0 0 36px #0ac8b980}.mode-card h3{text-transform:uppercase;letter-spacing:.2em;color:var(--gold);margin:0;font-size:26px}.mode-card p{color:var(--text);min-height:62px;margin:0;font-size:14px;line-height:1.45}.mode-sprites{justify-content:center;align-items:flex-end;height:110px;display:flex}.mode-sprites img{width:100px;height:100px;image-rendering:pixelated;filter:drop-shadow(0 8px 6px #0009);animation:2.4s ease-in-out infinite bob}.mode-sprites img+img{margin-left:-18px;animation-delay:.5s}.mode-cta{letter-spacing:.25em;text-transform:uppercase;color:#fff;border:1px solid var(--teal);background:linear-gradient(#0e8f86,#064a47);margin-top:6px;padding:8px 28px;font-size:14px;font-weight:800}.mode-card.locked{cursor:not-allowed;filter:grayscale(.7);opacity:.75}.mode-card.locked .mode-cta{color:var(--text);background:#1b2230;border-color:#3a4358}.mode-ribbon{background:var(--gold);color:#1a1204;letter-spacing:.2em;text-transform:uppercase;width:150px;padding:3px 0;font-size:11px;font-weight:800;position:absolute;top:16px;right:-40px;transform:rotate(35deg)}.menu-secondary.back{width:200px}.name-input{text-align:center;width:80%;font:inherit;color:var(--gold-hi);border:1px solid var(--gold-dim);background:#010a13;outline:none;padding:8px 10px}.name-input:focus{border-color:var(--teal);box-shadow:0 0 10px #0ac8b966}.mode-card code{color:var(--teal)}.difficulty{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.diff{letter-spacing:.05em;text-transform:uppercase;padding:5px 9px;font-size:12px}.diff.active.easy{color:#6fcf6f;border-color:#6fcf6f;box-shadow:0 0 10px #6fcf6f66}.diff.active.normal{color:#4ea1ff;border-color:#4ea1ff;box-shadow:0 0 10px #4ea1ff66}.diff.active.hard{color:#ff9a3c;border-color:#ff9a3c;box-shadow:0 0 10px #ff9a3c66}.diff.active.expert{color:#ff4d6d;border-color:#ff4d6d;box-shadow:0 0 10px #ff4d6d80}.mode-card p.diff-desc{min-height:48px;color:var(--gold-hi);font-size:12px}div.mode-card:hover{border-color:var(--gold)}button.mode-cta{cursor:pointer}.wiki{z-index:2;border:2px solid var(--gold-dim);background:linear-gradient(#0a1428eb,#040812f2);flex-direction:column;width:min(1100px,94vw);height:92vh;animation:.6s ease-out menuIn;display:flex;position:relative;box-shadow:0 0 40px #000000b3,inset 0 0 0 3px #060e1a}.wiki-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:18px;padding:12px 18px;display:flex}.wiki-head h2{color:var(--gold);text-transform:uppercase;letter-spacing:.25em;margin:0}.wiki-tabs{flex-wrap:wrap;flex:1;gap:6px;display:flex}.wiki-tabs button,.wiki-filters button{padding:6px 14px;font-size:13px}.wiki-tabs button.active,.wiki-filters button.active{border-color:var(--gold);color:var(--gold);background:linear-gradient(#2a2418,#0a0f14)}.wiki-body{flex:1;padding:16px 20px;overflow:auto}.wiki-filters{gap:6px;margin-bottom:12px;display:flex}.wiki-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.wiki-card{border:1px solid #1e2a40;border-left:4px solid var(--gold-dim);background:#010a13a6;align-items:center;gap:10px;padding:8px 10px;display:flex}.wiki-card img{width:64px;height:64px;image-rendering:pixelated;flex-shrink:0}.wiki-card.trait{border-left-width:4px;align-items:flex-start}.wiki-card.cost1{border-left-color:#848999}.wiki-card.cost2{border-left-color:#11b288}.wiki-card.cost3{border-left-color:#207ac7}.wiki-card.cost4{border-left-color:#c440da}.wiki-card.cost5{border-left-color:#ffb93b}.wiki-members{flex-wrap:wrap;gap:2px;margin-top:6px;display:flex}.wiki-members img{width:34px;height:34px;image-rendering:pixelated}.wiki-members.big img{width:52px;height:52px}.wiki-h{color:var(--gold);text-transform:uppercase;letter-spacing:.15em;border-bottom:1px solid var(--line);margin:18px 0 10px;padding-bottom:4px;font-size:14px}.wiki-h:first-child{margin-top:0}.wiki-list{color:var(--gold-hi);margin:6px 0;padding-left:20px;line-height:1.5}.wiki-basics{gap:12px;margin:0;display:grid}.wiki-basics dt{color:var(--gold);text-transform:uppercase;letter-spacing:.1em;font-size:13px;font-weight:700}.wiki-basics dd{color:var(--gold-hi);margin:2px 0 0;line-height:1.5}.wiki-comp{border:1px solid var(--gold-dim);background:#010a13a6;margin-bottom:12px;padding:12px 14px}.wiki-comp-name{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-size:18px}.wiki-comp p{color:var(--gold-hi);margin:6px 0;line-height:1.45}.modal.rules{text-align:left;max-width:520px}.modal.rules h2{color:var(--gold);text-transform:uppercase;letter-spacing:.15em;margin-top:0}.modal.rules li{color:var(--gold-hi);margin-bottom:8px;line-height:1.4}@keyframes spin{to{transform:rotate(360deg)}}@keyframes aurora{0%{transform:translate(-3%,-2%)scale(1)}to{transform:translate(3%,3%)scale(1.15)}}@keyframes float{0%,to{translate:0}50%{translate:0 -16px}}@keyframes rise{0%{opacity:0;transform:translate(0)}15%{opacity:1}to{transform:translate(var(--drift), -105vh);opacity:0}}@keyframes shimmer{to{background-position:-250% 0}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes pulse{0%,to{box-shadow:0 0 20px #0ac8b959}50%{box-shadow:0 0 36px #0ac8b9bf}}@keyframes sweep{0%,60%{left:-60%}to{left:140%}}@keyframes menuIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}:root{--bg:#010a13;--panel:#0a1428;--panel2:#091220;--gold:#c8aa6e;--gold-hi:#f0e6d2;--gold-dim:#785a28;--teal:#0ac8b9;--text:#a09b8c;--line:#463714}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--gold-hi);background:radial-gradient(ellipse at 50% 0%, #0f2038 0%, #060e1a 55%, var(--bg) 100%);background-attachment:fixed;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif}button{font:inherit;color:var(--gold-hi);cursor:pointer;border:1px solid var(--gold-dim);background:linear-gradient(#1e2328,#0a0f14);border-radius:2px;padding:8px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}button:hover:not(:disabled){border-color:var(--gold);box-shadow:0 0 10px #c8aa6e59}button:disabled{opacity:.4;cursor:not-allowed}button.primary{border:1px solid var(--teal);color:#fff;letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(#0e6e68,#064a47);width:100%;margin-top:8px;padding:12px;font-size:16px;font-weight:700;box-shadow:0 0 14px #0ac8b94d}button.primary:hover:not(:disabled){border-color:#7ff7ee;box-shadow:0 0 20px #0ac8b999}.app{grid-template-rows:1fr 150px;grid-template-columns:230px 1fr 290px;gap:8px;height:100%;padding:8px;display:grid}.stage{border:1px solid var(--gold-dim);min-height:0;box-shadow:inset 0 0 0 3px #060e1a, inset 0 0 0 4px var(--line), 0 0 30px #0009;background:radial-gradient(circle at 50% 40%,#0b1245 0%,#060b25 70%,#03060f 100%);grid-area:1/2;overflow:hidden}.canvas{width:100%;height:100%}.side{flex-direction:column;grid-row:1/3;gap:8px;display:flex;overflow:auto}.side.left{grid-column:1}.side:not(.left){grid-column:3}.panel{background:linear-gradient(var(--panel), var(--panel2));border:1px solid var(--gold-dim);flex-direction:column;gap:6px;padding:10px;display:flex;box-shadow:inset 0 0 0 2px #060e1a}.title{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--line);padding-bottom:5px;font-size:12px;font-weight:700}.small{color:var(--text);font-size:12px}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.bar{background:#010a13;border:1px solid #1e2328;height:6px}.bar>div{height:100%;transition:width .4s}.chip{color:#010a13;border-radius:2px;margin-right:3px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.trait{opacity:.6;cursor:help;background:#010a1399;border-left:3px solid;padding:5px 8px;font-size:13px}.trait.on{opacity:1;background:linear-gradient(90deg,#c8aa6e2e,#010a1399)}.trait:hover{opacity:1}.count{text-align:center;color:#010a13;clip-path:polygon(20% 0,80% 0,100% 50%,80% 100%,20% 100%,0 50%);min-width:20px;padding:0 6px;font-size:12px;font-weight:800}.popup{z-index:20;pointer-events:none;background:linear-gradient(var(--panel), #050c18);border:1px solid;flex-direction:column;gap:4px;width:290px;padding:12px;display:flex;position:fixed;box-shadow:0 10px 30px #000c,inset 0 0 0 2px #060e1a}.popup-title{letter-spacing:.06em;text-transform:uppercase;font-size:17px;font-weight:700}.popup-row{flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.popup-cost{width:34px;color:var(--gold);font-size:12px;font-weight:700}.popup-mon{background:#010a13;border:2px solid;width:40px;height:40px}.popup-mon img{width:100%;height:100%;image-rendering:pixelated}.shop{background:linear-gradient(var(--panel), var(--panel2));border:1px solid var(--gold-dim);grid-area:2/2;gap:10px;padding:10px;display:flex;box-shadow:inset 0 0 0 2px #060e1a}.shop-ctrl{flex-direction:column;justify-content:center;gap:6px;width:150px;display:flex}.gold{color:var(--gold);font-size:24px;font-weight:800}.cards{flex:1;grid-template-columns:repeat(5,1fr);gap:8px;min-width:0;display:grid}.card{background:linear-gradient(#10243b,#060e1a);border-style:solid;border-width:2px;flex-direction:column;justify-content:space-between;align-items:center;gap:2px;min-width:0;padding:4px;font-size:13px;display:flex;position:relative}.card img{width:56px;height:56px;image-rendering:pixelated}.card.empty{visibility:hidden}.card .price{color:var(--gold);font-size:12px;font-weight:700;position:absolute;top:3px;right:6px}.card b{color:var(--gold-hi)}.cost1{border-color:#848999}.cost2{border-color:#11b288}.cost3{border-color:#207ac7}.cost4{border-color:#c440da}.cost5{border-color:#ffb93b}.card.cost5{box-shadow:0 0 12px #ffb93b59}.card.cost4{box-shadow:0 0 10px #c440da4d}.overlay{z-index:30;background:#010a13d9;place-items:center;display:grid;position:fixed;inset:0}.modal{background:linear-gradient(var(--panel), var(--panel2));border:2px solid var(--gold);text-align:center;padding:30px 50px;box-shadow:0 0 40px #c8aa6e4d}.modal h1{color:var(--gold);text-transform:uppercase;letter-spacing:.15em}.tabs{gap:4px;display:flex}.tabs button{flex:1;padding:4px 2px;font-size:11px}.tabs button.active{border-color:var(--gold);color:var(--gold);background:linear-gradient(#2a2418,#0a0f14)}.meter-row{align-items:center;gap:5px;margin-top:2px;font-size:11px;display:flex}.meter-row img{width:22px;height:22px;image-rendering:pixelated}.meter-bar{background:#010a13;border:1px solid #1e2328;flex:1;height:8px}.meter-bar>div{height:100%;transition:width .3s}.meter-row span{text-align:right;width:38px;color:var(--gold-hi)}.fortune-cashout{background:#f3ca6214;border-left:3px solid #f3ca62;justify-content:space-between;align-items:center;gap:6px;padding:5px 7px;display:flex}.fortune-cashout button{color:#f3ca62;padding:4px 8px}.inv{flex-wrap:wrap;gap:6px;display:flex}.inv-item{cursor:grab;animation:.45s ease-out pop}.slots{gap:6px;display:flex}.slot{border:1px dashed var(--gold-dim);background:#010a13b3;place-items:center;width:36px;height:36px;display:grid}.item-icon{background:#010a13;place-items:center;display:inline-grid;position:relative;overflow:hidden}.item-icon img{width:78%;height:78%;image-rendering:pixelated;object-fit:contain}.item-icon.component{border:2px solid #4a7aa8;border-radius:50%}.item-icon.complete{border:2px solid var(--gold);border-radius:4px;box-shadow:0 0 8px #c8aa6e8c,inset 0 0 6px #c8aa6e59}.item-icon.fallback img{width:58%;height:58%;position:absolute}.item-icon.fallback img:first-child{top:2px;left:2px}.item-icon.fallback img:last-child{bottom:2px;right:2px}.popup.tip{width:240px}.choices{justify-content:center;gap:10px;margin-top:12px;display:flex}.choice{text-align:center;flex-direction:column;align-items:center;gap:4px;width:170px;padding:10px;display:flex}.choice.reward{border-color:var(--gold)}.toast{z-index:40;letter-spacing:.04em;pointer-events:none;background:var(--panel);border:1px solid var(--gold);color:var(--gold-hi);padding:8px 20px;font-weight:700;animation:2.6s ease-out forwards toast;position:fixed;top:18px;left:50%;transform:translate(-50%);box-shadow:0 0 18px #c8aa6e66}.toast.merge,.toast.gain{color:#ffd76a}.toast.fail{color:#ff8a8a;border-color:#a33}@keyframes pop{0%{opacity:0;transform:scale(.3)}70%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes toast{0%{opacity:0;transform:translate(-50%,-10px)}10%,80%{opacity:1;transform:translate(-50%)}to{opacity:0}}
