.sound-toggle{background:var(--btn,#00000040);width:36px;min-width:36px;height:36px;color:var(--ink,#fff);cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.sound-toggle svg{width:20px;height:20px}.sound-toggle[aria-pressed=true]{opacity:.7}.sound-toggle:focus-visible{outline:3px solid var(--focus,#ffd54a);outline-offset:2px}:root{--lamp:radial-gradient(ellipse 70% 50% at 50% 42%, #fffae121, transparent 70%);--vignette:radial-gradient(ellipse 120% 90% at 50% 45%, transparent 55%, #00000080)}.card{width:var(--cw);height:var(--ch);border-radius:calc(var(--cw) * .08);border:1px solid var(--card-edge,#c9cfc6);background:var(--card,#fdfdfb);font:inherit;padding:0;position:relative;overflow:hidden;box-shadow:0 1px 2px #00000059,0 5px 12px #00000038}button.card{cursor:pointer}.card:not(.back){background-image:repeating-linear-gradient(0deg,#00000005 0 1px,#0000 1px 3px),repeating-linear-gradient(90deg,#00000004 0 1px,#0000 1px 3px)}.card:after{content:"";border-radius:inherit;pointer-events:none;z-index:2;background:linear-gradient(155deg,#fff3,#fff0 28%),linear-gradient(#0000 88%,#0000000f);position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff80}.card.back:after{box-shadow:none;background:linear-gradient(155deg,#ffffff47,#fff0 38%)}.card{container-type:inline-size}.card .face{pointer-events:none;background:50%/100% 100% no-repeat;display:none;position:absolute;inset:0}@container (width>=72px){.card .face{display:block}.card .corner,.card .pip{display:none}}@container (width>=44px) and (width<=71.99px){.card .face.court{background-position:50% 58%;background-size:150% 142%;border-radius:4px;display:block;inset:30% 7% 5%;box-shadow:inset 0 0 0 1px #0000001f}.card .face.court~.pip{display:none}.card .pip:has(~.face.court){display:none}}.card.red{color:var(--red,#c0262d)}.card.black{color:var(--black,#16181a)}.card .corner{letter-spacing:-.02em;font-weight:700;line-height:1;font-size:calc(var(--cw) * .24);position:absolute;top:3%;left:6%}.card .pip{font-size:calc(var(--cw) * .5);line-height:1;position:absolute;bottom:4%;right:8%}.card.back{background:var(--card-back-image,repeating-linear-gradient(45deg, var(--back-a,#2d4f9e) 0 6px, var(--back-b,#22407f) 6px 12px)) center / 100% 100% no-repeat;border:2px solid var(--card,#fdfdfb)}.card:focus-visible{outline:3px solid var(--focus,#ffd54a);outline-offset:1px}:root{--felt:#1d5a7a;--felt-edge:#0b2534;--accent:#ffd36b;--accent-ink:#2a1d00;--focus:#ffd36b;--ink:#f6f3ea;--ink-soft:#d8e4ea;--rail:#4a2f1b;--rail-hi:#a87a3e;--btn:#0000004d;--btn-on:var(--accent);--btn-on-ink:var(--accent-ink);--dialog:#f7fbfd;--dialog-ink:#12222b;--dialog-soft:#4f6670;--dialog-line:#0000001f;--sure:#8fe3a6;--theirs:#ffb08a;--bubble:#fff8e6;--bubble-ink:#2a1d00;--cw:70px;--ch:98px;--rail-w:clamp(5px, 1.4vw, 12px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--dialog:#16232b;--dialog-ink:#eef5f8;--dialog-soft:#a9bcc5;--dialog-line:#ffffff24}}:root[data-theme=dark]{--dialog:#16232b;--dialog-ink:#eef5f8;--dialog-soft:#a9bcc5;--dialog-line:#ffffff24}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--lamp), var(--vignette), var(--felt-texture,none), radial-gradient(ellipse at 50% 38%, var(--felt), var(--felt-edge));color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font:14px/1.3 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#app.gf{height:100dvh;padding:calc(var(--rail-w) + 6px) calc(var(--rail-w) + 8px) calc(var(--rail-w) + 6px);box-shadow:inset 0 0 0 var(--rail-w) var(--rail), inset 0 0 0 calc(var(--rail-w) + 1px) var(--rail-hi), inset 0 0 0 calc(var(--rail-w) + 3px) #00000073;grid-template:"bar""opp""table"minmax(0,1fr)"hand"/minmax(0,1fr);justify-items:center;gap:6px;display:grid;position:relative;overflow:hidden}.gf-bar{grid-area:bar;align-items:center;gap:8px;width:100%;min-width:0;padding-top:2px;display:flex}.gf-brand h1{letter-spacing:.5px;white-space:nowrap;text-shadow:0 1px 2px #00000080;margin:0;font:800 17px/1 Trebuchet MS,Segoe UI,sans-serif}.gf-info{color:var(--ink-soft);white-space:nowrap;align-items:center;gap:10px;margin-left:auto;font-size:12px;display:flex}.gf-score{color:var(--ink);background:#00000040;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:15px;display:inline-flex}.gf-score i{opacity:.6;font-style:normal}.btn{font:inherit;color:var(--ink);background:var(--btn);cursor:pointer;white-space:nowrap;border:0;border-radius:10px;min-height:36px;padding:7px 13px;box-shadow:inset 0 1px #ffffff1f,0 2px 6px #0000004d}.btn:disabled{opacity:.45;cursor:default}.btn[aria-pressed=true]{background:var(--btn-on);color:var(--btn-on-ink);font-weight:700}.btn:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.btn.primary{background:var(--accent);color:var(--accent-ink);font-weight:700}.sound-toggle{flex:none;width:36px;height:36px}.gf-opp{flex-direction:column;grid-area:opp;align-items:center;gap:4px;width:100%;display:flex}.gf-pod{background:#0000002e;border-radius:14px;flex-direction:column;align-items:center;gap:4px;max-width:100%;padding:6px 12px;transition:box-shadow .25s,background .25s;display:flex}.gf-pod.turn{box-shadow:0 0 0 2px var(--accent), 0 0 18px #ffd36b59;background:#00000047}.gf-pod-head{align-items:center;gap:8px;font-size:13px;display:flex}.gf-mini{--cw:24px;--ch:34px;align-items:center;display:flex;position:relative}.gf-mini .card{flex:none}.gf-mini .card+.card{margin-left:calc(var(--cw) * -.72)}.gf-count{color:var(--ink);pointer-events:none;background:#0009;border-radius:999px;padding:1px 6px;font-size:11px;font-weight:700}.gf-mini .gf-count{margin-left:6px}.gf-known{color:var(--ink-soft);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;font-size:11px;display:flex}.gf-known-label{text-transform:uppercase;letter-spacing:.6px;font-size:10px}.gf-chip{background:var(--sure);color:#0c2614;border-radius:999px;padding:1px 7px;font-weight:700}.gf-bookrow{--cw:30px;--ch:42px;flex-wrap:wrap;justify-content:center;gap:6px 10px;max-width:100%;min-height:0;display:flex}.gf-book{width:calc(var(--cw) + 9px);height:calc(var(--ch) + 9px);flex:none;position:relative}.gf-book .card{pointer-events:none;position:absolute;top:0;left:0}.gf-book .card:nth-child(2){translate:3px 3px}.gf-book .card:nth-child(3){translate:6px 6px}.gf-book .card:nth-child(4){translate:9px 9px}.gf-book-rank{white-space:nowrap;z-index:2;background:#0009;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700;position:absolute;bottom:-8px;left:50%;translate:-50%}.gf-table{grid-area:table;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;width:100%;min-height:0;padding:4px 0;display:grid;overflow:hidden}.gf-pool{flex-direction:column;align-items:center;gap:6px;display:flex}.gf-stack{width:calc(var(--cw) + 10px);height:calc(var(--ch) + 10px);place-items:center;display:grid;position:relative}.gf-stack .card{position:absolute;top:5px;left:5px}.gf-stack .gf-count{z-index:5;position:absolute;bottom:-4px;left:2px}.gf-dry{color:var(--ink-soft);width:var(--cw);height:var(--ch);border:2px dashed #ffffff4d;border-radius:10px;place-items:center;font-size:12px;display:grid}.gf-pool-label{text-transform:uppercase;letter-spacing:.8px;color:var(--ink-soft);font-size:11px}.gf-center{flex-direction:column;justify-content:center;align-items:center;gap:10px;min-width:0;height:100%;min-height:0;display:flex}.gf-bubble{background:var(--bubble);max-width:100%;color:var(--bubble-ink);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;animation:.3s ease-out gf-pop;display:flex;position:relative;box-shadow:0 6px 18px #00000059}.gf-bubble:after{content:"";background:var(--bubble);border-radius:3px;width:18px;height:18px;position:absolute;bottom:-9px;left:50%;translate:-50%;rotate:45deg}.gf-bubble.mine:after{bottom:-9px}.gf-bubble:not(.mine):after{top:-9px;bottom:auto}.gf-bubble.empty{display:none}@keyframes gf-pop{0%{opacity:0;scale:.85}to{opacity:1;scale:1}}.gf-who{font-size:16px;font-weight:800}.gf-who.theirs{color:#a3461a}.gf-who.mine{color:#1b6e3a}.gf-bubble-text{font-size:13px}.gf-booked{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.gf-status{text-shadow:0 1px 2px #0009;text-align:center;min-height:1.3em;margin:0;font-weight:600}.gf-handwrap{flex-direction:column;grid-area:hand;align-items:center;gap:6px;width:100%;min-width:0;display:flex}.gf-hand{width:100%;height:calc(var(--ch) + 14px);z-index:0;justify-content:center;align-items:flex-end;padding-top:14px;display:flex;position:relative}.gf-hand .card{flex:none;transition:translate .15s,box-shadow .15s}.gf-hand .card.sure{box-shadow:0 1px 3px #0006, inset 0 0 0 3px var(--sure)}.gf-hand.turn .card.playable{box-shadow:0 0 0 3px var(--accent), 0 6px 14px #00000080;translate:0 -8px}.gf-hand.turn .card.playable.sure{box-shadow:0 0 0 3px var(--sure), inset 0 0 0 3px var(--sure), 0 6px 18px #8fe3a699}.gf-hand .card:focus-visible{outline:3px solid var(--focus);outline-offset:1px;z-index:41!important}.gf-hidden{text-shadow:0 1px 3px #000c;pointer-events:none;z-index:50;white-space:nowrap;place-items:center;font-weight:700;display:grid;position:absolute;inset:14px 0 0}.gf-books.mine{min-height:20px;padding-bottom:8px}.overlay{z-index:30;background:#020a108c;place-items:center;padding:12px;display:grid;position:absolute;inset:0;overflow:auto}.overlay[hidden]{display:none}.overlay.gate{background:radial-gradient(ellipse at 50% 40%, var(--felt), var(--felt-edge) 75%)}.overlay.menu{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#020a10b3}.overlay.later{animation:1.2s step-end both gf-later}@keyframes gf-later{0%{opacity:0}to{opacity:1}}.dialog{background:var(--dialog);color:var(--dialog-ink);text-align:center;border-radius:16px;flex-direction:column;gap:12px;width:min(100%,420px);max-height:100%;padding:18px 20px;display:flex;overflow:auto;box-shadow:0 12px 40px #00000080}.dialog h2{margin:0;font:800 20px/1.2 Trebuchet MS,Segoe UI,sans-serif}.dialog p{color:var(--dialog-soft);margin:0}.overlay .dialog .btn:not(.primary):not([aria-pressed=true]){color:var(--dialog-ink);background:color-mix(in srgb, var(--dialog-ink) 9%, transparent);box-shadow:none}.gf-menu-actions{background:var(--dialog);flex-wrap:wrap;justify-content:center;gap:10px;margin-top:-6px;padding-top:6px;display:flex;position:sticky;bottom:0}.gf-logo svg{width:min(100%,280px);height:auto}.gf-tagline{font-size:13px}.gf-seg{flex-direction:column;align-items:center;gap:4px;display:flex}.gf-seg-label{text-transform:uppercase;letter-spacing:.8px;color:var(--dialog-soft);font-size:12px}.gf-seg-row{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.btn.seg{min-width:56px}.gf-gate-cards{--cw:44px;--ch:62px;justify-content:center;display:flex}.gf-gate-cards .card+.card{margin-left:-24px;rotate:6deg}.gf-sub{font-weight:600}.gf-tally{text-align:left;flex-direction:column;gap:4px;display:flex}.gf-tally-row{background:color-mix(in srgb, var(--dialog-ink) 6%, transparent);border-radius:8px;justify-content:space-between;gap:10px;padding:4px 8px;display:flex}@media (max-width:420px){.gf-brand h1{font-size:15px}.gf-info>span:first-child{display:none}.btn{padding:6px 10px}.gf-bookrow{--cw:24px;--ch:34px;gap:6px 8px}}@media (orientation:landscape) and (max-height:560px){#app.gf{padding:calc(var(--rail-w) + 3px) calc(var(--rail-w) + 6px);grid-template:"bar bar""opp table"minmax(0,1fr)"hand hand"/auto minmax(0,1fr);gap:4px 10px}.gf-opp{align-self:center;width:auto;max-width:40vw}.gf-pod{padding:4px 8px}.gf-mini{--cw:18px;--ch:26px}.gf-bookrow{--cw:22px;--ch:31px;gap:4px 6px}.gf-table{gap:10px;padding:0}.gf-pool-label{display:none}.gf-center{gap:6px}.gf-bubble{padding:6px 10px}.gf-who{font-size:14px}.gf-bubble-text,.gf-status{font-size:12px}.gf-hand{height:calc(var(--ch) + 10px);padding-top:10px}.gf-handwrap{gap:2px}.btn{min-height:34px;padding:4px 10px}.sound-toggle{width:34px;height:34px}.dialog{gap:8px;padding:10px 14px}.gf-logo svg{width:170px}.gf-tagline{display:none}}@media (max-height:300px) and (min-aspect-ratio:1){.gf-pod-head,.gf-pool-label,.gf-status,.gf-known,.gf-bubble-text{display:none}.gf-bookrow{--cw:16px;--ch:22px}.gf-books.mine{display:none}}
