/* Mikey's Go Fish (t8624) */
.rec{margin:10px 0 0;text-align:center;font-size:15px;color:#bfe9cf;font-weight:700;min-height:20px}
.table{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;padding-bottom:6px}
.opps{flex:none;display:flex;justify-content:center;gap:8px}
.opp{position:relative;flex:1 1 0;max-width:150px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 6px 7px;border-radius:18px;border:2px solid rgba(255,229,138,.25);background:rgba(16,8,32,.72);cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .15s}
.opp[aria-pressed="true"]{border-color:#8fd3ff;box-shadow:0 0 0 3px rgba(143,211,255,.3),0 0 18px rgba(143,211,255,.4)}
.opp.turn{border-color:var(--gold);box-shadow:0 0 0 3px rgba(245,197,66,.25),0 0 18px rgba(245,197,66,.45)}
.opp.out{opacity:.55}
.opp .av{width:58px;height:58px;border-radius:50%;object-fit:cover;border:3px solid var(--gold);box-shadow:0 4px 10px rgba(0,0,0,.5);background:#2a1545}
.opp .nm{font-size:15px;font-weight:700;color:var(--gold2);white-space:nowrap}
.opp .info{display:flex;gap:6px;align-items:center;font-size:14px;color:#e9dcc0;white-space:nowrap}
.opp .fan{position:relative;height:30px;width:72px}
.opp .fan i{position:absolute;bottom:0;left:50%;width:20px;height:28px;margin-left:-10px;border-radius:3px;background:#2a1545 url(../games/img/mem/back.webp) center/cover;box-shadow:0 1px 3px rgba(0,0,0,.6);transform-origin:50% 120%}
.bk-n{display:inline-flex;align-items:center;gap:3px;padding:1px 8px;border-radius:999px;background:rgba(245,197,66,.18);border:1px solid rgba(245,197,66,.45);color:var(--gold2);font-size:14px;font-weight:700}
.bubble{position:absolute;z-index:6;left:50%;top:100%;transform:translate(-50%,6px);min-width:110px;max-width:200px;padding:8px 12px;border-radius:14px;background:#fff6dc;color:#2a1545;font-weight:700;font-size:15px;line-height:1.25;text-align:center;box-shadow:0 6px 16px rgba(0,0,0,.5);animation:bIn .22s cubic-bezier(.2,1.5,.4,1)}
.bubble::before{content:"";position:absolute;left:50%;top:-7px;margin-left:-7px;border:7px solid transparent;border-top:0;border-bottom-color:#fff6dc}
.bubble.fish{background:#8fd3ff;color:#0b2540}
.bubble.fish::before{border-bottom-color:#8fd3ff}
@keyframes bIn{from{transform:translate(-50%,6px) scale(.6);opacity:0}}
.mid{flex:1;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.pond{position:relative;width:min(44vw,170px);aspect-ratio:1;display:flex;align-items:center;justify-content:center}
.platter{position:absolute;inset:0;border-radius:50%;background:repeating-radial-gradient(circle at 50% 50%,#141018 0 2px,#1d1822 2px 4px);box-shadow:0 0 0 6px #5a3d1c,0 0 0 9px #b07a3c,0 10px 30px rgba(0,0,0,.7),0 0 40px rgba(138,79,240,.35);animation:spin 6s linear infinite}
.platter::after{content:"";position:absolute;left:50%;top:50%;width:30%;height:30%;margin:-15%;border-radius:50%;background:radial-gradient(circle,#ffe58a 0 10%,#b07aff 11% 100%);box-shadow:inset 0 0 0 2px #fff1b5}
@keyframes spin{to{transform:rotate(360deg)}}
.platter .cnt{display:none}
.pile{position:relative;width:36%;aspect-ratio:5/7;z-index:2}
.pile i{position:absolute;inset:0;border-radius:6px;background:#2a1545 url(../games/img/mem/back.webp) center/cover;box-shadow:0 2px 6px rgba(0,0,0,.6)}
.plbl{position:absolute;bottom:-26px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:14px;font-weight:700;color:#e9dcc0}
.plbl b{color:var(--gold2)}
.msg{margin:22px 0 0;min-height:44px;max-width:420px;text-align:center;font-size:16px;font-weight:700;color:var(--ink);text-shadow:0 2px 4px rgba(0,0,0,.7);padding:0 6px}
.me{position:relative;flex:none;display:flex;flex-direction:column;gap:4px}
.mebar{display:flex;align-items:center;gap:8px;min-height:34px}
.mename{font-weight:700;font-size:16px;color:var(--gold2);white-space:nowrap;display:flex;gap:6px;align-items:center}
.mybooks{display:flex;gap:4px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.mybooks span{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 6px;border-radius:8px;background:linear-gradient(180deg,#fff6dc,#ecd9ad);color:#2a1545;font-weight:700;font-size:15px;box-shadow:2px 2px 0 #c9a96a,4px 4px 0 #a6884f}
.me-b{top:auto;bottom:calc(100% - 30px)}
.me-b::before{top:auto;bottom:-7px;border-bottom:0;border-top:7px solid #fff6dc}
.hand{position:relative;height:calc(var(--hcw,70px) * 1.4 + 22px);margin:0 2px}
.hand .hc{position:absolute;bottom:0;width:var(--hcw,70px);height:calc(var(--hcw,70px) * 1.4);padding:0;border:0;background:none;cursor:pointer;transition:transform .22s cubic-bezier(.3,1.4,.5,1),left .3s,filter .2s;transform-origin:50% 140%}
.hand .hc svg{width:100%;height:100%;display:block;filter:drop-shadow(0 3px 5px rgba(0,0,0,.55))}
.hand .hc.sel{transform:translateY(-18px) rotate(var(--rot,0deg))!important;filter:drop-shadow(0 0 10px rgba(255,214,96,.95))}
.hand .hc.new{animation:pop .5s ease-out}
@keyframes pop{0%{filter:drop-shadow(0 0 0 #ffe58a)}40%{filter:drop-shadow(0 0 16px #ffe58a)}100%{filter:none}}
.hand.lock .hc{cursor:default}
.hand .empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#e9dcc0;font-size:15px}
.askbar{display:flex;justify-content:center;padding:2px 0 4px}
.askbar .gk-btn{width:min(420px,100%)}
.askbar .gk-btn[disabled]{opacity:.6}
.fly{position:fixed;z-index:40;pointer-events:none;width:var(--fw,60px);height:calc(var(--fw,60px) * 1.4);transition:transform .5s cubic-bezier(.4,.1,.2,1),opacity .2s;will-change:transform}
.fly svg,.fly i{width:100%;height:100%;display:block}
.fly i{border-radius:6px;background:#2a1545 url(../games/img/mem/back.webp) center/cover;box-shadow:0 3px 8px rgba(0,0,0,.6)}
.bookfx{position:fixed;z-index:45;pointer-events:none;padding:10px 18px;border-radius:16px;background:linear-gradient(180deg,#ffe58a,#f5c542);color:#2a1a00;font-weight:700;font-size:20px;box-shadow:0 8px 24px rgba(0,0,0,.5),0 0 30px rgba(255,214,96,.7);animation:bookIn 1.3s ease-out forwards;transform:translate(-50%,-50%)}
@keyframes bookIn{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}20%{transform:translate(-50%,-50%) scale(1.1);opacity:1}75%{transform:translate(-50%,-60%) scale(1);opacity:1}100%{transform:translate(-50%,-90%) scale(.9);opacity:0}}
.endc{text-align:center}
.end-dj{width:110px;height:auto;display:block;margin:-4px auto 0}
.standings{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:6px}
.standings li{display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:14px;background:rgba(0,0,0,.35);border:1px solid rgba(255,229,138,.22);font-size:17px;font-weight:700}
.standings li.win{border-color:var(--gold);background:rgba(245,197,66,.16)}
.standings img,.standings .you{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}
.standings .you{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#ffe58a,#f5c542);color:#2a1a00}
.standings .nm{flex:1;text-align:left}
.standings b{color:var(--gold2);font-size:20px}
.wbest{color:#bfe9cf!important;font-weight:700}
@media (orientation:landscape) and (max-height:520px){
  .table{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,1.6fr);grid-template-rows:auto 1fr;gap:4px 14px}
  .opps{grid-column:1;grid-row:1;justify-content:flex-start}
  .opp{flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:none;padding:5px 6px;gap:2px 6px}
  .opp .av{width:40px;height:40px;border-width:2px}
  .opp .fan{display:none}
  .opp .bubble{top:auto;bottom:auto;top:100%}
  .mid{grid-column:1;grid-row:2;min-height:0;flex-direction:row;gap:12px}
  .pond{width:min(26vh,120px)}
  .plbl{bottom:-22px}
  .msg{margin:0;flex:1;font-size:15px;text-align:left}
  .me{grid-column:2;grid-row:1 / span 2;justify-content:flex-end}
  .end-dj{display:none}
}

/* t8633/t8634 aquarium theme: glowing tank, goldfish card delivery, fish book celebration */
.gf .gk-panel{background:rgba(4,22,38,.8);border-color:rgba(140,230,255,.35)}
.gf .gk-card{background:linear-gradient(180deg,#0f3550,#071a2c);border-color:rgba(140,230,255,.5)}
.gf .gk-btn:not(.gold){background:linear-gradient(180deg,#145073,#0b2d47);border-color:rgba(140,230,255,.4)}
.gf .gk-seg button{background:#0a2a42;border-color:rgba(140,230,255,.35)}
.gf .gk-seg button[aria-pressed="true"]{background:linear-gradient(180deg,#ffb24a,#e07a12);color:#2a1200;border-color:#ffe0a8}
.gf .gk-notices{background:rgba(2,14,26,.85)}
.opp{background:rgba(4,24,42,.78);border-color:rgba(140,230,255,.3)}
.tank-fx{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.tank-fx i{position:absolute;bottom:-20px;width:10px;height:10px;border-radius:50%;border:1.5px solid rgba(200,245,255,.55);background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.6),rgba(160,230,255,.08) 60%);animation:rise 11s linear infinite;opacity:.7}
.tank-fx i:nth-child(1){left:8%;animation-delay:0s}.tank-fx i:nth-child(2){left:22%;width:6px;height:6px;animation-delay:3s;animation-duration:9s}
.tank-fx i:nth-child(3){left:37%;animation-delay:6s;animation-duration:13s}.tank-fx i:nth-child(4){left:55%;width:7px;height:7px;animation-delay:1.5s}
.tank-fx i:nth-child(5){left:68%;animation-delay:4.5s;animation-duration:12s}.tank-fx i:nth-child(6){left:81%;width:5px;height:5px;animation-delay:7s;animation-duration:8s}
.tank-fx i:nth-child(7){left:91%;animation-delay:2s;animation-duration:14s}.tank-fx i:nth-child(8){left:46%;width:5px;height:5px;animation-delay:9s}
@keyframes rise{from{transform:translate(0,0)}50%{transform:translate(8px,-55vh)}to{transform:translate(-4px,-110vh)}}
.platter{background:radial-gradient(circle at 50% 38%,rgba(120,230,255,.35),rgba(20,110,160,.55) 55%,rgba(6,40,70,.85) 100%);box-shadow:0 0 0 3px rgba(190,245,255,.55),0 0 0 7px rgba(40,140,190,.35),0 0 36px rgba(90,220,255,.55),inset 0 -12px 30px rgba(0,30,60,.6),inset 0 10px 20px rgba(255,255,255,.15)}
.platter::after{width:34%;height:14%;left:22%;top:14%;margin:0;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.55),rgba(255,255,255,0) 70%);box-shadow:none;transform:rotate(-18deg)}
.pond .idle{position:absolute;width:34%;height:auto;left:8%;bottom:10%;z-index:3;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45));animation:idleSwim 7s ease-in-out infinite;pointer-events:none}
@keyframes idleSwim{0%{transform:translate(0,0) scaleX(1)}45%{transform:translate(150%,-8%) scaleX(1)}50%{transform:translate(150%,-8%) scaleX(-1)}95%{transform:translate(0,4%) scaleX(-1)}100%{transform:translate(0,0) scaleX(1)}}
.pile{transform:translateY(-8%)}
.fishd{position:fixed;z-index:42;pointer-events:none;width:var(--fw,60px);transition:transform .9s cubic-bezier(.45,.05,.35,1);will-change:transform}
.fishd .fw{display:block;width:calc(var(--fw,60px) * 1.25);margin-left:calc(var(--fw,60px) * -.12);animation:swish .35s ease-in-out infinite alternate}
.fishd .fw img{width:100%;height:auto;display:block;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5))}
.fishd.left .fw img{transform:scaleX(-1)}
.fishd .fc{display:block;width:var(--fw,60px);height:calc(var(--fw,60px) * 1.4);margin-top:-10%;transform:rotate(-6deg)}
.fishd .fc svg,.fishd .fc i{width:100%;height:100%;display:block}
.fishd .fc i{border-radius:6px;background:#2a1545 url(../games/img/mem/back.webp) center/cover;box-shadow:0 3px 8px rgba(0,0,0,.6)}
@keyframes swish{from{transform:rotate(-4deg) translateY(0)}to{transform:rotate(4deg) translateY(-3px)}}
.jumpfish{position:fixed;z-index:46;pointer-events:none;width:84px;height:auto;animation:jump 1.3s cubic-bezier(.3,.0,.4,1) forwards;filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}
@keyframes jump{0%{transform:translate(-110px,40px) rotate(30deg);opacity:0}12%{opacity:1}50%{transform:translate(-30px,-70px) rotate(-10deg)}100%{transform:translate(60px,30px) rotate(-55deg);opacity:0}}
.splash{position:fixed;z-index:44;pointer-events:none;width:90px;height:24px;margin-left:-45px;border-radius:50%;border:3px solid rgba(200,245,255,.8);animation:splash .7s ease-out .9s both}
@keyframes splash{from{transform:scale(.3);opacity:1}to{transform:scale(1.6);opacity:0}}
.bubble.fish{background:#8fe3ff}
body.calm .tank-fx,body.calm .pond .idle{animation:none}
body.calm .tank-fx i{display:none}
@media (orientation:landscape) and (max-height:520px){.pond .idle{width:38%}}
@media (min-width:1000px){.me{width:min(760px,100%);margin:0 auto}.opps{gap:14px}}
/* t8700u: skill 1-100 slider (same control as Checkers) */
.lbl.gf-lvl{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.lvw{font-size:15px;color:var(--gold2);text-transform:none;letter-spacing:0}
.lvrow{display:flex;align-items:center;gap:8px}
.lvrow .gk-btn.icon{min-width:44px;min-height:44px;padding:0;font-size:22px}
.lvr{flex:1;min-width:0}
.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}
.lvn::-webkit-inner-spin-button,.lvn::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
/* t8716u: robots are DJ Shuffle, Tommy and Pinky; invite up to 3 friends online */
.gf-mode button{min-height:50px;font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.gf-mode .mi{font-size:20px;line-height:1}
.gf-bots{flex-wrap:nowrap}
.gf-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}
.gf-bots button small{font-size:12px;font-weight:700;opacity:.8}
.gf-bots .bf{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,229,138,.7);background:#2a1545}
.gf-bots button[aria-pressed="true"] .bf{border-color:#fff}
.gf-bots button[disabled]{opacity:.45;cursor:not-allowed}
.gf-note{margin:0 2px 10px;font-size:15px;color:#e9dcc0;text-align:center;line-height:1.35}
#waitNote{margin:14px 0 0;font-weight:700;color:#bfe9cf}
.joinrow{display:flex;gap:8px}
.codein{flex:1;min-width:0;min-height:46px;border-radius:12px;border:1.5px solid rgba(140,230,255,.35);background:#0a2a42;color:var(--ink);font-family:inherit;font-weight:700;font-size:20px;letter-spacing:.18em;text-align:center;text-transform:uppercase}
.codein::placeholder{color:rgba(233,220,192,.35)}
.onl{display:flex;flex-direction:column;gap:8px;padding:10px;margin-bottom:12px;border-radius:14px;background:rgba(2,18,32,.7);border:1.5px solid rgba(140,230,255,.4)}
.onl-st{margin:0;text-align:center;font-size:15px;font-weight:700;color:#e9dcc0}
.onl-code{display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;color:#cdbfa3;font-weight:700}
.onl-code b{font-size:28px;letter-spacing:.2em;color:var(--gold2)}
.gf-acts{display:flex;gap:8px}.gf-acts .gk-btn{flex:1}
.seatlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.seatlist li{display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 8px;border-radius:12px;background:rgba(10,42,66,.8);border:1px solid rgba(140,230,255,.3);font-size:15px;font-weight:700;color:var(--ink)}
.seatlist li.open{border-style:dashed;color:#9fc3d6;background:transparent}
.seatlist .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seatlist small{font-size:12px;color:var(--gold2)}
.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:#145073;color:#fff}
.seatlist li.open .sav{border:2px dashed rgba(140,230,255,.5);background:transparent;color:#9fc3d6}
.sav.crew,.av.crew{background:linear-gradient(180deg,#ffb24a,#e07a12);color:#2a1200}
.opp .av.crew{display:inline-flex;align-items:center;justify-content:center;font-size:24px;font-weight:700}
.dot{flex:none;width:10px;height:10px;border-radius:50%;background:#6b7a86}.dot.on{background:#5fe08a;box-shadow:0 0 6px #5fe08a}
.standings .sav{width:36px;height:36px}
@media (orientation:landscape) and (max-height:520px){.gf-bots button{min-height:64px}.gf-bots .bf{width:32px;height:32px}.onl-code b{font-size:22px}}
.opp .hosttag{font-size:12px;color:#bfe9cf;font-weight:700}

/* tfTB5 B-020: inline Create/Join error */
.gf .onl-err{margin:8px 0 0;padding:8px 10px;border-radius:10px;background:rgba(120,20,30,.4);border:1px solid #ff8a8a;color:#ffd6d6;font-weight:700;font-size:14px;line-height:1.3}
.gf .onl-st.lost{color:#ffb4b4;font-weight:800}

/* B-040: toast slot over the status line (never over controls, header or portraits) and in-flow strip elsewhere */
.gk-toast-slot{position:fixed;z-index:55;display:flex;align-items:center;justify-content:center;padding:2px 10px;border-radius:12px;background:rgba(20,10,40,.96);border:1.5px solid var(--gold);color:var(--ink);font-weight:700;font-size:15px;line-height:1.2;text-align:center;pointer-events:none;opacity:0;transition:opacity .2s}
.gk-toast-slot.on{opacity:1}
.gk-toast-slot span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.gk-toast-flow{flex:none;align-self:center;margin:4px 0;max-width:min(92vw,420px);padding:8px 14px;border-radius:12px;background:rgba(20,10,40,.94);border:1.5px solid var(--gold);color:var(--ink);font-weight:700;font-size:15px;line-height:1.25;text-align:center}

/* t9038u: your name for friends (online invite) */
.gf .namein{letter-spacing:.02em;text-transform:none;font-size:18px;margin-bottom:10px;width:100%}
.gf .codein::placeholder{color:rgba(233,220,192,.62)}
.gf .onl-err.ok{background:rgba(20,90,50,.5);border-color:#7fe0a0;color:#eafff0}
