:root{color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:#0b0f14;color:#e6edf3;font:15px/1.6 system-ui,Segoe UI,PingFang TC,Microsoft JhengHei,sans-serif}.wrap{max-width:620px;margin:0 auto;padding:18px 16px 60px}h1{font-size:20px;margin:0}.sub{color:#8b98a5;font-size:13px}.muted{color:#8b98a5}.small{font-size:12px}b.fp{font-family:Cascadia Code,Consolas,monospace;color:#58a6ff}.cred{color:#f0806c}.cblk{color:#cdd9e5}.topbar{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.room{font-size:12px;color:#8b98a5;font-weight:400;margin-left:6px}button.leave{background:transparent;border:none;color:#8b98a5;font-size:20px;padding:0 8px 0 0;cursor:pointer;vertical-align:middle}button.leave:hover{color:#e6edf3;background:transparent}.statusline{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:13px;background:#131a22;border:1px solid #223;border-radius:10px;padding:8px 12px}.badge{display:inline-flex;align-items:center;gap:6px;font-weight:600}.statusline.trust{margin-top:6px;font-size:12px;background:#0f1720}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.turnbar{text-align:center;padding:8px;font-size:14px;color:#8b98a5}.turnbar .yourturn{color:#3fb950;font-weight:700}.turnbar .result{color:#e6edf3;font-weight:600;font-size:15px}button.big.resign{background:#f8514922;border-color:#f85149}button.big.resign:hover{background:#f8514933}button:disabled{opacity:.45;cursor:not-allowed}.controls.replaybar{gap:8px}.controls.replaybar input[type=range]{flex:1;min-width:120px;accent-color:#58a6ff}.foot{display:block;margin-top:8px}.board{display:block;margin:4px auto;touch-action:manipulation}.board-bg{fill:url(#wood-face)}.grid line{stroke:#7a5322;stroke-width:1.4}.river{fill:#9a6a2c;font-size:20px;letter-spacing:4px;font-weight:600;opacity:.8}.piece{cursor:pointer}.xq-shadow{fill:url(#piece-shadow);opacity:.6}.xq-side{fill:#9c7440}.xq-top{fill:url(#xq-face)}.xq-ring{fill:none;stroke-width:1.6;opacity:.75}.xq-ring.red{stroke:#c0392b}.xq-ring.black{stroke:#2c3038}.xq-ring.sel{stroke:#2f8f4e;stroke-width:3.5;opacity:1;filter:drop-shadow(0 0 4px #3fb950)}.glyph{font-size:27px;font-weight:800;pointer-events:none;-webkit-user-select:none;user-select:none}.glyph.red{fill:#c0392b}.glyph.black{fill:#21252b}.piece.sliding{animation-name:xq-slide;animation-timing-function:linear;animation-fill-mode:both}.piece.taken{animation-name:piece-lift;animation-timing-function:linear;animation-fill-mode:both}@media (prefers-reduced-motion: reduce){.piece.sliding{animation:none}.piece.taken{animation:none;opacity:0}}.target-dot{fill:#2f8f4e;opacity:.8}.target-ring{fill:none;stroke:#2f8f4e;stroke-width:3;opacity:.85}.lastmove{fill:none;stroke:#d29922;stroke-width:2;stroke-dasharray:4 3;opacity:.8}.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}button{background:#21262d;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:6px 12px;font-size:14px;cursor:pointer}button:hover{background:#2d333b}button.big{padding:8px 16px;font-weight:600}button.primary{background:#1f6feb33;border-color:#1f6feb}button.off{background:#f8514933;border-color:#f85149}.lobby{max-width:520px;padding-top:48px}.card{background:#131a22;border:1px solid #223;border-radius:12px;padding:16px;margin:16px 0}.field{display:flex;gap:8px;flex-wrap:wrap}.field input{flex:1;min-width:160px;background:#0d1117;border:1px solid #30363d;color:#e6edf3;border-radius:8px;padding:8px 11px;font-size:14px}.hint{color:#8b98a5;font-size:12px;margin:12px 0 0}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#2d333b;border:1px solid #f85149;color:#ffd7d0;padding:8px 16px;border-radius:20px;font-size:14px;box-shadow:0 6px 20px #0008}.game-title{font-size:15px;font-weight:700;margin-bottom:10px;color:#e6edf3}.go-bg{fill:url(#wood-face)}.go-grid line{stroke:#6b4a20;stroke-width:1.1;opacity:.85}.go-star{fill:#4a3316}.go-stone.face{stroke:none}.go-stone.face.black{fill:url(#go-black)}.go-stone.face.white{fill:url(#go-white)}.go-stone.rim{stroke:none}.go-stone.rim.black{fill:#000}.go-stone.rim.white{fill:#9d8b6d}.go-shadow{fill:url(#piece-shadow);opacity:.62}.go-piece.capturing{pointer-events:none}.go-shadow.placing,.go-shadow.capturing,.go-stonewrap.placing,.go-stonewrap.capturing{animation-timing-function:linear;animation-fill-mode:both}.go-shadow.placing{animation-name:go-shadow}.go-shadow.capturing{animation-name:piece-lift-shadow}.go-stonewrap.placing{animation-name:go-place}.go-stonewrap.capturing{animation-name:piece-lift}.go-ring{fill:none}.go-ring.win{stroke:#2f8f4e;stroke-width:2.5;filter:drop-shadow(0 0 5px #3fb950)}.go-ring.last{stroke:#ff2323;stroke-width:3;filter:drop-shadow(0 0 7px #ff2323) drop-shadow(0 0 13px #ff2323);animation:last-pulse 1.1s ease-in-out infinite}.go-ring.win.last{animation:none;stroke:#ff2323;filter:drop-shadow(0 0 5px #3fb950) drop-shadow(0 0 10px #ff2323)}@keyframes last-pulse{0%,to{filter:drop-shadow(0 0 4px #ff2323) drop-shadow(0 0 7px #ff2323)}50%{filter:drop-shadow(0 0 10px #ff2323) drop-shadow(0 0 20px #ff5a3c)}}@media (prefers-reduced-motion: reduce){.go-ring.last,.go-stonewrap.placing,.go-shadow.placing{animation:none}.go-piece.capturing{animation:none;opacity:0}.go-stonewrap.capturing,.go-shadow.capturing{animation:none}.gm-winline{animation:none;stroke-dashoffset:0}}.gm-winline{fill:none;stroke-linecap:round;stroke-dasharray:1;animation-name:gm-winline;animation-timing-function:linear;animation-fill-mode:both}.gm-winline.glow{stroke:#3fb950;stroke-width:11;opacity:.35;filter:blur(2px)}.gm-winline.core{stroke:#b6f5c8;stroke-width:3}.mahjong .mj-opps{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.mj-opp{flex:1;min-width:130px;background:#131a22;border:1px solid #223;border-radius:10px;padding:8px 10px;font-size:12px}.mj-opp.turn{border-color:#d29922;box-shadow:0 0 0 1px #d2992255}.mj-opp .who{font-weight:700;color:#e6edf3}.mj-opp .cnt{color:#8b98a5}.mj-opp .melds{margin-top:4px;display:flex;flex-wrap:wrap;gap:3px}.mj-opp .meld{background:#0d1117;border:1px solid #30363d;border-radius:5px;padding:1px 4px}.mj-river{display:flex;flex-wrap:wrap;gap:3px;min-height:42px;margin:8px 0;padding:8px;background:#0d141b;border-radius:10px}.mj-hand{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.mjtile{font:600 17px/1 system-ui,PingFang TC,Microsoft JhengHei,sans-serif;color:#14181f;background:linear-gradient(168deg,#fbf7ec,#f1ece0 58%,#e2dcca);border:1px solid #cfc7b0;border-radius:7px;padding:9px 8px 7px;min-width:30px;cursor:default;box-shadow:inset 0 1px #fffdf7,inset 0 -4px #cdc4ab,0 3px 4px #0006}.mjtile.small{font-size:13px;padding:5px 5px 4px;min-width:22px;box-shadow:inset 0 1px #fffdf7,inset 0 -3px #cdc4ab,0 2px 3px #0006}.mjtile.dealing,.dom-dealing{animation-name:deal-drop;animation-timing-function:linear;animation-fill-mode:both}@media (prefers-reduced-motion: reduce){.mjtile.dealing,.dom-dealing{animation:none}}.mjtile.dim{opacity:.82}.mjtile.man{color:#1f6f3d}.mjtile.sou{color:#146b8c}.mjtile.pin{color:#b23}.mjtile.wind,.mjtile.dragon{color:#14181f}.mjtile.bonus{color:#a5793a}.mjtile.active{cursor:pointer}.mjtile.active:hover{transform:translateY(-3px);border-color:#3fb950}.mj-actions{flex-wrap:wrap}.field select{background:#0d1117;border:1px solid #30363d;color:#e6edf3;border-radius:8px;padding:8px 11px;font-size:14px}.pcard{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:42px;height:58px;color:#14181f;border:1px solid #cbd5e1;background:linear-gradient(162deg,#fff,#f4f7fa 60%,#e4eaf0);border-radius:6px;font-weight:800;line-height:1;-webkit-user-select:none;user-select:none;box-shadow:inset 0 1px #fff,inset 0 -2px #d3dbe4,0 2px 5px #0007}.pcard.small{width:30px;height:42px;border-radius:5px}.pcard b{font-size:17px}.pcard.small b{font-size:12px}.pcard i{font-size:15px;font-style:normal}.pcard.small i{font-size:12px}.pcard.red{color:#c0142b}.pcard.back{background:repeating-linear-gradient(45deg,#1f3b73,#1f3b73 5px,#274b91 5px,#274b91 10px);border-color:#16305e;box-shadow:inset 0 0 0 3px #0d1117aa,0 1px 3px #0006}.pcardwrap{position:relative;display:inline-flex;animation-name:rv-flip;animation-timing-function:linear;animation-fill-mode:both}.pcardwrap .pcard.face-old{position:absolute;top:0;right:0;bottom:0;left:0;animation-name:rv-face-old}.pcard.face-new{animation-name:rv-face-new}.pcard.face-old,.pcard.face-new{animation-timing-function:linear;animation-fill-mode:both}@media (prefers-reduced-motion: reduce){.pcardwrap,.pcard.face-new{animation:none}.pcard.face-old{animation:none;display:none}}.hole{display:flex;gap:5px}.hole.big{gap:8px}.poker .pk-opps{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.pk-opp{flex:1;min-width:140px;background:#131a22;border:1px solid #223;border-radius:10px;padding:8px 10px;font-size:12px}.pk-opp.turn{border-color:#d29922;box-shadow:0 0 0 1px #d2992255}.pk-opp.win{border-color:#3fb950;box-shadow:0 0 0 1px #3fb95055}.pk-opp .who{font-weight:700;color:#e6edf3;display:flex;justify-content:space-between}.pk-opp .who em{color:#d29922;font-style:normal;font-size:11px}.pk-opp .hole{margin:5px 0}.pk-opp .cnt{color:#8b98a5}.pk-board{margin:12px 0;padding:12px;background:#0d2417;border:1px solid #14432a;border-radius:12px;text-align:center}.pk-board-label{color:#7fd6a3;font-size:12px;margin-bottom:8px;letter-spacing:.5px}.pk-community{display:flex;gap:8px;justify-content:center}.pk-me{margin:12px 0;text-align:center}.pk-me-label{color:#e6edf3;font-size:13px;font-weight:600;margin-bottom:6px}.pk-me .hole{justify-content:center}.pk-actions{flex-wrap:wrap;align-items:center}.pk-actions .allin{border-color:#f85149;color:#ffd7d0}.pk-raise{display:flex;align-items:center;gap:8px}.pk-raise input[type=range]{width:130px;accent-color:#d29922}.banqi .bq-board{display:grid;gap:5px;max-width:620px;margin:14px auto;padding:12px;background:repeating-linear-gradient(91deg,#00000010 0,#00000010 1px,#ffffff08 1px,#ffffff08 3px,#0000 3px,#0000 7px),linear-gradient(160deg,#ecc47c,#e0b263 55%,#cd9a4d);border:2px solid #8a6329;border-radius:14px;touch-action:manipulation;box-shadow:inset 0 0 22px #00000030}.bq-cell{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;border-radius:50%;font:700 clamp(17px,5.4vw,30px)/1 "PingFang TC","Microsoft JhengHei",serif;-webkit-user-select:none;user-select:none;transition:filter .08s,box-shadow .08s}.bq-cell.empty{background:radial-gradient(circle,transparent 0 40%,#6b471a1f 44% 50%,transparent 54%);box-shadow:none}.bq-cell.down{color:#f0dcbe;cursor:default;background:radial-gradient(circle,transparent 0 62%,#4a2a0daa 62% 64.5%,transparent 65%),radial-gradient(circle,transparent 0 88%,#3d220a66 90%,#2a1606a6 100%),repeating-linear-gradient(97deg,#00000014 0,#00000014 1px,#ffffff0a 1px,#ffffff0a 3px,#0000 3px,#0000 8px),radial-gradient(circle at 40% 34%,#b57c45,#996330 46%,#6d411a);box-shadow:inset 0 0 0 1.5px #55300f,0 2px 3px #0008}.bq-cell.down .bq-back{font-size:.6em;opacity:.62;letter-spacing:1px;text-shadow:0 1px 0 #ffffff2e}.bq-cell.down.flippable{cursor:pointer}.bq-cell.down.flippable:hover{filter:brightness(1.16);box-shadow:inset 0 0 0 2px #e8c58a,0 0 0 2px #3fb95088}.bq-cell.up{background:radial-gradient(circle,transparent 0 62%,#a5793a99 62% 64.5%,transparent 65%),radial-gradient(circle,transparent 0 88%,#a5793a4d 90%,#8a632966 100%),radial-gradient(circle at 42% 33%,#fffdf6,#fff8ec 40%,#f1dcb4);box-shadow:inset 0 0 0 1.5px #a5793a,0 2px 3px #0008}.bq-cell.up.red{color:#b8352a}.bq-cell.up.black{color:#17181c}.bq-cell.up.mine{cursor:pointer}.bq-cell.up.mine:hover{box-shadow:inset 0 0 0 2px #2f9e46,0 2px 3px #0008}.bq-cell.sel{box-shadow:inset 0 0 0 3px #3fb950,0 0 0 2px #3fb95066!important}.bq-cell.target{cursor:pointer;position:relative}.bq-cell.empty.target:after{content:"";position:absolute;width:30%;height:30%;border-radius:50%;background:#3fb950cc;box-shadow:0 0 0 3px #3fb95044}.bq-cell.up.target{box-shadow:inset 0 0 0 3px #e5484d,0 2px 3px #0008;cursor:pointer}.bq-cell.last{outline:2px dashed #d29922;outline-offset:-3px;border-radius:50%}.bq-cell.flipping{position:relative;background:none!important;box-shadow:none!important;animation-name:rv-flip;animation-timing-function:linear;animation-fill-mode:both}.bq-face{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;display:flex;align-items:center;justify-content:center;animation-timing-function:linear;animation-fill-mode:both}.bq-face.old{color:#f0dcbe;font-size:.6em;letter-spacing:1px;text-shadow:0 1px 0 #ffffff2e;background:radial-gradient(circle,transparent 0 62%,#4a2a0daa 62% 64.5%,transparent 65%),radial-gradient(circle,transparent 0 88%,#3d220a66 90%,#2a1606a6 100%),repeating-linear-gradient(97deg,#00000014 0,#00000014 1px,#ffffff0a 1px,#ffffff0a 3px,#0000 3px,#0000 8px),radial-gradient(circle at 40% 34%,#b57c45,#996330 46%,#6d411a);box-shadow:inset 0 0 0 1.5px #55300f,0 2px 3px #0008;animation-name:rv-face-old}.bq-face.new{background:radial-gradient(circle,transparent 0 62%,#a5793a99 62% 64.5%,transparent 65%),radial-gradient(circle,transparent 0 88%,#a5793a4d 90%,#8a632966 100%),radial-gradient(circle at 42% 33%,#fffdf6,#fff8ec 40%,#f1dcb4);box-shadow:inset 0 0 0 1.5px #a5793a,0 2px 3px #0008;animation-name:rv-face-new}.bq-face.new.red{color:#b8352a}.bq-face.new.black{color:#17181c}.bq-cell{position:relative}.bq-taken{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;display:flex;align-items:center;justify-content:center;pointer-events:none;--lift: 70%;background:radial-gradient(circle,transparent 0 62%,#a5793a99 62% 64.5%,transparent 65%),radial-gradient(circle,transparent 0 88%,#a5793a4d 90%,#8a632966 100%),radial-gradient(circle at 42% 33%,#fffdf6,#fff8ec 40%,#f1dcb4);box-shadow:inset 0 0 0 1.5px #a5793a,0 2px 6px #0009;animation-name:piece-lift;animation-timing-function:linear;animation-fill-mode:both}.bq-taken.red{color:#b8352a}.bq-taken.black{color:#17181c}@media (prefers-reduced-motion: reduce){.bq-cell.flipping,.bq-face{animation:none}.bq-face.old{display:none}.bq-taken{animation:none;opacity:0}}.rv-board{touch-action:manipulation}.rv-bg{fill:#1c7340;stroke:#0d4423;stroke-width:2}.rv-cell{fill:transparent;stroke:#0a3a1e;stroke-width:1;opacity:.75}.rv-star{fill:#0a3a1e;opacity:.8}.rv-shadow{fill:#000;opacity:.38}.rv-disc{stroke-width:1}.rv-disc.black{fill:url(#rv-black);stroke:#05070a}.rv-disc.white{fill:url(#rv-white);stroke:#8d97a3}.rv-lastring{fill:none;stroke:#f0b429;stroke-width:2;opacity:.9}.rv-hint{fill:#eaf7ee;opacity:.4;animation:rv-breathe 2.2s ease-in-out infinite}@keyframes rv-breathe{0%,to{opacity:.2}50%{opacity:.62}}.rv-discwrap.flipping{animation-name:rv-flip;animation-timing-function:linear;animation-fill-mode:both}.rv-discwrap.popping{animation-name:rv-place;animation-timing-function:linear;animation-fill-mode:both}.rv-disc.face-old{animation-name:rv-face-old;animation-timing-function:step-end;animation-fill-mode:both}.rv-disc.face-new{animation-name:rv-face-new;animation-timing-function:step-end;animation-fill-mode:both}@media (prefers-reduced-motion: reduce){.rv-discwrap.flipping,.rv-discwrap.popping,.rv-hint{animation:none}.rv-disc.face-old{display:none}.rv-disc.face-new{animation:none;opacity:1}}.rv-score{display:flex;justify-content:center;gap:22px;margin:8px 0 2px}.rv-tally{display:inline-flex;align-items:center;gap:7px;font-size:15px;color:#e6edf3}.rv-tally b{font-size:18px}.rv-dot{width:15px;height:15px;border-radius:50%;display:inline-block}.rv-dot.black{background:#14181f;border:1px solid #000}.rv-dot.white{background:#f6f7f9;border:1px solid #9aa3ad}.c4-board{touch-action:manipulation}.c4-colhi{fill:#fff;opacity:.07}.c4-disc{stroke-width:1.2}.c4-disc.red{fill:url(#c4-red);stroke:#6d0f13}.c4-disc.yellow{fill:url(#c4-yellow);stroke:#6e5400}.c4-disc.last{stroke:#fff;stroke-width:2.5}.c4-landing{fill:none;stroke:#8b98a5;stroke-width:2;stroke-dasharray:5 4;opacity:.7}.c4-ghost{fill:#8b98a5;opacity:.3}.c4-ghost.red{fill:url(#c4-red);opacity:.72}.c4-ghost.yellow{fill:url(#c4-yellow);opacity:.72}.c4-discwrap.falling{animation-timing-function:linear;animation-fill-mode:both}.c4-disc.win{animation:c4-win 1.1s ease-in-out infinite}@keyframes c4-win{0%,to{filter:drop-shadow(0 0 3px #fff)}50%{filter:drop-shadow(0 0 11px #fff)}}@media (prefers-reduced-motion: reduce){.c4-discwrap.falling{animation:none}.c4-disc.win{animation:none;filter:drop-shadow(0 0 5px #fff)}}.c4-dot{width:15px;height:15px;border-radius:50%;display:inline-block}.c4-dot.red{background:#e5484d;border:1px solid #a01b20}.c4-dot.yellow{background:#f2cb1d;border:1px solid #b48f00}.verify-link{text-align:center;margin:6px 0 2px;display:flex;flex-direction:column;align-items:center;gap:2px}.verify-link a{display:inline-block;color:#6ee7a8;border:1px solid #2f6b4f;border-radius:999px;padding:5px 15px;font-size:13.5px;text-decoration:none;background:#10241b}.verify-link a:hover{border-color:#6ee7a8;background:#143024}.cn-field{margin:6px auto 2px;max-width:100%}.cn-field canvas{width:100%;height:auto;display:block;border:1px solid #22303c;border-radius:6px;image-rendering:pixelated;background:#0b1220;touch-action:manipulation;cursor:crosshair}.cn-hud{display:flex;justify-content:center;align-items:center;gap:22px;margin:8px 0 2px;font-size:15px;color:#e6edf3}.cn-hud b{font-size:18px}.cn-hp.red b{color:#e5484d}.cn-hp.yellow b{color:#f2cb1d}.cn-wind{color:#9fb6c9}.cn-lastshot{text-align:center;margin:2px 0 6px}.cn-aim{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin:8px 0 2px}.cn-aim label{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:#cdd9e5}.cn-aim input[type=range]{width:190px}.cn-aim b{min-width:46px;display:inline-block;text-align:right;color:#e6edf3}button.fire{background:#7a1f22;border-color:#b3383c;color:#ffeaea}button.fire:disabled{background:#2a1a1b;border-color:#4a2a2c;color:#7d6b6c}.gthumb{display:block;border-radius:6px;flex:0 0 auto}.gthumb .th-board{fill:url(#wood-face)}.gthumb .th-line{stroke:#7a5322;stroke-width:1;opacity:.75}.gthumb .th-felt{fill:#2f6b45}.gthumb .th-stone.black{fill:#14181f}.gthumb .th-stone.white{fill:#f4efe2}.gthumb .th-xq-side{fill:#9c7440}.gthumb .th-xq-top{fill:#f3e0ba}.gthumb .th-xq-glyph{fill:#c0392b;font:800 10px/1 PingFang TC,Microsoft JhengHei,serif}.gthumb .th-c4bg{fill:#1f4f9c}.gthumb .th-c4hole{fill:#0b1a33}.gthumb .th-c4disc{fill:#e5484d}.gthumb .th-ground{fill:#6b5a3a}.gthumb .th-turret{fill:#cdd9e5}.gthumb .th-shell{fill:#ffd166}.gthumb .th-bqdown{fill:#8a5a2a;stroke:#55300f;stroke-width:.8}.gthumb .th-bqup{fill:#f6ecd6}.gthumb .th-bqring{fill:none;stroke:#a5793a;stroke-width:.9}.gthumb .th-bqglyph{fill:#17181c;font:800 11px/1 PingFang TC,Microsoft JhengHei,serif}.gthumb .th-river{fill:#0d141b}.gthumb .th-tile{fill:#f1ece0}.gthumb .th-tiletext{fill:#b23;font:800 9px/1 PingFang TC,Microsoft JhengHei,sans-serif}.gthumb .th-pip{fill:#2a2f38}.gthumb .th-table{fill:#123a29}.gthumb .th-card{fill:#f4f7fa}.gthumb .th-cardback{fill:#274b91}.gthumb .th-cardtext{font:800 9px/1 system-ui,sans-serif}.gthumb .th-cardtext.red{fill:#c0142b}.gthumb [data-anim]{animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:both}.gthumb [data-anim=drop]{animation-name:th-drop}.gthumb [data-anim=deal]{animation-name:th-deal}.gthumb [data-anim=flip]{animation-name:th-flip}.gthumb [data-anim=lift]{animation-name:th-lift}.gthumb [data-anim=slide]{animation-name:th-slide}.gthumb [data-anim=arc]{animation-name:th-arc}.gthumb [data-face=old]{animation:th-face-old linear infinite both}.gthumb [data-face=new]{animation:th-face-new linear infinite both}.gthumb text{pointer-events:none;-webkit-user-select:none;user-select:none}@media (prefers-reduced-motion: reduce){.gthumb [data-anim],.gthumb [data-face]{animation:none}.gthumb [data-face=old]{opacity:0}}.card .game-title{display:flex;align-items:center;gap:10px}.card .game-title .gt-text{flex:1;min-width:0}.audio-ctl{position:relative;z-index:10;min-height:44px;padding:5px 12px;display:flex;justify-content:flex-end;align-items:center;gap:6px;background:#0c151c;border-bottom:1px solid #ffffff0b}.audio-ctl button{width:34px;height:34px;padding:0;line-height:1;font-size:14px;border-radius:8px;cursor:pointer;border:1px solid #2a3340;background:#131a23;color:#8b97a6;opacity:.45;transition:opacity .15s,border-color .15s}.audio-ctl button.on{opacity:.85;color:#d6dee8;border-color:#3a4757}.audio-ctl button:hover{opacity:1}@media (max-width: 480px){.audio-ctl{padding-inline:10px}}.player-side{color:#cbd5df;margin:8px 0;font-size:15px}.opponent-notice{color:#e8edf5;background:#121a25;border:1px solid #b78a38;border-radius:18px;padding:24px;max-width:min(430px,calc(100vw - 40px));box-sizing:border-box;box-shadow:0 20px 70px #0009}.opponent-notice::backdrop{background:#000a}.opponent-notice h2{font-size:21px;margin:0 0 12px}.opponent-notice p{font-size:16px;line-height:1.8;color:#c5ceda;margin:0 0 20px}.opponent-notice .controls{margin:0;justify-content:flex-end}.game-result-ad{color:#e8edf5;background:#121a25;border:1px solid #b78a38;border-radius:18px;padding:24px;width:390px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px);overflow:auto;box-sizing:border-box;box-shadow:0 20px 70px #0009}.game-result-ad::backdrop{background:#000a}.game-result-ad h2{font-size:23px;text-align:center;margin:0 0 20px}.game-result-ad .controls{margin:20px 0 0;justify-content:center}.match-end-adslot{width:320px;max-width:100%;height:50px;box-sizing:border-box;margin:auto;display:flex;align-items:center;justify-content:center;border:1px dashed #7890b04d;border-radius:8px;color:#8c9ab0;font-size:11px;letter-spacing:.14em}.rematch-status{font-size:14px;color:#c5ceda;line-height:1.6;text-align:center;margin:16px 0 0}.rematch-reopen{position:fixed;bottom:12px;left:50%;transform:translate(-50%);z-index:20;box-shadow:0 3px 20px #0009}body:has(.reversi-match){background:radial-gradient(ellipse at 50% 12%,#182d2c 0,#0d171d 42%,#080e15 85%)}.reversi-match{max-width:720px;min-height:calc(100dvh - 44px);padding:12px 14px 18px;color:#e9eee8}.reversi-match .topbar{margin-bottom:8px}.reversi-match .player-side{color:#a6bdb2;font-size:13px}.reversi-match .rv-score{display:grid;grid-template-columns:1fr 28px 1fr;gap:8px;max-width:540px;margin:8px auto 2px;align-items:center}.reversi-match .rv-tally{display:flex;gap:9px;padding:9px 12px;border:1px solid #ffffff15;border-radius:13px;background:linear-gradient(145deg,#21343099,#111c23);box-shadow:0 4px 16px #0002;font-size:12px}.reversi-match .rv-tally.you{border-color:#d8bb7a5c}.reversi-match .rv-tally small{display:block;color:#9babaa;font-size:10px}.reversi-match .rv-tally b{margin-left:auto;font-size:28px;line-height:1.2}.reversi-match .rv-versus{text-align:center;color:#d8bb7a;font-size:10px;letter-spacing:1px}.reversi-match .rv-dot{width:24px;height:24px;flex-shrink:0;box-shadow:0 2px 3px #0008}.reversi-match .rv-dot.black{background:radial-gradient(circle at 30% 22%,#65716f,#313c3b 28%,#101919 65%,#050a0b)}.reversi-match .rv-dot.white{background:radial-gradient(circle at 30% 22%,#fffef6,#e9eadb 55%,#aebdb3);border-color:#f7ffe180}.reversi-match .turnbar{min-height:36px;font-size:13px;padding:7px 0}.reversi-match .yourturn{color:#d8bb7a}.reversi-match .rv-board{width:min(100%,calc(100dvh - 304px),540px);max-width:540px;height:auto;margin:4px auto;overflow:visible;filter:drop-shadow(0 12px 14px #0005)}.reversi-match .rv-bg{fill:url(#rv-cloth);stroke:#0a2b21;stroke-width:1}.reversi-match .rv-cell{stroke:#072d23;stroke-opacity:.6;stroke-width:.7;opacity:1}.reversi-match .rv-star{fill:#072d23;opacity:.5;pointer-events:none}.reversi-match .rv-shadow{opacity:.45}.reversi-match .rv-disc.black{stroke:#0009}.reversi-match .rv-disc.white{stroke:#f7ffe180}.reversi-match .rv-enamel-ring{fill:none;stroke:#ffffff12;stroke-width:.6;pointer-events:none}.reversi-match .rv-lastring{stroke:#f3d18c;stroke-width:1.2}.reversi-match .rv-hint{fill:#d0e5bc22;stroke:#d0e5bcbb;stroke-width:.8;opacity:.9;animation:none}.reversi-match g[role=button]:hover .rv-cell{fill:#91cfa633}.reversi-match g[role=button]:focus-visible{outline:none}.reversi-match g[role=button]:focus-visible .rv-cell{stroke:#f2d18d;stroke-width:2}.reversi-match .rv-axis{fill:#e4cc9bb3;font:8px system-ui;text-anchor:middle;pointer-events:none}.reversi-match .rv-legend{display:flex;justify-content:space-between;max-width:440px;margin:8px auto 12px;color:#a6bdb2;font-size:11px}.reversi-match .controls{justify-content:center;gap:8px}.reversi-match button.big{min-height:42px;padding:8px 12px;font-size:13px;border-radius:10px}.reversi-match button.primary{background:#d8bb7a;border-color:#d8bb7a;color:#14221e}@media (max-height:570px){.reversi-match{padding:7px 10px}.reversi-match .rv-tally{padding:5px 10px}.reversi-match .rv-tally b{font-size:23px}.reversi-match .rv-board{width:min(100%,calc(100dvh - 269px),540px)}}body:has(.banqi){min-height:100dvh;background:radial-gradient(ellipse at 50% 10%,#243029,#10191d 50%,#080e15)}.wrap.banqi{max-width:860px;padding:14px 14px 24px}.banqi .bq-side{font-size:13px;color:#b7c4b8}.bq-scorecards{display:grid;grid-template-columns:1fr 28px 1fr;gap:8px;margin:8px auto 0;width:min(100%,600px);align-items:center}.bq-scorecards>div{display:flex;align-items:center;gap:9px;padding:9px 12px;background:linear-gradient(145deg,#26382e,#121e23);border:1px solid #ffffff18;border-radius:13px;font-size:12px}.bq-scorecards>div.you{border-color:#d8bb7a70}.bq-scorecards small{display:block;font-size:10px;color:#9babaa}.bq-scorecards b{margin-left:auto;font-size:26px}.bq-versus{text-align:center;color:#d8bb7a;font-size:10px}.bq-mini{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:radial-gradient(circle at 32% 22%,#fffdf4,#dcc398);box-shadow:0 2px 4px #0007,inset 0 0 0 2px #a88554;font:700 17px serif}.bq-mini.red{color:#ad392c}.bq-mini.black{color:#252c2a}.banqi .turnbar{color:#aab9b0;min-height:40px;padding:8px 0;font-size:13px}.banqi .yourturn{color:#dec38a}.banqi .bq-board{max-width:800px;padding:14px;gap:8px;margin:10px auto;border-color:#9c7a49;background:repeating-linear-gradient(4deg,#ffffff04 0 1px,transparent 1px 5px),linear-gradient(135deg,#d6b87e,#b08b54 55%,#80603c);box-shadow:0 14px 25px #0005,inset 0 1px 2px #ffe4b5,inset 0 0 20px #38241966}.banqi .bq-cell{font-size:clamp(20px,5.5vw,39px)}.banqi .bq-cell.down{background:radial-gradient(circle,transparent 0 78%,#d5af7133 79% 81%,transparent 82%),radial-gradient(circle at 32% 22%,#b18758,#78502d 60%,#51351e);box-shadow:inset 0 0 0 1px #3e281a,0 3px 4px #0006}.banqi .bq-cell.down .bq-back{font-size:.48em;font-weight:400;color:#dfbf8d;opacity:.6}.banqi .bq-cell.up{background:radial-gradient(circle,transparent 0 78%,#8f693b80 79% 81%,transparent 82%),radial-gradient(circle at 32% 22%,#fffdf4,#eee0c4 60%,#c8a974)}.banqi .bq-cell.sel{box-shadow:inset 0 0 0 3px #e0c17e,0 0 0 2px #e0c17e55!important}.banqi .bq-cell:focus-visible{outline:2px solid #e0c17e;outline-offset:2px}.bq-meta{display:flex;justify-content:space-between;align-items:center;color:#9babaa;font-size:12px}.bq-rules{color:#d8bb7a;background:transparent;border-color:#d8bb7a44}.banqi .controls{justify-content:center}.banqi .controls button{min-height:42px;border-radius:10px}.bq-replay-note{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;color:#8d9f98;font-size:11px;margin:12px 0}.bq-replay-note button{background:transparent;color:#b9c9bd;font-size:12px}.bq-rules-dialog{width:min(90vw,460px);max-height:80dvh;overflow:auto;color:#eee4cf;background:#151d20;border:1px solid #d8bb7a88;border-radius:16px;padding:22px;font-size:16px;line-height:1.8}.bq-rules-dialog::backdrop{background:#0009}.bq-rules-dialog h2{margin-top:0;color:#d8bb7a;font-size:20px}@media (max-width:480px){.banqi .bq-board{padding:9px;gap:4px}.banqi .controls{gap:6px}.banqi .controls button{font-size:12px;padding:8px 10px}}body:has(.cannon-match){min-height:100dvh;background:radial-gradient(ellipse at 50% 10%,#24313b,#0b121c 70%)}.cannon-match{max-width:900px;padding:12px 14px 28px}.cannon-match .player-side{color:#a9bac7;font-size:13px}.cannon-match .cn-hud{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;margin:10px 0}.cannon-match .cn-hp{background:linear-gradient(140deg,#22303e,#141e29);padding:10px 14px;border:1px solid #ffffff18;border-radius:12px;text-align:center}.cannon-match .cn-hp b{font-size:22px}.cannon-match .cn-wind{font-size:12px}.cannon-match .cn-field{max-width:100%;border-radius:13px;overflow:hidden;box-shadow:0 12px 28px #0006}.cannon-match .cn-field canvas{border-color:#405262;border-radius:13px}.cannon-match .turnbar{min-height:38px;color:#bdcbd4;font-size:13px}.cannon-match .yourturn{color:#e2bf7a}.cannon-match .cn-aim{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;margin:16px 0}.cannon-match .cn-aim label{display:grid;grid-template-columns:1fr auto;font-size:12px;gap:3px}.cannon-match .cn-aim input[type=range]{grid-column:1/-1;width:100%;accent-color:#e2bf7a}.cannon-match button.fire{min-height:48px;padding:8px 22px;background:linear-gradient(#cf8633,#9b4d22);color:#fff2dc;border-color:#edbe6c}.cannon-match .controls{justify-content:center;gap:8px}.cannon-match button.big{min-height:42px;border-radius:10px}@media (max-width:480px){.cannon-match .cn-hud{gap:7px}.cannon-match .cn-hp{padding:8px}.cannon-match .cn-aim{grid-template-columns:1fr 1fr}.cannon-match button.fire{grid-column:1/-1}.cannon-match .controls button{font-size:12px;padding:8px 10px}}body:has(.dominoes){min-height:100dvh;background:radial-gradient(ellipse at 50% 10%,#20382f,#0c171c 65%)}.wrap.dominoes{max-width:900px;padding:12px 14px 22px}.dom-summary{display:flex;justify-content:space-between;font-size:13px;color:#9db7a7;margin:4px 0}.dom-summary b{color:#e7d19f;font-size:18px}.dominoes .pk-opps{display:flex;justify-content:center;gap:8px}.dominoes .pk-opp{flex:1;max-width:480px;border-color:#ffffff18;background:linear-gradient(145deg,#23392f,#142128);border-radius:13px;padding:10px 14px}.dominoes .pk-opp.turn{border-color:#d8bb7a88;box-shadow:0 0 0 2px #d8bb7a18}.dominoes .pk-opp .who{color:#e6dcc5;font-size:14px}.dominoes .pk-opp .cnt{font-size:12px;color:#a0b7aa}.dominoes .dom-table{border:1px solid #9d835155!important;background:radial-gradient(ellipse at 40% 20%,#215f45,#123d2c 70%,#102d25)!important;box-shadow:inset 0 2px 12px #0005,0 12px 25px #0004;padding:18px 12px!important;gap:6px!important}.dominoes .turnbar{font-size:13px;min-height:36px}.dominoes .yourturn{color:#d8bb7a}.dom-hand-label{margin-top:10px;color:#b5c6bb;text-align:center;font-size:12px}.dominoes .hand{padding:12px 8px;border:1px solid #d8bb7a55;border-radius:13px;background:#0c1916aa;min-height:65px}.dominoes .dom-hand-tile:focus-visible{outline:3px solid #e8c46a!important}.dominoes .controls{gap:8px!important}.dominoes button.big{min-height:42px;border-radius:10px}.dominoes button.primary{background:#d8bb7a;color:#18281f;border-color:#d8bb7a}.dom-note{text-align:center;color:#8aa397;font-size:11px}@media (max-width:480px){.dominoes .dom-table{min-height:270px!important;padding:12px 8px!important;gap:5px!important}.dominoes .dom-hand-tile{width:68px!important;height:34px!important}.dominoes button.big{padding:8px 10px;font-size:12px}}body:has(.poker){min-height:100dvh;background:radial-gradient(ellipse at 50% 8%,#273b33,#0c151d 70%)}.wrap.poker{max-width:900px;padding:12px 14px 24px}.poker .pk-summary{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#9fb6a9;font-size:12px}.poker .pk-summary b{color:#e5cb8e;font-size:23px}.poker .pk-opps{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.poker .pk-opp{flex:1;min-width:140px;max-width:420px;border:1px solid #ffffff18;border-radius:13px;background:linear-gradient(140deg,#24382f,#142128);padding:10px 14px}.poker .pk-opp.turn{border-color:#d8bb7a99;box-shadow:0 0 0 2px #d8bb7a18}.poker .pk-opp .who{font-size:13px;color:#e5dcc6}.poker .pk-opp .cnt{font-size:12px;color:#a1b8a9}.poker .pk-opp .hole{justify-content:center;margin:7px 0}.poker .pk-board{padding:24px 16px 30px;border:1px solid #a58a5355;border-radius:24px;background:radial-gradient(ellipse at 40% 20%,#286447,#123c2d 70%,#102b24);box-shadow:inset 0 2px 12px #0005,0 12px 25px #0004}.poker .pk-board-label{color:#e1c991;font-size:14px;margin-bottom:15px}.poker .turnbar{font-size:13px;min-height:40px}.poker .yourturn{color:#dfc485}.poker .pk-me{border:1px solid #d8bb7a55;border-radius:14px;padding:12px;background:#0d1a17aa}.poker .pk-me-label{color:#c7d2c7;font-size:12px}.poker .pk-me .hole{margin-top:8px}.poker .pk-actions{justify-content:center;padding:8px 0;gap:8px}.poker button.big{min-height:44px;border-radius:10px}.poker button.primary{background:#d8bb7a;border-color:#d8bb7a;color:#172a20}.poker .pk-raise{gap:10px}.poker .pk-raise input{accent-color:#d8bb7a}.poker>.controls{justify-content:center}@media (max-width:480px){.poker .pk-board{padding:18px 8px 22px;border-radius:18px}.poker .pk-community{gap:5px}.poker .pk-actions{display:grid;grid-template-columns:1fr 1fr}.poker .pk-raise{grid-column:1/-1;justify-content:center}.poker .pk-raise input[type=range]{flex:1;width:auto;min-width:70px}.poker button.big{font-size:13px;padding:8px 12px}}.poker .pk-community .pcard,.poker .pk-community .pcardwrap{width:50px;height:70px}.poker .pk-community .pcard b{font-size:21px}.poker .pk-community .pcard i{font-size:19px}.poker .pk-me .pcard{width:60px;height:84px}.poker .pk-me .pcard b{font-size:25px}.poker .pk-me .pcard i{font-size:23px}.poker .pk-opp .pcard.small{width:34px;height:48px}.poker .pk-opp .pcard.small b,.poker .pk-opp .pcard.small i{font-size:14px}.pk-entry{max-width:430px;margin:8dvh auto 30px;padding:25px 22px;border:1px solid #d8bb7a55;border-radius:20px;background:linear-gradient(145deg,#253c31,#121f25);box-shadow:0 18px 36px #0005;text-align:center}.pk-entry-icon{color:#d8bb7a;font-size:36px}.pk-entry h1{color:#efe5cc;font-size:24px}.pk-entry p{color:#b3c6ba}.pk-entry b{color:#e5ca8e}.pk-entry label{display:block;text-align:left;font-size:13px;color:#becdbf;margin-bottom:6px}.pk-entry input{width:100%;min-height:50px;font-size:24px;text-align:center;color:#f0d59a;background:#0d1b17;border:1px solid #d8bb7a88;border-radius:10px}.pk-entry .pk-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0}.pk-presets button{min-height:40px;padding:6px}.pk-presets button[aria-pressed=true]{color:#172a20;background:#d8bb7a;border-color:#d8bb7a}.pk-entry .pk-entry-note{color:#91a69a;font-size:12px;line-height:1.8;margin:18px 0}.pk-entry>button{display:block;width:100%;margin-top:9px}@media (max-height:600px){.pk-entry{margin:12px auto;padding:16px}.pk-entry .pk-entry-note{margin:12px 0}}
