.g-go-fish{--cw:46px;--ch:64px;--card-face:#fbfaf6;--card-ink:#1d2320;--card-red:#c0392b;padding:8px;border-radius:8px;background:var(--accent-soft);outline-offset:2px;touch-action:manipulation;color:var(--ink)}.g-go-fish .gf-opps{display:flex;gap:6px;justify-content:center;align-items:flex-start}.g-go-fish .gf-opps.n1 .gf-seat{max-width:220px}.g-go-fish .gf-seat{flex:1;min-width:0;display:grid;justify-items:center;gap:4px;border:2px solid transparent;border-radius:10px;padding:4px}.g-go-fish .gf-seat.is-turn{border-color:var(--gold);background:rgba(242,193,78,.22)}.g-go-fish .gf-seatbtn{position:relative;width:100%;display:grid;justify-items:center;gap:3px;padding:6px 4px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;min-height:80px}.g-go-fish .gf-seat.is-pick .gf-seatbtn{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus);animation:gf-pulse 1.2s ease-in-out infinite}.g-go-fish .gf-seat.is-cursor .gf-seatbtn{outline:3px solid var(--gold);outline-offset:1px}.g-go-fish .gf-seat.is-hint .gf-seatbtn{box-shadow:0 0 0 3px var(--gold)}.g-go-fish .gf-seat.is-empty .gf-seatbtn{opacity:.55;cursor:default}.g-go-fish .gf-num{position:absolute;left:5px;top:3px;font-size:11px;color:var(--muted);font-family:var(--mono)}.g-go-fish .gf-name{font-size:14px}.g-go-fish .gf-back{width:30px;height:42px;border-radius:4px;border:2px solid #f3f1ea;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;background:repeating-linear-gradient(45deg,#2c6b8c 0 3px,#245a76 3px 6px);box-shadow:2px 2px 0 -1px #245a76,0 1px 2px rgba(0,0,0,.3)}.g-go-fish .gf-back span{background:rgba(0,0,0,.55);border-radius:999px;padding:0 5px}.g-go-fish .gf-books{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;min-height:18px}.g-go-fish .gf-book{min-width:18px;height:18px;padding:0 2px;box-sizing:border-box;border-radius:4px;background:var(--card-face);color:var(--card-ink);border:1px solid #8e9791;font-size:11px;font-weight:700;display:inline-grid;place-items:center;line-height:1}.g-go-fish .gf-bubble{position:relative;width:100%;box-sizing:border-box;min-height:2.7em;padding:4px 6px;border-radius:10px;background:var(--surface);border:1px solid var(--line);font-size:12px;line-height:1.25;text-align:center;color:var(--ink-2);visibility:hidden;display:grid;place-items:center}.g-go-fish .gf-bubble.has{visibility:visible;color:var(--ink)}.g-go-fish .gf-bubble.has::before{content:"";position:absolute;left:50%;top:-6px;width:9px;height:9px;margin-left:-5px;background:var(--surface);border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}.g-go-fish .gf-mybubble{max-width:320px;margin:4px auto 0}.g-go-fish .gf-mybubble::before{top:auto!important;bottom:-6px;transform:rotate(225deg)!important}.g-go-fish .gf-mid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:stretch;margin:8px auto;max-width:560px}.g-go-fish .gf-pond{display:grid;justify-items:center;align-content:center;gap:4px;padding:6px 10px;font-size:13px}.g-go-fish .gf-pondstack{width:44px;height:62px;border-radius:6px;border:2px solid #f3f1ea;display:grid;place-items:center;color:#fff;font-weight:700;background:repeating-linear-gradient(45deg,#2c6b8c 0 3px,#245a76 3px 6px);box-shadow:3px 3px 0 -1px #245a76,6px 6px 0 -2px #1d4a62}.g-go-fish .gf-pondstack span{background:rgba(0,0,0,.55);border-radius:999px;padding:0 6px}.g-go-fish .gf-pondstack.is-empty{background:0 0;border:2px dashed var(--muted);box-shadow:none;color:var(--ink-2)}.g-go-fish .gf-pondstack.is-empty span{background:0 0}.g-go-fish .gf-log{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12px;min-height:5.2em}.g-go-fish .gf-logtitle{display:block;font-size:12px;color:var(--muted);margin-bottom:2px}.g-go-fish .gf-log ul{list-style:none;margin:0;padding:0}.g-go-fish .gf-log li{color:var(--ink-2);line-height:1.3;padding:1px 0}.g-go-fish .gf-log li:last-child{color:var(--ink);font-weight:600}.g-go-fish .gf-log li.is-book{color:var(--accent)}.g-go-fish .gf-log p{margin:0;color:var(--muted)}.g-go-fish .gf-you{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:4px auto;padding:3px 12px;width:fit-content;border:2px solid transparent;border-radius:8px}.g-go-fish .gf-you.is-turn{border-color:var(--gold);background:rgba(242,193,78,.22)}.g-go-fish .gf-you .gf-mybubble{flex-basis:100%}.g-go-fish .gf-yourturn{font-weight:700;font-size:13px}.g-go-fish .gf-hand{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 10px;padding:14px 0 4px}.g-go-fish .gf-group{position:relative;cursor:pointer;transition:transform .1s;border-radius:6px;touch-action:manipulation}.g-go-fish .gf-group:hover{transform:translateY(-3px)}.g-go-fish .gf-group.is-sel{transform:translateY(-12px);filter:drop-shadow(0 0 0 var(--focus))}.g-go-fish .gf-group.is-sel .gf-card{box-shadow:0 0 0 3px var(--focus),0 3px 6px rgba(0,0,0,.35)}.g-go-fish .gf-group.is-hint .gf-card{box-shadow:0 0 0 3px var(--gold),0 3px 6px rgba(0,0,0,.35)}.g-go-fish .gf-group.is-cursor{outline:3px solid var(--focus);outline-offset:3px}.g-go-fish .gf-card{position:absolute;top:0;box-sizing:border-box;width:var(--cw);height:var(--ch);font-size:calc(var(--cw) * .27);border-radius:calc(var(--cw) * .1);border:1px solid #8e9791;font-weight:700;line-height:1;color:var(--card-ink);background:var(--card-face);box-shadow:0 1px 2px rgba(0,0,0,.3);overflow:hidden;user-select:none;-webkit-user-select:none}.g-go-fish .gf-card.red{color:var(--card-red)}.g-go-fish .gf-card.is-new{border-color:var(--gold);border-width:2px}.g-go-fish .gf-ix{position:absolute;left:.2em;top:.16em;white-space:nowrap;letter-spacing:-.04em;font-size:1.2em}.g-go-fish .gf-ix i{font-style:normal;margin-left:.04em}.g-go-fish .gf-card .gf-sym{position:absolute;left:0;right:0;bottom:8%;text-align:center;font-size:2.1em;line-height:1}.g-go-fish .gf-actions{display:flex;justify-content:center;margin:6px 0 2px;min-height:40px}@keyframes gf-pulse{50%{box-shadow:0 0 0 5px rgba(43,125,233,.35)}}@media(max-width:420px){.g-go-fish{padding:5px}.g-go-fish .gf-opps{gap:3px}.g-go-fish .gf-seat{padding:2px}.g-go-fish .gf-name{font-size:13px}.g-go-fish .gf-bubble{font-size:11px;padding:3px 4px}.g-go-fish .gf-mid{gap:6px}.g-go-fish .gf-pond{padding:4px 6px}}@media(prefers-reduced-motion:reduce){.g-go-fish .gf-group{transition:none}.g-go-fish .gf-seat.is-pick .gf-seatbtn{animation:none}}