:root{--avatar-tile-bg:#f4eedb;--avatar-tile-border:#dcd3b8;--avatar-selected-ring:#a84b2e}.hf-avatar-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px;min-width:0;padding:8px 3px 16px;display:grid}.hf-avatar-group{min-width:0}.hf-avatar-group h4{color:#244331;margin:0 0 10px;font-size:14px;line-height:1.35}.hf-avatar-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.hf-avatar-tile{background:var(--avatar-tile-bg);border:1px solid var(--avatar-tile-border);cursor:pointer;-webkit-user-select:none;user-select:none;color:#203b2b;min-width:0;min-height:88px;font:inherit;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:8px 6px;display:flex}.hf-avatar-tile[aria-checked=true]{border-color:var(--avatar-selected-ring);box-shadow:0 0 0 2px var(--avatar-selected-ring)}.hf-avatar-tile:focus-visible{outline-offset:4px;outline:3px solid #203b2b}.hf-avatar-tile:hover{border-color:#5a7865}.hf-avatar-tile__image-wrapper{aspect-ratio:1;background:#faf7ee;border:1px solid #00000014;border-radius:50%;flex:none;justify-content:center;align-items:center;width:52px;max-width:100%;height:52px;display:flex;overflow:hidden}.hf-avatar-tile__image-wrapper svg{width:100%;height:100%;display:block;overflow:hidden}.hf-avatar-tile__label{text-align:center;overflow-wrap:anywhere;font-size:11px;font-weight:600;line-height:1.25}.hf-player-avatar{background:#faf7ee;border:1.5px solid #faf7ee;border-radius:50%;flex-shrink:0;width:36px;height:36px;display:block;overflow:hidden}.hf-player-avatar svg,.hf-player-avatar img{object-fit:cover;width:100%;height:100%;display:block}html .playing .player-panel[data-panel] .player-identity-card .player-avatar.hf-player-avatar{border-radius:50%;flex:none;width:36px;height:36px;display:block}.starter-identity .hf-player-avatar{flex:0 0 48px;width:48px;height:48px}.utility-dialog .hf-avatar-groups{grid-template-columns:1fr}.entry-avatar .hf-avatar-groups{grid-template-columns:1fr;padding-top:8px}@media (max-width:767px){.hf-player-avatar,html .playing .player-panel[data-panel] .player-identity-card .player-avatar.hf-player-avatar{width:28px;height:28px}.starter-identity .hf-player-avatar{width:48px;height:48px}.hf-avatar-groups{grid-template-columns:1fr}.hf-avatar-grid{gap:7px}.hf-avatar-tile{padding:8px 4px}.hf-avatar-tile__label{font-size:10px}}@media (max-width:359px){.hf-avatar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}html[data-compact-table] .player-tabs button{text-align:left;grid-template-columns:28px minmax(0,1fr);align-items:center;column-gap:4px;min-height:48px;display:grid}html[data-compact-table] .player-tabs .hf-player-avatar{grid-area:1/1/span 2;width:28px;height:28px}html[data-compact-table] .player-tabs .player-tab-identity,html[data-compact-table] .player-tabs small{grid-column:2;min-width:0}html[data-compact-table] .player-tabs .tab-player-name{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.host-controls{border-top:1px solid #bac6b2;border-bottom:1px solid #bac6b2;margin:20px 0;padding:16px 0;font-size:14px}.host-controls p:last-child{margin-bottom:0}.host-recovery{margin-top:12px}.host-recovery summary,.private-code-entry summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600}.host-recovery p{max-width:48ch;margin:8px 0 12px;font-size:13px;line-height:1.5}.host-recovery code{color:#244331;overflow-wrap:anywhere;letter-spacing:.03em;background:#f9f4e7;border:1px solid #bac6b2;border-radius:4px;max-width:100%;margin:8px 0 12px;padding:12px;font:600 14px/1.6 ui-monospace,monospace;display:block}.host-recovery button{min-height:44px;margin:0}.private-code-entry{border-top:1px solid #bdc9b7;margin:20px 0}.private-code-entry label{margin-top:8px}.private-code-entry input{font-family:ui-monospace,monospace}.private-code-entry p{margin-bottom:16px}.saved-seat{background:#f9f4e7;border:1px solid #98a98b;border-radius:5px;margin:0 0 24px;padding:16px}.saved-seat p{margin-bottom:12px;font-size:14px}.saved-seat button{width:100%}.utility-dialog .host-line{margin:16px 0 6px;font-size:14px;font-weight:600}.utility-dialog .host-reconnect{margin:6px 0 12px;font-size:13px;line-height:1.5}.utility-dialog .host-recovery{border-top:1px solid #bdc9b7;padding-top:4px}.utility-dialog .host-recovery p{color:#435b48}.utility-dialog .host-recovery button{padding:8px 12px}dialog.hf-leave-dialog{box-sizing:border-box;color:#304c37;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fbf5e8;border:1px solid #8a9d82;border-radius:8px;width:min(440px,100vw - 32px);max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:24px;font-family:inherit;overflow:auto}.hf-leave-dialog::backdrop{background:#102c24b8}.hf-leave-dialog h2{color:inherit;margin:0 0 12px;font:700 24px/1.3 Lora,Georgia,serif}.hf-leave-dialog p{color:inherit;margin:0;font-size:15px;line-height:1.6}.hf-leave-dialog .hf-leave-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.hf-leave-dialog button{box-sizing:border-box;color:#304c37;min-width:112px;min-height:44px;font:inherit;cursor:pointer;background:#f9f4e7;border:1px solid #8a9d82;border-radius:5px;margin:0;padding:10px 14px;font-size:14px;font-weight:600;line-height:1.4}.hf-leave-dialog button:hover{background:#e5eadc}.hf-leave-dialog button.hf-leave-confirm{color:#fffaf0;background:#a84b2e;border-color:#91432e}.hf-leave-dialog button.hf-leave-confirm:hover{background:#91432e}.hf-leave-dialog button:focus-visible{outline-offset:3px!important;outline:3px solid #315e42!important}@media (max-width:420px){dialog.hf-leave-dialog{padding:20px}.hf-leave-dialog .hf-leave-actions{grid-template-columns:1fr 1fr;display:grid}.hf-leave-dialog button{width:100%;min-width:0}}*{box-sizing:border-box}body{color:#f3e9d0;background:#183c2d;margin:0;font:16px/1.45 DM Sans,system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}:is(button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible){outline-offset:3px;outline:3px solid #e9c778}header{background:#102820;border-bottom:1px solid #5b7865;justify-content:space-between;align-items:center;padding:15px 24px;display:flex}a{color:#f4e7c7}.brand{font-family:Georgia,serif;font-size:22px;text-decoration:none}.brand span{margin-left:8px}main{max-width:1280px;margin:0 auto;padding:26px}h1,h2,p{margin:0 0 12px}h1{font:600 28px Georgia,serif}h2{font-size:17px}p{color:#d1ddcb}label,legend{margin-bottom:8px;font-weight:700;display:block}input,select{color:#233c2a;background:#f9f4e7;border:1px solid #98a98b;border-radius:5px;min-height:44px;padding:10px 12px}button{color:#244331;background:#f7f1e1;border:1px solid #9aab92;border-radius:5px;min-height:44px;padding:9px 15px;font-weight:700}button.primary{color:#fff;background:#a9462c;border-color:#873720}button.link{color:#f4e7c7;background:0 0;border:0;text-decoration:underline}.join,.lobby{color:#1d3929;background:#e9e5d3;border-radius:8px;max-width:680px;margin:30px auto;padding:28px}.join p,.lobby p{color:#435b48}.join input{width:100%}fieldset{border:0;margin:22px 0;padding:0}.avatars{flex-wrap:wrap;gap:8px;display:flex}.avatars button{width:54px;height:54px;padding:4px;font-size:27px}.join-actions{border-top:1px solid #bdc9b7;grid-template-columns:1fr 1fr;gap:24px;padding-top:20px;display:grid}.join-actions>div{flex-direction:column;gap:8px;display:flex}.join-actions label{margin:0}.room-bar,.table-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.room-code{letter-spacing:.12em;margin-left:8px;font-size:20px}.lobby ul,.results ul{padding:0;list-style:none}.lobby li{border-top:1px solid #bac6b2;align-items:center;gap:12px;min-height:54px;padding:12px 0;display:flex}.avatar{font-size:24px}.empty{color:#6b7d69}.table-head{padding:22px 0}.table-head h1{margin-bottom:4px}.opponents{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.opponent,.board,.hand,.results{color:#1c3928;background:#9fbaa0;border:1px solid #66836a;border-radius:8px;padding:16px}.opponent p,.board p,.hand p,.results p{color:#395740}.opponent h2{margin-bottom:2px}.sets{flex-wrap:wrap;gap:10px;display:flex}.meld{background:#d5e0cd;border-radius:4px;max-width:100%;padding:4px;display:flex;overflow:auto}.meld .card-button{width:42px;min-width:42px;margin-right:-13px}.meld .card-button:last-child{margin-right:0}.center{text-align:center;justify-content:center;gap:40px;padding:22px;display:flex}.center p{margin:6px}.center .card-button{width:58px;margin:8px auto;display:block}.board{margin-bottom:12px}.hand-cards{gap:5px;padding:10px 4px 14px;display:flex;overflow-x:auto}.card-button{background:0 0;border:0;border-radius:4px;flex:none;width:68px;min-height:0;padding:0;line-height:0}.card-button img{width:100%;height:auto;display:block}.card-button.chosen{outline-offset:2px;outline:4px solid #bf6429}.actions{flex-wrap:wrap;align-items:end;gap:10px;margin-top:14px;display:flex}.actions label{margin:0}.actions select{display:block}.results{margin-top:12px}.error{color:#fff;background:#8e3823;border-radius:4px;margin-top:18px;padding:12px}@media (max-width:600px){main{padding:16px}.join,.lobby{margin:12px auto;padding:18px}.join-actions{grid-template-columns:1fr;gap:22px}.opponents{grid-template-columns:1fr 1fr;gap:8px}.opponent{padding:10px}.room-bar,.table-head{flex-direction:column;align-items:flex-start}.center{gap:20px}.card-button{width:60px}.hand{padding:12px}.actions button{flex:1}.table-head{padding:16px 0}}.starter{margin:0 0 16px}.starter summary{cursor:pointer;font-weight:700}.starter p{margin:6px 0}.results li{border-bottom:1px solid #788f79;padding:10px 0}.results summary{cursor:pointer}.card-button:not(button){display:inline-block}.meld-group>span{margin-bottom:3px;font-size:12px;font-weight:700;display:block}.meld-group{max-width:100%}.card-image{display:block;position:relative}.card-image .portrait{object-fit:contain;width:68%;height:86%;position:absolute;top:7%;left:16%}.appearance{margin-bottom:12px}.appearance summary{cursor:pointer}.appearance label{align-items:center;gap:8px;margin:8px 16px 0 0;display:inline-flex}.appearance input{min-height:0}.avatar-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;display:grid}.avatar-group h2{color:#50634c;margin:0 0 6px;font-size:13px}.avatars{gap:6px}.avatars button{place-items:center;width:50px;height:50px;min-height:50px;padding:3px;display:grid}.avatars button.active{outline-offset:1px;outline:2px solid #a9462c}.avatar-image{object-fit:contain;width:100%;height:100%;display:block}.avatar{vertical-align:middle;border-radius:50%;flex:none;width:36px;height:36px;display:inline-flex;overflow:hidden}@media (max-width:390px){.avatar-groups{grid-template-columns:1fr}}.shared-rules{color:#f3e9d0;margin:20px 0}.shared-rules summary{cursor:pointer;font-weight:700}.shared-rules p{color:#e3d7bc;margin:10px 0}.shared-rules fieldset{border:0;margin:14px 0;padding:0}.shared-rules legend{margin-bottom:8px;font-weight:700}.rule-fields{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.rule-fields label{flex-direction:column;gap:4px;display:flex}.rule-fields input{width:100%;min-width:0}.room-copy{color:#f3e9d0;background:0 0;border-color:#9caf99;align-items:center;gap:8px;display:inline-flex}.room-copy .room-code{margin:0}.room-copy span{font-size:12px}.copy-status{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.table-entry{max-width:620px}.entry-intro{max-width:48ch;margin-bottom:24px}.entry-choices{gap:12px;display:grid}.entry-choice{text-align:left;background:#f9f4e7;border-color:#98a98b;width:100%;padding:20px;display:block}.entry-choice:hover{background:#f5eedb;border-color:#244331}.entry-choice strong{justify-content:space-between;gap:16px;margin-bottom:6px;font-size:19px;display:flex}.entry-choice>span{color:#435b48;font-size:15px;font-weight:400;display:block}.entry-return{border-top:1px solid #bdc9b7;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:24px;padding-top:16px;font-size:15px;display:flex}.text-button{color:#244331;text-underline-offset:3px;background:0 0;border:0;border-radius:0;min-height:44px;padding:8px 0;text-decoration:underline}.entry-back{margin:-8px 0 12px}.table-entry h1:focus{outline:none}.entry-fields{min-width:0;margin:0}.entry-field{margin-bottom:20px}.entry-field input,.entry-field select{width:100%}.table-entry .field-help{margin:8px 0 0;font-size:14px}.entry-code{letter-spacing:.08em;font-size:20px}.entry-code::placeholder{letter-spacing:0;font-size:16px}.entry-avatar{border-top:1px solid #bdc9b7;border-bottom:1px solid #bdc9b7;margin:24px 0}.entry-avatar summary{cursor:pointer;align-items:center;gap:12px;min-height:64px;padding:12px 0;display:flex}.entry-avatar summary>span:nth-child(2){font-size:13px}.entry-avatar summary strong{font-size:15px;display:block}.avatar-change{text-underline-offset:3px;margin-left:auto;font-size:14px;text-decoration:underline}.entry-avatar .avatar-groups{padding:8px 2px 20px}.entry-submit{width:100%;min-height:48px}.table-entry .entry-error{color:#fff;margin:0 0 16px}.entry-alternate{margin:16px 0 0;font-size:14px}.entry-alternate .text-button{font-size:14px}.recovery-wait{padding-top:8px}.verification-code{letter-spacing:.12em;margin:16px 0;font-size:28px;display:block}.recovery-wait button{margin-top:4px}.lobby-invite{border-bottom:1px solid #bac6b2;margin-bottom:24px;padding:8px 0 24px}.lobby-code-row{flex-wrap:wrap;align-items:center;gap:16px;margin:16px 0 12px;display:flex}.lobby-code{letter-spacing:.12em;font-size:clamp(24px,5vw,32px);line-height:1.2}.lobby-invite .invite-help{margin:0;font-size:14px}.lobby-players-heading{justify-content:space-between;gap:12px;margin-bottom:8px;display:flex}.lobby-players-heading span{color:#435b48;font-size:15px;font-weight:400}.lobby ul{margin:0 0 20px}.lobby li .avatar{width:40px;height:40px}.lobby .empty{color:#53664e}.lobby-next{margin:0}.lobby .actions{align-items:center;gap:12px}.lobby .actions .primary{margin-left:auto}.lobby .shared-rules{color:#244331}.lobby .shared-rules p{color:#435b48}.lobby .appearance{color:#435b48;border-top:1px solid #bac6b2;margin:24px 0 0;padding-top:16px;font-size:14px}.lobby-footer{margin-top:8px}.lobby-footer button{font-size:14px}@media (max-width:600px){.entry-choice{padding:16px}.entry-intro{margin-bottom:20px}.entry-choice strong{font-size:18px}.entry-return{margin-top:20px}.lobby-code-row{gap:12px}.lobby-code-row button{min-width:0}.lobby .actions button{flex:1}.lobby .actions .primary{margin-left:0}.entry-alternate .text-button{display:block}.entry-fields:disabled .entry-submit{opacity:1}}
