/* ── MEMORY MATCH ── */
.mem-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 8px 24px;width:100%;box-sizing:border-box;}
.mem-header{display:flex;gap:28px;justify-content:center;}
.mem-hstat{font-family:'Press Start 2P',monospace;font-size:11px;display:flex;align-items:center;}
.mem-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;width:100%;max-width:360px;}
.mem-card{aspect-ratio:.72;cursor:pointer;position:relative;}
.mem-card-inner{width:100%;height:100%;transition:transform .32s;transform-style:preserve-3d;position:relative;}
.mem-card.flipped .mem-card-inner,.mem-card.matched .mem-card-inner{transform:rotateY(180deg);}
.mem-card-back,.mem-card-front{position:absolute;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:2px solid var(--border2);display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:3px;}
.mem-card-back{background:url('../art/card/Back.png') center/cover no-repeat;box-shadow:2px 2px 0 #04080f;}
.mem-card-front{transform:rotateY(180deg);background:var(--panel);}
.mem-card.matched .mem-card-front{border-color:var(--mint);box-shadow:0 0 10px rgba(94,255,200,.4);}
.mem-card:not(.flipped):not(.matched):hover .mem-card-inner{transform:rotateY(14deg);}
.mem-stats-row{display:flex;gap:28px;justify-content:center;}
.mem-stat{text-align:center;}
.mem-stat-val{font-family:'Press Start 2P',monospace;font-size:20px;}
.mem-stat-label{font-size:6px;color:var(--text3);margin-top:4px;letter-spacing:.5px;}
/* ── CODIMON SLOTS ── */
.slots-machine{background:linear-gradient(160deg,#0a1628 0%,#0d1e38 100%);border:3px solid var(--gold2);box-shadow:0 0 0 1px var(--gold-dark),0 8px 28px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.06);padding:14px;width:100%;max-width:320px;box-sizing:border-box;}
.slots-window{background:#020408;border:2px solid var(--border);padding:10px;display:flex;justify-content:center;margin-bottom:10px;}
.slots-reel-wrap{display:flex;gap:8px;}
.slot-reel{width:72px;height:80px;border:2px solid var(--border2);background:rgba(4,4,10,.9);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.slot-cell{font-size:38px;line-height:1;text-align:center;user-select:none;}
.slots-result{min-height:22px;text-align:center;padding:2px 0;}
.slots-paytable{background:rgba(8,8,14,.8);border:1px solid var(--border);padding:10px 14px;width:100%;max-width:320px;box-sizing:border-box;margin-top:2px;}
.slots-pay-row{display:flex;justify-content:space-between;font-size:6px;color:var(--text2);padding:4px 0;border-bottom:1px solid rgba(38,62,90,.3);}
.slots-pay-row:last-child{border-bottom:none;}

/* ── CODIBUDDY ── */
@keyframes buddyBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes buddyBounceFast{0%,100%{transform:translateY(0) scale(1)}40%{transform:translateY(-9px) scale(1.04)}80%{transform:translateY(-3px) scale(1.01)}}
@keyframes buddySway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes buddyDroop{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(2px) rotate(1deg)}}
@keyframes buddyShine{0%,100%{filter:drop-shadow(0 0 6px rgba(255,209,102,.5))}50%{filter:drop-shadow(0 0 18px rgba(255,209,102,.9))}}

.buddy-wrap{display:flex;flex-direction:column;gap:10px;padding:4px 0 28px;width:100%;max-width:480px;margin:0 auto;}
.buddy-topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;}
.buddy-title{font-family:'Press Start 2P',monospace;font-size:10px;color:var(--gold);text-shadow:0 0 12px rgba(255,209,102,.4);}

.buddy-stage{background:linear-gradient(160deg,#0c1828 0%,#111e34 100%);border:2px solid var(--border2);padding:18px 14px 12px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;position:relative;overflow:hidden;user-select:none;}
.buddy-stage::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 60%,rgba(126,200,255,.06) 0%,transparent 70%);pointer-events:none;}
.buddy-mood-tag{font-family:'Press Start 2P',monospace;font-size:7px;letter-spacing:1px;}
.buddy-sprite{display:flex;align-items:center;justify-content:center;width:112px;height:112px;}
.buddy-sprite img,.buddy-sprite span{image-rendering:pixelated;}
.buddy-anim-ecstatic{animation:buddyBounceFast 2.2s ease-in-out infinite,buddyShine 2.5s ease-in-out infinite;}
.buddy-anim-happy{animation:buddyBounce 3.0s ease-in-out infinite;}
.buddy-anim-meh{animation:buddySway 5.0s ease-in-out infinite;}
.buddy-anim-sad{animation:buddyDroop 6.0s ease-in-out infinite;}
.buddy-dirty{filter:sepia(.5) brightness(.85);}
.buddy-codi-name{font-family:'Press Start 2P',monospace;font-size:10px;color:var(--text);margin-top:2px;}
.buddy-codi-type{font-family:'Press Start 2P',monospace;font-size:7px;letter-spacing:1px;}
.buddy-dirty-hint{font-size:7px;color:var(--warn-red);animation:buddySway 1.5s ease-in-out infinite;}
.buddy-tap-hint{font-size:6px;color:rgba(184,204,224,.35);margin-top:2px;}

.buddy-stats{display:flex;flex-direction:column;gap:7px;background:rgba(8,8,14,.6);border:1px solid var(--border);padding:10px 12px;}
.buddy-stat-row{display:flex;align-items:center;gap:8px;}
.buddy-stat-lbl{font-family:'Press Start 2P',monospace;font-size:6px;color:var(--text2);width:60px;flex-shrink:0;}
.buddy-bar-wrap{flex:1;height:8px;background:rgba(255,255,255,.08);border:1px solid var(--border);overflow:hidden;}
.buddy-bar-fill{height:100%;transition:width .4s ease;min-width:2px;}
.buddy-stat-num{font-family:'Press Start 2P',monospace;font-size:7px;color:var(--text3);width:26px;text-align:right;flex-shrink:0;}

.buddy-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.buddy-act-btn{font-size:7px!important;padding:9px 8px!important;justify-content:center;width:100%;}
.buddy-passive-info{font-family:'Press Start 2P',monospace;font-size:7px;color:var(--gold);text-align:center;padding:6px;background:rgba(255,209,102,.07);border:1px solid rgba(255,209,102,.18);}

.buddy-milestones{display:flex;flex-direction:column;gap:6px;}
.buddy-milestone{display:flex;align-items:center;gap:8px;background:rgba(8,8,14,.5);border:1px solid var(--border);padding:7px 10px;font-family:'Press Start 2P',monospace;font-size:6px;color:var(--text2);}
.buddy-ms-done{border-color:var(--mint);color:var(--mint);background:rgba(94,255,200,.05);}
.buddy-ms-icon{font-size:13px;flex-shrink:0;}
.buddy-ms-label{flex:1;}
.buddy-ms-check{color:var(--mint);font-size:10px;flex-shrink:0;}
.buddy-ms-prog{color:var(--text2);flex-shrink:0;}

.buddy-select-hint{font-size:7px;color:var(--text2);text-align:center;margin:-4px 0 4px;}
.buddy-select-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.buddy-sel-card{background:linear-gradient(160deg,#0c1828 0%,#111e34 100%);border:2px solid var(--border);padding:10px 6px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:border-color .12s,transform .12s;position:relative;}
.buddy-sel-card:hover{border-color:var(--sky);transform:translateY(-3px);}
.buddy-sel-active{border-color:var(--gold)!important;background:rgba(8,6,0,.9)!important;}
.buddy-sel-sprite{display:flex;align-items:center;justify-content:center;width:54px;height:54px;}
.buddy-sel-sprite img,.buddy-sel-sprite span{image-rendering:pixelated;}
.buddy-sel-name{font-family:'Press Start 2P',monospace;font-size:6px;color:var(--text);text-align:center;}
.buddy-sel-type{font-family:'Press Start 2P',monospace;font-size:5px;text-align:center;}
.buddy-sel-badge{font-family:'Press Start 2P',monospace;font-size:5px;color:var(--gold);background:rgba(255,209,102,.12);border:1px solid rgba(255,209,102,.3);padding:2px 5px;margin-top:2px;}

.buddy-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 20px;font-family:'Press Start 2P',monospace;font-size:9px;color:var(--text2);text-align:center;}
.buddy-empty-icon{font-size:40px;}
.buddy-empty-sub{font-size:7px;color:var(--text2);line-height:2;max-width:240px;}
