:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-body:system-ui, -apple-system, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--font-card:ui-serif, "New York", "Iowan Old Style", Georgia, serif;--text-1:.75rem;--text-2:.875rem;--text-3:1rem;--text-4:1.25rem;--text-5:1.75rem;--text-6:2.5rem;--leading-tight:1.15;--leading:1.35;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius-1:4px;--radius-2:8px;--radius-3:14px;--radius-4:22px;--radius-round:999px;--duration-1:.12s;--duration-2:.24s;--duration-3:.42s;--ease:cubic-bezier(.2, .8, .2, 1);--ease-back:cubic-bezier(.3, 1.35, .5, 1);--size-touch:2.75rem;--size-bar:3rem;--size-page:26rem;--size-sheet:34rem;--size-face-preview:10.5rem;--size-face-option:3.75rem;--size-face-strip:2.75rem;--size-face-bar:2rem;--lift-face:-4px;--tilt-face:1.5deg;--zoom-face-part:1.5;--display-in-light:inline-flex;--display-in-dark:none;--color-page:#f4f1ea;--color-ink:#1c1a17;--color-ink-muted:#665f54;--color-line:#dcd5c9;--color-line-strong:#b3a998;--color-raised:#fff;--color-raised-ink:#1c1a17;--color-field:#fbf9f4;--color-accent:#c63f27;--color-accent-ink:#b3361f;--color-on-accent:#fff;--color-alert:#c63f27;--color-up:#2f6b45;--color-down:#b3361f;--color-here:#3f8a5a;--color-scrim:#f4f1eae6;--color-felt:transparent;--shadow-felt:inset 0 0 0 1px #d6cec0;--color-strip:transparent;--shadow-strip:inset 0 0 0 1px #d6cec0;--shadow-bar:inset 0 -1px 0 #e2dbcf;--color-ring:#c63f27;--width-ring:2.5px;--shadow-action:0 8px 18px -10px #7828148c;--color-action-halo:#c63f271a;--color-chip:#1c1a17;--shadow-chip:none;--radius-face:22px;--color-face:#e7e1d5;--color-face-ink:#5b544a;--shadow-face:inset 0 0 0 1px #1c1a1712;--color-face-ink-unlit:#5b544a;--color-face-ink-folded:#a39b8e;--opacity-away:.55;--filter-face-unlit:none;--filter-face-folded:grayscale(.7) opacity(.7);--color-card:#fff;--color-card-ink:#1c1a17;--color-card-red:#c63f27;--shadow-card:0 0 0 1px #d8d0c3, 0 4px 10px -6px #3c281440;--color-card-back:#fff;--shadow-card-back:0 0 0 1px #d8d0c3, inset 0 0 0 .06em #fff, inset 0 0 0 .07em #c63f27b3, 0 4px 10px -6px #3c281440;--pattern-card-back:repeating-linear-gradient(45deg, #c63f2761 0 .008em, transparent .008em .05em);--inset-card-pattern:.08em;--color-dealer:#1c1a17;--color-dealer-ink:#f4f1ea;--shadow-1:0 1px 2px #3c281414, 0 6px 16px -10px #3c28144d;--shadow-2:0 0 0 1px #1c1a170f, 0 18px 36px -18px #3c281473;--color-win:#b3361f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--display-in-light:none;--display-in-dark:inline-flex;--font-card:var(--font-body);--color-page:#0f1012;--color-ink:#eeece8;--color-ink-muted:#a19e97;--color-line:#ffffff17;--color-line-strong:#fff3;--color-raised:#202226;--color-raised-ink:#eeece8;--color-field:#16171a;--color-accent:#e8b260;--color-accent-ink:#e8b260;--color-on-accent:#1b1407;--color-alert:#e4664c;--color-up:#9cc7a4;--color-down:#e4664c;--color-here:#7fbf8e;--color-scrim:#0c0d0fcc;--color-felt:#151619;--shadow-felt:inset 0 0 0 1px #ffffff12;--color-strip:#16171a;--shadow-strip:inset 0 0 0 1px #ffffff0d;--shadow-bar:none;--color-ring:#e8b260;--width-ring:3px;--shadow-action:0 10px 24px -12px #000c;--color-action-halo:#e8b26024;--color-chip:#c9c4ba;--shadow-chip:inset 0 0 0 2px #0000002e;--radius-face:50%;--color-face:#25272c;--color-face-ink:#cfcbc4;--shadow-face:inset 0 0 0 1px #ffffff0f;--color-face-ink-unlit:#6f6d6a;--color-face-ink-folded:#6f6d6a;--filter-face-unlit:brightness(.62);--filter-face-folded:grayscale(.7) brightness(.55);--color-card:#f2f0eb;--color-card-ink:#18191c;--color-card-red:#c63b2c;--shadow-card:0 1px 0 #0000004d, 0 6px 16px -8px #000000b3;--color-card-back:#2a2c31;--shadow-card-back:inset 0 0 0 .05em #2a2c31, inset 0 0 0 .065em #e8b2608c, 0 6px 16px -8px #000000b3;--pattern-card-back:none;--inset-card-pattern:0;--color-dealer:#2c2e33;--color-dealer-ink:#eeece8;--shadow-1:0 6px 18px -10px #000000b3;--shadow-2:0 18px 40px -16px #000000d9, 0 0 0 1px #ffffff0f;--color-win:#e8b260}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--display-in-light:none;--display-in-dark:inline-flex;--font-card:var(--font-body);--color-page:#0f1012;--color-ink:#eeece8;--color-ink-muted:#a19e97;--color-line:#ffffff17;--color-line-strong:#fff3;--color-raised:#202226;--color-raised-ink:#eeece8;--color-field:#16171a;--color-accent:#e8b260;--color-accent-ink:#e8b260;--color-on-accent:#1b1407;--color-alert:#e4664c;--color-up:#9cc7a4;--color-down:#e4664c;--color-here:#7fbf8e;--color-scrim:#0c0d0fcc;--color-felt:#151619;--shadow-felt:inset 0 0 0 1px #ffffff12;--color-strip:#16171a;--shadow-strip:inset 0 0 0 1px #ffffff0d;--shadow-bar:none;--color-ring:#e8b260;--width-ring:3px;--shadow-action:0 10px 24px -12px #000c;--color-action-halo:#e8b26024;--color-chip:#c9c4ba;--shadow-chip:inset 0 0 0 2px #0000002e;--radius-face:50%;--color-face:#25272c;--color-face-ink:#cfcbc4;--shadow-face:inset 0 0 0 1px #ffffff0f;--color-face-ink-unlit:#6f6d6a;--color-face-ink-folded:#6f6d6a;--filter-face-unlit:brightness(.62);--filter-face-folded:grayscale(.7) brightness(.55);--color-card:#f2f0eb;--color-card-ink:#18191c;--color-card-red:#c63b2c;--shadow-card:0 1px 0 #0000004d, 0 6px 16px -8px #000000b3;--color-card-back:#2a2c31;--shadow-card-back:inset 0 0 0 .05em #2a2c31, inset 0 0 0 .065em #e8b2608c, 0 6px 16px -8px #000000b3;--pattern-card-back:none;--inset-card-pattern:0;--color-dealer:#2c2e33;--color-dealer-ink:#eeece8;--shadow-1:0 6px 18px -10px #000000b3;--shadow-2:0 18px 40px -16px #000000d9, 0 0 0 1px #ffffff0f;--color-win:#e8b260}*{box-sizing:border-box}html,body{background:var(--color-page);min-height:100%;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-3);line-height:var(--leading);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;transition:background-color var(--duration-2) var(--ease);margin:0}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.page{max-width:var(--size-page);padding:var(--space-4);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.bar{align-items:center;gap:var(--space-2);min-height:var(--size-bar);display:flex}.bar-end{align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.bar-button{min-height:var(--size-touch);padding:0 var(--space-2);color:var(--color-ink-muted);font-size:var(--text-2);border-radius:var(--radius-2);cursor:pointer;background:0 0;border:0;align-items:center;display:inline-flex}.bar-button:hover{color:var(--color-ink)}.theme-switch{display:inline-flex}.to-dark{display:var(--display-in-light)}.to-light{display:var(--display-in-dark)}.home{padding-top:var(--space-2)}.hero{gap:var(--space-2);padding:var(--space-3) 0 var(--space-2);flex-direction:column;display:flex}.brand{font-size:var(--text-6);letter-spacing:-.03em;font-weight:650;line-height:var(--leading-tight);margin:0}.brand.small{font-size:var(--text-2);letter-spacing:-.01em;font-weight:600}.tagline,.muted{color:var(--color-ink-muted);margin:0}.tagline{font-size:var(--text-3)}.card-panel{background:var(--color-raised);color:var(--color-raised-ink);border-radius:var(--radius-3);box-shadow:var(--shadow-2);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.join-panel{gap:var(--space-2);padding:var(--space-2) 0;flex-direction:column;display:flex}.join-row{gap:var(--space-2);display:flex}.join-row .text-input{flex:1}.panel-title{font-size:var(--text-2);color:var(--color-ink-muted);margin:0;font-weight:600}.field{gap:var(--space-2);flex-direction:column;display:flex}.field-label{color:var(--color-ink-muted);font-size:var(--text-2)}.text-input{background:var(--color-field);border:1px solid var(--color-line);border-radius:var(--radius-2);padding:var(--space-2) var(--space-3);min-height:var(--size-touch);width:100%;transition:border-color var(--duration-1) var(--ease)}.text-input:focus{border-color:var(--color-line-strong);outline:none}.code-input{letter-spacing:.2em;text-transform:uppercase}.button{justify-content:center;align-items:center;gap:var(--space-2);color:var(--color-ink);border:1px solid var(--color-line-strong);border-radius:var(--radius-round);padding:var(--space-2) var(--space-4);min-height:var(--size-touch);cursor:pointer;transition:background-color var(--duration-1) var(--ease), transform var(--duration-1) var(--ease);background:0 0;font-weight:500;display:inline-flex}.button:active:not(:disabled){transform:scale(.97)}.button.primary{background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-action);border-color:#0000;font-weight:600}.button.quiet{color:var(--color-ink-muted);border-color:#0000}.button.quiet:hover{color:var(--color-ink)}.button:disabled{opacity:.4;cursor:not-allowed}.problem{color:var(--color-alert);font-size:var(--text-2);margin:0}.room{max-width:none;padding:0 var(--space-4) var(--space-6);gap:0}.room-header{align-items:center;gap:var(--space-2);min-height:var(--size-bar);margin:0 calc(var(--space-4) * -1);padding:0 var(--space-2) 0 var(--space-4);box-shadow:var(--shadow-bar);flex-wrap:wrap;display:flex}.connection{font-size:var(--text-2);color:var(--color-ink-muted);padding:0 var(--space-2)}.connection.is-refused{color:var(--color-alert)}.status-line{z-index:20;top:calc(var(--size-bar) + var(--space-2));align-items:center;gap:var(--space-2);width:max-content;max-width:calc(100vw - var(--space-6));pointer-events:none;font-size:var(--text-2);flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.status-line>*{padding:var(--space-2) var(--space-3);border-radius:var(--radius-3);background:var(--color-raised);box-shadow:var(--shadow-2);text-align:center}.room-body{gap:var(--space-4);flex-direction:column;width:100%;max-width:64rem;margin:0 auto;display:flex}.choice-row{gap:var(--space-2);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.member-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.member{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;box-shadow:inset 0 -1px 0 var(--color-line);flex-wrap:wrap;display:flex}.member:last-child{box-shadow:none}.member-name{font-weight:600}.tag{font-size:var(--text-1);color:var(--color-ink-muted);border:1px solid var(--color-line-strong);border-radius:var(--radius-round);padding:0 var(--space-2)}.net{margin-left:auto;font-weight:600}.net.is-up{color:var(--color-up)}.net.is-down{color:var(--color-down)}.settings-grid{gap:var(--space-4);display:grid}@media (width>=40rem){.settings-grid{grid-template-columns:repeat(2,1fr)}}.field-help{color:var(--color-ink-muted);font-size:var(--text-1)}.settings-group{box-shadow:inset 0 1px 0 var(--color-line);padding:var(--space-4) 0 0;gap:var(--space-3);border:0;flex-direction:column;grid-column:1/-1;margin:0;display:flex}.settings .choice-row,.settings-grid .choice-row{justify-content:flex-start}.button.chip{min-height:2.25rem;padding:var(--space-1) var(--space-3);font-size:var(--text-2);border-color:var(--color-line)}.button.chip.is-picked{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-page)}.settlement{max-width:var(--size-sheet);width:100%;margin:var(--space-5) auto 0}.table-host{width:calc(100% + var(--space-4) * 2);margin:0 calc(var(--space-4) * -1);height:calc(100dvh - var(--size-bar));min-height:30rem;display:block}.screen{display:contents}.face-builder{gap:var(--space-3);flex-direction:column;display:flex}.face-stage{justify-items:center;gap:var(--space-3);padding-top:var(--space-2);display:grid}.face-frame{border-radius:50%;line-height:0;display:block;overflow:hidden}.face-frame svg{width:100%;height:100%;display:block}.face-preview{width:var(--size-face-preview);height:var(--size-face-preview);box-shadow:var(--shadow-2);animation:face-bob var(--duration-3) var(--ease) 0s 1;border-radius:50%;position:relative}.face-preview .face-frame{transition:opacity var(--duration-2) var(--ease);position:absolute;inset:0}.face-preview .is-happy{opacity:0}.face-stage:hover .is-happy,.face-preview:active .is-happy{opacity:1}.face-stage:hover .is-resting,.face-preview:active .is-resting{opacity:0}@keyframes face-bob{50%{transform:translateY(var(--lift-face)) rotate(var(--tilt-face))}}.face-strip{justify-content:center;gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.face-strip .face-frame{width:var(--size-face-strip);height:var(--size-face-strip);box-shadow:var(--shadow-face)}.face-tabs{gap:var(--space-2);scrollbar-width:none;margin:0 calc(-1 * var(--space-4));padding:var(--space-1) var(--space-4);display:flex;overflow-x:auto}.face-tab{min-height:var(--size-touch);padding:0 var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-round);background:var(--color-field);color:var(--color-ink-muted);cursor:pointer;transition:background-color var(--duration-1) var(--ease);flex:none;font-weight:500}.face-tab.is-picked{background:var(--color-ink);color:var(--color-page);border-color:#0000}.face-options{grid-template-columns:repeat(auto-fill, minmax(var(--size-face-option), 1fr));gap:var(--space-2);display:grid}.face-option{aspect-ratio:1;cursor:pointer;transition:transform var(--duration-1) var(--ease-back);background:0 0;border:0;border-radius:50%;padding:0}.face-option .face-frame{width:100%;height:100%;box-shadow:var(--shadow-face)}.face-option:hover{transform:scale(1.06)}.face-option:active{transform:scale(.94)}.face-option:focus-visible{outline:2px solid var(--color-ring);outline-offset:3px}.face-option.is-picked .face-frame{box-shadow:0 0 0 2px var(--color-raised), 0 0 0 4px var(--color-ring)}.is-close-up svg{transform:scale(var(--zoom-face-part));transform-origin:50% 60%}.face-button{width:var(--size-face-bar);height:var(--size-face-bar);border-radius:50%;padding:0;overflow:hidden}.face-button .face-frame{width:100%;height:100%}.face-sheet{z-index:50;padding:var(--space-3);background:var(--color-scrim);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.face-sheet-panel{width:100%;max-width:var(--size-sheet);max-height:calc(100dvh - var(--space-5));animation:face-sheet-rise var(--duration-2) var(--ease);overflow-y:auto}@keyframes face-sheet-rise{0%{transform:translateY(var(--space-4));opacity:0}}@media (width>=40rem){.face-sheet{align-items:center}}@media (prefers-reduced-motion:reduce){.face-preview,.face-sheet-panel{animation:none}}.sheet-layer{z-index:30;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-scrim{background:var(--color-scrim);cursor:pointer;border:0;padding:0;position:absolute;inset:0}.sheet{width:100%;max-width:var(--size-sheet);gap:var(--space-2);max-height:85dvh;padding:var(--space-5) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));background:var(--color-raised);color:var(--color-raised-ink);border-radius:var(--radius-4) var(--radius-4) 0 0;box-shadow:var(--shadow-2);flex-direction:column;display:flex;position:relative;overflow-y:auto}@media (width>=40rem){.sheet-layer{align-items:center}.sheet{border-radius:var(--radius-4)}}.sheet-title{margin:0 0 var(--space-2);font-size:var(--text-4);font-weight:600}.sheet .button{width:100%}.table-stage{position:relative}.table-call{align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;display:flex;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.requests{z-index:25;top:calc(var(--size-bar) + var(--space-2));gap:var(--space-2);width:min(var(--size-sheet), calc(100vw - var(--space-5)));flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.request{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-3);background:var(--color-raised);color:var(--color-raised-ink);box-shadow:var(--shadow-2);font-size:var(--text-2);display:flex}.request-text{flex:1}.button.small{min-height:2.25rem;padding:var(--space-1) var(--space-3);font-size:var(--text-2)}.sheet-heading{margin:var(--space-3) 0 0;font-size:var(--text-2);color:var(--color-ink-muted);font-weight:600}.sheet-row,.sheet-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.sheet-actions .button{flex:1}.sheet-form,.inline-form{gap:var(--space-2);display:flex}.sheet-form{flex-direction:column}.inline-form .text-input{flex:1}.inline-form .button{width:auto}.member-face.is-away{opacity:var(--opacity-away)}.opening{padding:var(--space-6) 0;text-align:center}.transfers{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bar-button.face-button{min-height:var(--size-face-bar)}
