/* Mikey's Memory (t8624) */
.lv{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lv button{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:74px;padding:10px 12px;border-radius:16px;border:1.5px solid rgba(255,229,138,.4);background:linear-gradient(160deg,#4a2780,#24123d);cursor:pointer;text-align:left;box-shadow:0 3px 0 rgba(0,0,0,.45)}
.lv button:active{transform:translateY(2px)}
.lv .n{font-size:18px;font-weight:700;color:var(--gold2)}
.lv .s{font-size:14px;color:#e0d2b4}
.lv .b{font-size:14px;color:#bfe9cf;font-weight:700}
.lv .st{position:absolute;top:8px;right:10px;font-size:14px;letter-spacing:1px;color:var(--gold)}
.hud[hidden]{display:none!important}
.hud{flex:none;display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding:2px 0 6px}
.hud.vs{justify-content:space-between;align-items:center;gap:6px;flex-wrap:nowrap}
.hud .pl{display:flex;align-items:center;gap:7px;min-height:46px;padding:3px 10px;border-radius:999px;background:rgba(0,0,0,.45);border:1.5px solid rgba(255,229,138,.25);transition:box-shadow .2s,border-color .2s}
.hud .pl.on{border-color:var(--gold);box-shadow:0 0 0 3px rgba(245,197,66,.25),0 0 18px rgba(245,197,66,.45)}
.hud .pl b{font-size:22px;color:var(--gold2);min-width:22px;text-align:center;font-variant-numeric:tabular-nums}
.hud .pl .nm{font-size:15px;font-weight:700;white-space:nowrap}
.hud .av{width:36px;height:36px;border-radius:50%;object-fit:cover;background:#2a1545;display:inline-flex;align-items:center;justify-content:center;font-size:18px;color:#2a1a00;border:2px solid var(--gold)}
.hud .av.you{background:linear-gradient(180deg,#ffe58a,#f5c542)}
.hud .turn{font-size:14px;font-weight:700;color:#e9dcc0;text-align:center;flex:1;min-width:0}
.board-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:4px 0 6px}
.board{display:grid;gap:var(--gap,8px);perspective:1100px}
.card{position:relative;width:var(--cw);height:var(--ch);padding:0;border:0;background:none;cursor:pointer;-webkit-perspective:900px;perspective:900px;animation:dealIn .45s cubic-bezier(.2,1.2,.4,1) both;animation-delay:var(--dl,0s)}
@keyframes dealIn{from{transform:translateY(-40vh) rotate(-25deg) scale(.6);opacity:0}to{transform:none;opacity:1}}
.card .in{position:absolute;inset:0;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .42s cubic-bezier(.3,1.3,.5,1)}
.card.up .in{transform:rotateY(180deg)}
.card .f,.card .bk{position:absolute;inset:0;border-radius:calc(var(--cw) * .12);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.card .bk{background:#2a1545 url(../games/img/mem/back.webp) center/cover;box-shadow:0 4px 10px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,229,138,.35)}
.card .bk::after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.22),transparent 35%,transparent 65%,rgba(255,255,255,.08))}
.card .bk{transform:rotateY(0deg) translateZ(1px);-webkit-transform:rotateY(0deg) translateZ(1px)}
/* WebKit-safe: hide the hidden face at the flip midpoint as well as by backface */
.card .f,.card .bk{transition:visibility 0s linear .2s}
.card:not(.up) .f{visibility:hidden}
.card.up .bk{visibility:hidden}
.card .f{transform:rotateY(180deg) translateZ(1px);-webkit-transform:rotateY(180deg) translateZ(1px);background:radial-gradient(circle at 50% 42%,#fffaf0,#f3e5c4 62%,#e0c995);box-shadow:0 4px 10px rgba(0,0,0,.5),inset 0 0 0 calc(var(--cw) * .04) #c99a3c,inset 0 0 0 calc(var(--cw) * .06) #fff3d1;display:flex;align-items:center;justify-content:center}
.card .f img{width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 3px 3px rgba(60,20,90,.35))}
.card:focus-visible{outline:3px solid #8fd3ff;outline-offset:3px;border-radius:12px}
.card.miss .in{animation:shake .4s}
@keyframes shake{20%{transform:rotateY(180deg) translateX(-6px)}40%{transform:rotateY(180deg) translateX(6px)}60%{transform:rotateY(180deg) translateX(-4px)}80%{transform:rotateY(180deg) translateX(3px)}}
.card.got .f{animation:got .7s ease-out}
.card.got::after{content:"";position:absolute;inset:-6px;border-radius:calc(var(--cw) * .16);pointer-events:none;box-shadow:0 0 0 3px #ffe58a,0 0 22px 6px rgba(255,214,96,.75);animation:glow 1s ease-out forwards}
.card.done .f{filter:saturate(.9) brightness(.95)}
.card.done.dj .f{box-shadow:0 4px 10px rgba(0,0,0,.5),inset 0 0 0 calc(var(--cw) * .04) #8a5cd6,inset 0 0 0 calc(var(--cw) * .06) #e6d6ff}
.card.done.me .f{box-shadow:0 4px 10px rgba(0,0,0,.5),inset 0 0 0 calc(var(--cw) * .04) #e0a92a,inset 0 0 0 calc(var(--cw) * .06) #fff3d1}
@keyframes got{0%{transform:rotateY(180deg) translateZ(1px) scale(1)}35%{transform:rotateY(180deg) translateZ(1px) scale(1.13)}100%{transform:rotateY(180deg) translateZ(1px) scale(1)}}
@keyframes glow{0%{opacity:1}100%{opacity:0}}
.spark{position:absolute;width:8px;height:8px;margin:-4px;border-radius:50%;background:#ffe58a;box-shadow:0 0 8px #ffd560;pointer-events:none;animation:spark .7s ease-out forwards;z-index:5}
@keyframes spark{to{transform:translate(var(--sx),var(--sy)) scale(.2);opacity:0}}
.dj-say{flex:none;margin:0 auto 6px;min-height:24px;max-width:420px;text-align:center;font-size:15px;font-weight:700;color:var(--gold2);opacity:0;transition:opacity .25s}
.dj-say.on{opacity:1}
.board.lock .card{pointer-events:none}
/* win */
.win{text-align:center;position:relative;padding-top:12px}
.win-dj{width:120px;height:auto;margin:-6px auto 0;display:block;filter:drop-shadow(0 8px 16px rgba(0,0,0,.6))}
.stars{display:flex;justify-content:center;gap:10px;font-size:40px;line-height:1;margin:4px 0 8px}
.stars span{color:#5a4a72;text-shadow:0 2px 0 rgba(0,0,0,.4)}
.stars span.on{color:#ffd560;text-shadow:0 0 16px rgba(255,213,96,.8),0 2px 0 #8a6414;animation:starIn .5s cubic-bezier(.2,1.6,.4,1) both}
.stars span:nth-child(2){animation-delay:.15s}.stars span:nth-child(3){animation-delay:.3s}
@keyframes starIn{from{transform:scale(0) rotate(-90deg)}to{transform:none}}
.wstats{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.wstats div{min-width:88px;padding:8px 10px;border-radius:14px;background:rgba(0,0,0,.35);border:1px solid rgba(255,229,138,.25)}
.wstats small{display:block;font-size:14px;color:#cdbfa3}
.wstats b{font-size:22px;color:var(--gold2);font-variant-numeric:tabular-nums}
.wbest{min-height:22px;color:#bfe9cf!important;font-weight:700;text-align:center}
@media (orientation:landscape) and (max-height:520px){
  .hud{position:absolute;top:calc(var(--sat) + 60px);left:calc(var(--sal) + 10px);flex-direction:column;align-items:flex-start;width:150px;z-index:2}
  .hud.vs{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px}
  .hud.vs .pl{justify-content:flex-start}
  .hud.vs #pDj{flex-direction:row-reverse;justify-content:flex-end}
  .hud .turn{text-align:left;flex:none}
  .board-wrap{padding-left:160px;padding-right:0}
  .dj-say{position:absolute;bottom:calc(var(--sab) + 40px);left:calc(var(--sal) + 10px);width:150px;text-align:left;margin:0}
  .win-dj{display:none}
  .stars{font-size:32px}
  .gk-card.win{padding-top:14px}
}
/* v2 (t8630): decks, living cards, turntable, beat meter, sticker book */
.decks{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.decks button{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:76px;padding:6px 2px;border-radius:14px;border:1.5px solid rgba(255,229,138,.35);background:linear-gradient(160deg,#3a1e5e,#1f0f38);cursor:pointer;font-size:13px;font-weight:700;color:#e9dcc0;line-height:1.1;text-align:center}
.decks button img{width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}
.decks button[aria-pressed="true"]{border-color:#ffe58a;background:linear-gradient(160deg,#6a3aa8,#3b1f63);color:#fff4dc;box-shadow:0 0 0 3px rgba(245,197,66,.3)}
.stk-btn b{color:var(--gold2)}
/* depth + shine on the flip */
.card .in{transition:transform .5s cubic-bezier(.25,1.25,.45,1)}
.card.up .in{transform:rotateY(180deg)}
.card.lift .in{animation:lift .5s ease-out}
@keyframes lift{0%{transform:translateZ(0) scale(1)}45%{transform:rotateY(90deg) scale(1.08) translateY(-4px)}100%{transform:rotateY(180deg) scale(1)}}
.card .f::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 45%,transparent 60%);background-size:250% 100%;background-position:120% 0;pointer-events:none}
.card.up .f::after{animation:shine .9s .25s ease-out both}
@keyframes shine{to{background-position:-60% 0}}
/* living cards: each deck moves its own way */
.card.live .f img{animation-duration:.9s;animation-timing-function:ease-in-out;animation-fill-mode:both}
.card.live.a-spin .f img:not(.pip){animation-name:aSpin}
.card.live.a-wave .f img:not(.pip){animation-name:aWave;transform-origin:50% 90%}
.card.live.a-cat .f img:not(.pip){animation-name:aCat;transform-origin:50% 100%}
.card.live.a-float .f img:not(.pip){animation-name:aFloat}
.card.live.a-chug .f img:not(.pip){animation-name:aChug}
@keyframes aSpin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
@keyframes aWave{0%,100%{transform:rotate(0)}20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(6deg)}}
@keyframes aCat{0%{transform:scale(1,1)}25%{transform:scale(1.15,.85)}50%{transform:translateY(-16%) scale(.92,1.1)}75%{transform:scale(1.1,.9)}100%{transform:scale(1)}}
@keyframes aFloat{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14%) rotate(-10deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes aChug{0%,100%{transform:translateX(0)}20%{transform:translateX(-8%)}40%{transform:translateX(8%)}60%{transform:translateX(-5%)}80%{transform:translateX(4%)}}
.card.gone{pointer-events:none}
.card.gone .in{opacity:0;transition:opacity .35s}
.card.gone::before{content:"";position:absolute;inset:0;border-radius:calc(var(--cw) * .12);border:2px dashed rgba(255,229,138,.22);background:rgba(255,229,138,.04)}
.spinoff{position:fixed;z-index:30;pointer-events:none;border-radius:10px;background:radial-gradient(circle at 50% 42%,#fffaf0,#f3e5c4 62%,#e0c995);box-shadow:0 6px 14px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;transition:transform .75s cubic-bezier(.5,0,.3,1),opacity .75s}
.spinoff img{width:78%;height:78%;object-fit:contain}
/* footer: turntable + beat */
.foot{flex:none;display:flex;align-items:center;justify-content:center;gap:14px;padding:2px 0 6px;min-height:76px}
.tt{position:relative;width:72px;height:72px;flex:none;border-radius:14px;background:linear-gradient(160deg,#6b4a22,#3a250f);box-shadow:inset 0 0 0 2px #b07a3c,0 6px 14px rgba(0,0,0,.5)}
.tt-plat{position:absolute;left:7px;top:7px;width:58px;height:58px;border-radius:50%;background:repeating-radial-gradient(circle,#141018 0 2px,#221b28 2px 4px);box-shadow:0 0 0 2px #2a1d10;display:flex;align-items:center;justify-content:center;animation:spin 3.2s linear infinite;animation-play-state:paused}
.tt.on .tt-plat{animation-play-state:running}
.tt-plat img{width:62%;height:62%;object-fit:contain;border-radius:50%;background:radial-gradient(circle,#ffe58a,#b07aff);padding:3px}
.tt-arm{position:absolute;right:5px;top:6px;width:4px;height:38px;border-radius:3px;background:linear-gradient(#e0c995,#8a6414);transform:rotate(22deg);transform-origin:50% 0}
@keyframes spin{to{transform:rotate(360deg)}}
.foot-r{display:flex;flex-direction:column;gap:6px;min-width:0;flex:0 1 300px}
.beat{display:flex;gap:5px;align-items:flex-end;height:26px}
.beat i{flex:1;max-width:30px;border-radius:4px;background:rgba(255,229,138,.14);border:1px solid rgba(255,229,138,.22);transition:background .4s,height .4s}
.beat i:nth-child(1){height:8px}.beat i:nth-child(2){height:11px}.beat i:nth-child(3){height:14px}.beat i:nth-child(4){height:18px}.beat i:nth-child(5){height:22px}.beat i:nth-child(6){height:26px}
.beat i.on{background:linear-gradient(180deg,#ffe58a,#b07aff);border-color:#ffe58a}
.foot .dj-say{margin:0;text-align:left;min-height:22px}
/* gentle miss: soft dim instead of a hard shake */
.card.miss .in{animation:none}
.card.miss .f{box-shadow:0 4px 10px rgba(0,0,0,.5),inset 0 0 0 calc(var(--cw) * .04) #9aa6c8,inset 0 0 0 calc(var(--cw) * .06) #e6ebf7;transition:box-shadow .3s}
body.calm .card .in{transition:none}
body.calm .card .f,body.calm .card .bk{transition:opacity .3s,visibility 0s}
/* sticker book */
.stk{width:min(560px,100%)}
.stk-sub{text-align:center}
.stk-tabs{margin:8px 0}
.stk-tabs button{font-size:14px;min-width:0}
.stk-prog{text-align:center;font-weight:700;color:var(--gold2)!important}
.stk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}
.stk-grid span{aspect-ratio:1;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.3);border:1.5px dashed rgba(255,229,138,.25)}
.stk-grid span.got{background:radial-gradient(circle,#fffaf0,#f0deb4);border:2px solid #f5c542;box-shadow:0 3px 0 #a6884f}
.stk-grid img{width:80%;height:80%;object-fit:contain}
.stk-grid span:not(.got) img{filter:brightness(0) invert(.85);opacity:.16}
.badges{display:flex;flex-wrap:wrap;gap:8px}
.badges span{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;font-size:14px;font-weight:700;background:rgba(0,0,0,.3);border:1px solid rgba(255,229,138,.22);color:#a99c84}
.badges span.got{background:linear-gradient(180deg,#ffe58a,#f5c542);color:#2a1a00;border-color:#fff1b5}
.newstk{position:fixed;z-index:35;pointer-events:none;width:64px;height:64px;border-radius:16px;background:radial-gradient(circle,#fffaf0,#f0deb4);border:2px solid #f5c542;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.5);transition:transform .9s cubic-bezier(.5,0,.3,1),opacity .9s}
.newstk img{width:80%;height:80%;object-fit:contain}
@media (orientation:landscape) and (max-height:520px){
  .foot{position:absolute;left:calc(var(--sal) + 10px);bottom:calc(var(--sab) + 40px);width:150px;flex-direction:column;align-items:flex-start;gap:6px;padding:0}
  .foot .dj-say{position:static;width:150px}
  .foot-r{flex:none;width:150px}
  .beat{width:150px}
  .decks button{min-height:64px}.decks button img{width:34px;height:34px}
}
@media (min-width:1000px) and (min-height:700px){
  .gk-title .gk-panel{width:min(520px,100%)}
  .foot{min-height:90px}
}

/* toasts sit above the footer so they never cover the timer and moves */
.gk-toast{top:auto;bottom:calc(var(--sab) + 120px)}
@media (orientation:landscape) and (max-height:520px){.gk-toast{bottom:calc(var(--sab) + 44px)}}
/* t9040u: vs robots (DJ Shuffle, Tommy, Pinky; 1-100 skill) and invite friends */
.mm-mode button{min-height:48px;font-size:15px;padding:6px 4px;line-height:1.15}
/* t9232u: No Pressure (default) / Timed play-style toggle — large, high-contrast, no translateY */
.mm-pace{margin:0 0 2px;gap:8px}
.mm-pace button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;font-size:17px;font-weight:700;padding:8px 10px;line-height:1.15;color:var(--ink);background:#123a44;border:2px solid rgba(255,209,102,.65)}
.mm-pace button small{display:block;font-size:13px;font-weight:700;color:#f3e6c8;line-height:1.2}
.mm-pace button[aria-pressed="true"]{background:linear-gradient(180deg,#ffe58a,#f5c542);color:#2a1a00;border-color:#fff1b5;box-shadow:0 0 0 3px rgba(245,197,66,.45)}
.mm-pace button[aria-pressed="true"] small{color:#4a3208}
#paceHint{margin:8px 2px 4px}
#hTimeChip[hidden],#wStars[hidden]{display:none!important}
.mem .lbl.mm-lvl{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.mem .lvw{font-size:15px;color:var(--gold2);text-transform:none;letter-spacing:0}
.mem .lvrow{display:flex;align-items:center;gap:8px}
.mem .lvrow .gk-btn.icon{min-width:44px;min-height:44px;padding:0;font-size:22px}
.mem .lvr{flex:1;min-width:0}
.mem .lvn{width:64px;min-height:44px;border-radius:12px;border:1.5px solid var(--line);background:#1a0d30;color:var(--ink);font:700 18px/1 inherit;font-family:inherit;text-align:center;-moz-appearance:textfield}
.mem .lvn::-webkit-inner-spin-button,.mem .lvn::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.mm-bots{flex-wrap:nowrap}
.mm-bots button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:86px;padding:6px 4px;font-size:15px;line-height:1.1}
.mm-bots button small{font-size:12px;font-weight:700;color:var(--ink2)}
.mm-bots .bf{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,229,138,.7);background:#2a1545}
.mm-bots button[aria-pressed="true"] .bf{border-color:#fff}
.mm-bots button[disabled]{opacity:1;cursor:not-allowed;border-style:dashed;color:var(--ink2)}
.mm-bots button[disabled] .bf{filter:grayscale(.7)}
.mm-note{margin:0 2px 10px;font-size:15px;color:var(--ink2);text-align:center;line-height:1.35}
.mem .joinrow{display:flex;gap:8px}
.mem .codein{flex:1;min-width:0;min-height:46px;border-radius:12px;border:1.5px solid rgba(255,229,138,.45);background:#1a0d30;color:var(--ink);font-family:inherit;font-weight:700;font-size:20px;letter-spacing:.18em;text-align:center;text-transform:uppercase}
.mem .codein::placeholder{color:rgba(233,220,192,.62)}
.mem .namein{letter-spacing:.02em;text-transform:none;font-size:18px;margin-bottom:10px;width:100%;display:block}
.mem .onl{display:flex;flex-direction:column;gap:8px;padding:10px;margin-bottom:6px;border-radius:14px;background:rgba(18,10,36,.82);border:1.5px solid rgba(255,229,138,.45)}
.mem .onl-st{margin:0;text-align:center;font-size:15px;font-weight:700;color:var(--ink)}
.mem .onl-st.lost{color:#ffb4b4;font-weight:800}
.mem .onl-cfg{margin:0;text-align:center;font-size:14px;font-weight:700;color:var(--ink2)}
.mem .onl-code{display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;color:var(--ink2);font-weight:700}
.mem .onl-code b{font-size:28px;letter-spacing:.2em;color:var(--gold2)}
.mem .onl-err{margin:8px 0 0;padding:8px 10px;border-radius:10px;background:rgba(120,20,30,.5);border:1px solid #ff8a8a;color:#ffe2e2;font-weight:700;font-size:14px;line-height:1.3}
.mem .onl-err.ok{background:rgba(20,90,50,.55);border-color:#7fe0a0;color:#eafff0}
.mm-acts{display:flex;gap:8px}.mm-acts .gk-btn{flex:1}
.mem .seatlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.mem .seatlist li{display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 8px;border-radius:12px;background:rgba(42,21,69,.9);border:1px solid rgba(255,229,138,.35);font-size:15px;font-weight:700;color:var(--ink)}
.mem .seatlist li.open{border-style:dashed;color:var(--ink2);background:transparent}
.mem .seatlist .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mem .seatlist small{font-size:12px;color:var(--gold2)}
.mem .sav{flex:none;width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--gold);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;background:#3b1f63;color:#fff}
.mem .seatlist li.open .sav{border:2px dashed rgba(255,229,138,.5);background:transparent;color:var(--ink2)}
.mem .sav.crew,.mem .av.crew{background:linear-gradient(180deg,#ffb24a,#e07a12);color:#2a1200}
.mem .dot{flex:none;width:10px;height:10px;border-radius:50%;background:#8a8f99}.mem .dot.on{background:#5fe08a;box-shadow:0 0 6px #5fe08a}
.mem .lv button[aria-pressed="true"]{border-color:var(--gold);box-shadow:0 0 0 3px rgba(245,197,66,.35)}
.mem #gRestart[hidden]{display:none}
/* 3-4 seats: compact score chips that wrap above the board */
.hud.vs.many{flex-wrap:wrap;justify-content:center;gap:5px}
.hud.vs.many .pl{min-height:40px;padding:2px 8px 2px 3px;gap:5px}
.hud.vs.many .pl .nm{font-size:13px;max-width:78px;overflow:hidden;text-overflow:ellipsis}
.hud.vs.many .pl b{font-size:18px}
.hud.vs.many .av{width:32px;height:32px}
.hud.vs.many .turn{flex-basis:100%;order:9}
.hud.vs .pl .nm{max-width:110px;overflow:hidden;text-overflow:ellipsis}
.card.ask .in{transform:translateY(-4px)}
@media (orientation:landscape) and (max-height:520px){.mm-bots button{min-height:64px}.mm-bots .bf{width:32px;height:32px}.mem .onl-code b{font-size:22px}
  .hud.vs.many{flex-direction:column;flex-wrap:nowrap;align-items:stretch}.hud.vs.many .turn{order:0}}
.hud.vs:not(.many) .pl[data-s="1"]{order:3;flex-direction:row-reverse}
.hud.vs:not(.many) .turn{order:2}
.mem #btnDeal[disabled]{opacity:1;background:#2a1545;color:var(--ink);border:1.5px dashed rgba(255,229,138,.6);box-shadow:none}
.mm-bots button[aria-pressed="true"] small{color:#2a1a00}
/* t9041u: less purple. Warm teal + amber + coral palette, colorful pair symbols (sym-v1/*.svg, vector) */
body.mem{--deep:#0e1d22;--plum:#143a44;--plum2:#1d5561;--line:rgba(255,209,102,.42);background:#0e1d22}
.mem .mm-bg{background:#0e1d22;background-image:radial-gradient(70% 45% at 50% 0%,rgba(255,170,64,.38),transparent 70%),radial-gradient(60% 50% at 0% 100%,rgba(38,198,218,.28),transparent 70%),radial-gradient(55% 45% at 100% 70%,rgba(255,112,67,.26),transparent 70%),linear-gradient(180deg,#123b45 0%,#0e2a31 45%,#1c1712 100%)}
.mem .mm-bg::after{background:radial-gradient(120% 80% at 50% 45%,transparent,rgba(8,16,20,.55) 80%)}
.mem .gk-btn{background:linear-gradient(180deg,#1f6170,#12404b);border-color:rgba(255,209,102,.45)}
.mem .gk-btn.gold{background:linear-gradient(180deg,#ffe58a,#f5c542 55%,#d9a52a);color:#2a1a00;border-color:#fff1b5}
.mem .gk-panel{background:rgba(10,30,36,.84);border-color:rgba(255,209,102,.4)}
.mem .gk-panel .lbl{color:#f3dfb0}
.mem .gk-card{background:linear-gradient(180deg,#17505c,#0c2c34);border-color:rgba(255,209,102,.55)}
.mem .gk-seg button{background:#123a44;color:var(--ink)}
.mem .gk-seg button[aria-pressed="true"]{background:linear-gradient(180deg,#ffe58a,#f5c542);color:#2a1a00;border-color:#fff1b5}
.mem .gk-sw{background:#123a44}
.mem .gk-sw[aria-checked="true"]{background:#2f7a4c;border-color:#8fe3ad}
.mem .gk-vol::-webkit-slider-runnable-track{background:linear-gradient(90deg,#26c6da,#9ccc65,#f5c542,#ff7043)}
.mem .gk-vol::-moz-range-track{background:linear-gradient(90deg,#26c6da,#9ccc65,#f5c542,#ff7043)}
.mem .gk-toast{background:rgba(10,34,40,.95)}
.mem .lv button{background:linear-gradient(160deg,#1f6a4a,#0f3a2a);border-color:rgba(255,209,102,.45)}
.mem .lv button[data-lv="medium"]{background:linear-gradient(160deg,#1d5f86,#0f324a)}
.mem .lv button[data-lv="hard"]{background:linear-gradient(160deg,#9a4f12,#4e2608)}
.mem .lv button[data-lv="expert"]{background:linear-gradient(160deg,#9c2f2f,#4d1414)}
.mem .lv .s{color:#f1e6cc}
.mem .lv .b{color:#c8f5d8}
.mem .decks button{background:linear-gradient(160deg,#1a5662,#0e2f37);color:#fff4dc}
.mem .decks button[data-deck="robots"]{background:linear-gradient(160deg,#7a4a16,#3a230a)}
.mem .decks button[data-deck="cats"]{background:linear-gradient(160deg,#2f6b3a,#14321b)}
.mem .decks button[data-deck="space"]{background:linear-gradient(160deg,#1d4a8a,#0e2546)}
.mem .decks button[data-deck="trains"]{background:linear-gradient(160deg,#8a2f22,#43150f)}
.mem .decks button[aria-pressed="true"]{border-color:#ffe58a;box-shadow:0 0 0 3px rgba(245,197,66,.55);filter:brightness(1.18)}
.mem .hud .av,.mem .mm-bots .bf{background:#143a44}
.mem .lvn,.mem .codein{background:#0c2a31}
.mem .onl{background:rgba(10,32,38,.86)}
.mem .seatlist li{background:rgba(18,58,68,.9)}
.mem .sav{background:#1d5561}
.mem #btnDeal[disabled]{background:#143a44}
.mem .stars span{color:#4f6670}
.tt-plat img{background:radial-gradient(circle,#fff3d1,#ffd166)}
.beat i.on{background:linear-gradient(180deg,#ffe58a,#ff8a50);border-color:#ffe58a}
/* card back: new vector back (sym-v1/back.svg), teal with amber */
.card .bk{background:#0f4c5c url(sym-v1/back.svg) center/cover;box-shadow:0 4px 10px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,209,102,.5)}
/* card face: each pair tinted with its own color (--pc) + a ring in that color */
.card .f{background:#fffaf0;background:radial-gradient(circle at 50% 42%,#fffdf7,color-mix(in srgb,var(--pc,#e0c995) 16%,#fff8ea) 70%);box-shadow:0 4px 10px rgba(0,0,0,.5),inset 0 0 0 calc(var(--cw) * .045) var(--pc,#c99a3c),inset 0 0 0 calc(var(--cw) * .07) #fffaf0}
.card .f img{filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}
.card.sym .f img{width:72%;height:72%}
.card .f img.pip{position:absolute;left:5%;top:4%;width:28%;height:28%;padding:2%;border-radius:50%;background:#fffaf0;box-shadow:0 0 0 2px var(--pc,#c99a3c);filter:none}
.card.done.me .f{box-shadow:0 0 0 3px #ffd166,0 4px 10px rgba(0,0,0,.5),inset 0 0 0 calc(var(--cw) * .045) var(--pc,#c99a3c),inset 0 0 0 calc(var(--cw) * .07) #fffaf0}
.card.done.dj .f{box-shadow:0 0 0 3px #4dd0e1,0 4px 10px rgba(0,0,0,.5),inset 0 0 0 calc(var(--cw) * .045) var(--pc,#c99a3c),inset 0 0 0 calc(var(--cw) * .07) #fffaf0}
.card.done .f{filter:none}
.card.miss .f{box-shadow:0 4px 10px rgba(0,0,0,.5),inset 0 0 0 calc(var(--cw) * .04) #9aa6c8,inset 0 0 0 calc(var(--cw) * .06) #e6ebf7}
.stk-grid span.got{background:radial-gradient(circle,#fffdf7,#fff1d6)}
