@font-face{font-family:BuloRounded;src:url(../assets/fonts/BuloRounded-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:BuloRounded;src:url(../assets/fonts/BuloRounded-Bold.woff2) format("woff2");font-weight:700;font-display:swap}:root{font-family:BuloRounded,Verdana,Arial,sans-serif;color:#252c26;font-synthesis:none;background:#1e5c1d;--paper:#f9f6f2;--blue:#abd2ff;--ink:#124f7e;--gold:#ffe066;--green:#559f3d}*{box-sizing:border-box}body{margin:0;min-width:320px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;color:inherit;border:0}button:disabled{cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffe066;outline-offset:3px}button img{pointer-events:none}img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}h1,h2,p{margin-top:0}button:disabled:not(.hand-card):not(.pile){opacity:.5}.rummy{min-height:100dvh;background:#1e5c1d url(../assets/pieces/wallpaper/fabrics/green-felt.jpg) repeat;background-size:100px 100px;overflow:hidden}.game-table{height:100dvh;min-height:340px;max-width:1200px;width:100%;margin:0 auto;position:relative;isolation:isolate;overflow:hidden}.toolbar{position:absolute;top:16px;display:flex;background:var(--paper);border:1px solid #c9c5b8;border-radius:7px;z-index:250;box-shadow:0 1px 4px #0003;overflow:hidden;height:40px}.toolbar-left{left:16px}.toolbar-right{right:16px}.toolbar button{padding:8px;width:40px;background:transparent;display:flex;align-items:center;justify-content:center}.toolbar button:hover{background:#fff0b9}.toolbar button img{width:24px;height:24px;object-fit:contain}.toolbar .muted img{opacity:.4}.menu-dismiss{position:absolute;top:0;right:0;bottom:0;left:0;z-index:220;background:transparent}.play-menu{position:absolute;top:70px;left:16px;width:296px;padding:12px;background:var(--paper);border-radius:8px;box-shadow:0 3px 9px #0005;z-index:240;display:grid;grid-template-columns:1fr 1fr;gap:7px}.play-menu header{grid-column:1/-1;display:flex;justify-content:space-between;margin-bottom:5px}.play-menu header span{color:#77776c;font-size:14px}.play-menu button{min-height:38px;background:#fff;border:1px solid #e2dfd4;border-radius:4px;font-weight:700}.play-menu .green-button{grid-column:1/-1;background:var(--green);color:#fff}.play-menu small{display:block;font-size:13px}.message-stack{position:absolute;z-index:140;display:grid;gap:8px;pointer-events:none;font-size:16px;line-height:1.35}.game-message,.hint-message,.error-message{border-radius:7px;padding:11px 12px;background:var(--paper);box-shadow:0 2px 4px #0003}.error-message{color:#8f2622;background:#fff0da}.hint-message{font-size:.95em}.avatar,.opponent-fan img,.nameplate,.scoreplate,.dealer,.hand-card,.sort-button,.small-action{position:absolute}.nameplate{background:var(--blue);border:1px solid #75a6dc;border-radius:7px;color:var(--ink);font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 3px #0003;white-space:nowrap}.nameplate.wide{justify-content:space-between;padding:0 28px}.nameplate.wide>span:first-child,.own-plate>button{width:38%;overflow:hidden;text-overflow:ellipsis}.top-score,.own-plate>span{width:30%;text-align:center}.scoreplate{display:grid;place-items:center;background:var(--blue);color:var(--ink);font-weight:700;border-radius:0 0 7px 7px;box-shadow:0 2px 3px #0003}.opponent.current .nameplate,.you.current .nameplate{background:#c5e6ff;box-shadow:0 0 0 2px #92c8ff,0 2px 3px #0004}.dealer{display:grid;place-items:center;background:var(--paper);border:2px solid #aaa;color:#262b27;font-size:14px;font-weight:700;border-radius:50%;width:23px;height:23px}.opponent-fan img{border-radius:5px;box-shadow:0 1px 3px #0005}.meld-zone{position:absolute;border:1px solid #164d2366;border-radius:8px;background:#123e1912;z-index:40;overflow:auto;scrollbar-width:thin;scrollbar-color:#a6c29c55 transparent}.meld-zone.drop-ready{border:2px dashed var(--gold);background:#ffe06619}.meld-grid{padding:8px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px 13px}.meld{--meld-card-w:56px;position:relative;background:none;border:2px solid transparent;border-radius:6px;display:flex;padding:3px 3px 0;flex-direction:column;max-width:100%;overflow:hidden}.meld-owner{position:absolute;bottom:0;left:0;right:0;z-index:20;background:#0f3e1ce0;color:#e4eee3;font-size:10px;line-height:15px;opacity:0;transition:opacity .15s}.meld:hover .meld-owner,.meld:focus-visible .meld-owner{opacity:1}.meld-cards{display:flex;padding-right:calc(var(--meld-card-w)*.5)}.meld-cards img{width:var(--meld-card-w);height:calc(var(--meld-card-w)*1.4);object-fit:fill;border-radius:4px;margin-right:calc(var(--meld-card-w)*-.5);box-shadow:0 1px 3px #0005}.meld.can-layoff{border-color:var(--gold);background:#ffe0662b;box-shadow:0 0 8px #ffe06670}.drop-label{display:grid;place-items:center;height:100%;color:var(--gold);font-weight:700}.piles{position:absolute;display:flex;z-index:45}.pile{padding:0;position:relative;background:transparent;border-radius:7px;box-shadow:0 1px 4px #0006}.pile>img{width:100%;height:100%;display:block;border-radius:7px}.pile.available:hover{box-shadow:0 0 0 3px var(--gold),0 3px 8px #0006}.pile-count{position:absolute;bottom:15px;min-width:24px;height:24px;line-height:24px;background:var(--paper);color:#30342b;font-size:16px;font-weight:700;border-radius:3px}.stock-count{right:calc(100% + 3px)}.discard-count{left:calc(100% + 3px)}.turn-actions{position:absolute;transform:translate(-50%);display:flex;gap:7px;align-items:center;justify-content:center;max-width:calc(100% - 24px);z-index:180;white-space:nowrap}.gold-button{background:#ffdc4b;border:1px solid #c4a936;border-radius:7px;min-width:140px;min-height:40px;padding:7px 20px;font-weight:700;box-shadow:0 1px 4px #0003}.gold-button:hover{background:#ffeb8a}.clear-selection{background:var(--paper);border-radius:6px;padding:8px;color:#4a5149}.selection-note,.layoff-instruction{background:#164e22e0;border-radius:6px;padding:8px;color:var(--gold);font-size:14px;white-space:normal;text-align:center}.hand-card{padding:0;background:transparent;border:0;border-radius:11px;transition:top .14s ease,filter .14s ease;touch-action:manipulation;box-shadow:0 2px 5px #0004}.hand-card>img{width:100%;height:100%;display:block;border-radius:inherit}.hand-card:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 0 0 2px #ffe06690,0 2px 5px #0005}.hand-card.selected{box-shadow:0 0 0 3px var(--gold),0 5px 12px #0005}.hand-card:focus-visible{outline-offset:1px}.hint-target{outline:3px solid #ffe066!important;outline-offset:3px}.own-plate{z-index:170}.own-plate button{background:transparent;color:var(--ink);padding:0;text-align:left;font-weight:700}.own-avatar{z-index:171;pointer-events:none}.small-action{z-index:172;padding:7px;background:var(--paper);border-radius:6px;border:1px solid #bbb9a5;box-shadow:0 1px 3px #0004}.small-action img{width:100%;height:100%;object-fit:contain}.sort-button{z-index:173;padding:0;background:var(--paper);border-radius:4px;border:1px solid #bbb9a5;font-size:12px;font-weight:700}.table-caption{position:absolute;bottom:7px;left:16px;right:16px;display:flex;justify-content:space-between;font-size:11px;color:#d0e3cc;pointer-events:none;z-index:190}.veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#122314a3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:500}.dialog{background:var(--paper);border-radius:10px;width:min(100%,620px);max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 8px 40px #0006;padding:24px;color:#393b32;overscroll-behavior:contain}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid #ddd7c8}.dialog h1{font-size:26px;line-height:1.1;margin:0;font-weight:700}.dialog h2{font-size:18px;line-height:1.25;margin:22px 0 10px}.close-button{padding:7px 11px;border-radius:5px;background:#e3dfd3;font-size:14px}.dialog p,.dialog li{font-size:16px;line-height:1.55}.dialog ol{padding-left:23px}.intro{font-size:18px!important}.quiet{color:#77776c;font-size:13px!important;line-height:1.5}.rules-examples{display:flex;gap:25px;justify-content:space-evenly;text-align:center;background:#ece8dc;padding:14px;border-radius:7px}.rules-examples>div{flex:1}.example-cards{display:flex;justify-content:center;margin:10px 0}.example-cards img{height:82px;width:59px;object-fit:contain;margin-left:-14px;filter:drop-shadow(0 1px 2px #0003)}.example-cards img:first-child{margin-left:0}.rules-examples span{font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:16px;border-top:1px solid #ddd7c8}.dialog-actions button{min-height:40px;padding:8px 18px;border-radius:5px;background:#e1dccf;font-weight:700}.dialog-actions .green-button,.green-button{background:var(--green);color:#fff}.green-button:hover{background:#478c30}.settings-body h2{background:#ece8dc;padding:8px 10px;margin:20px -4px 5px;border-radius:4px}.name-field{display:grid;grid-template-columns:1fr 1.2fr;align-items:center;gap:15px;padding:12px 0}.name-field input{width:100%;padding:8px 10px;border:1px solid #bbb8ac;border-radius:4px;background:#fff}.avatar-options{border:0;padding:10px 0;margin:0}.avatar-options legend{padding:0;margin-bottom:8px}.avatar-options button{background:#eae5d7;border:2px solid transparent;border-radius:7px;margin:0 10px 0 0;padding:6px}.avatar-options img{width:52px;height:52px}.avatar-options .chosen{border-color:#619c42;background:#ddedc9}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #e4dfd3;font-size:16px}.setting-row input[type=checkbox]{width:22px;height:22px;accent-color:#559f3d;cursor:pointer}.setting-row select{padding:6px 10px;background:#fff;border:1px solid #bdb8ac;border-radius:4px}.score-table{border-collapse:collapse;width:100%;margin:20px 0}.score-table th,.score-table td{text-align:right;padding:12px 10px;border-bottom:1px solid #ded9ca}.score-table th:first-child{text-align:left}.score-table thead th{font-weight:400;color:#828071;font-size:13px}.score-table tbody .winner{background:#e3efcf}.result-dialog{text-align:center;max-width:560px}.result-dialog .dialog-heading{text-align:left}.result-avatar{width:96px;height:96px}.result-title{font-size:26px!important;margin-top:12px!important;color:var(--ink)}.result-points{font-size:24px!important;color:#4c8d31}.result-points strong{display:block;font-size:18px;color:#ad761c}.hand-card,.pile,.meld-cards img,.example-cards img{background-color:#fff}.portrait .toolbar{top:12px;height:34px}.portrait .toolbar-left{left:8px}.portrait .toolbar-right{right:8px}.portrait .toolbar button{width:34px;padding:6px}.portrait .toolbar button img{width:22px;height:22px}.portrait .message-stack{font-size:12px}.portrait .game-message,.portrait .hint-message,.portrait .error-message{padding:8px}.portrait .nameplate.wide{padding:0 10px}.portrait .pile-count{font-size:12px;bottom:8px;height:20px;line-height:20px;min-width:20px}.portrait .stock,.portrait .pile>img{border-radius:5px}.portrait .meld-grid{padding:4px;gap:5px}.portrait .meld{padding:2px}.portrait .gold-button{font-size:14px;min-width:83px;min-height:32px;padding:6px 12px}.portrait .clear-selection{font-size:12px;padding:7px}.portrait .turn-actions{gap:5px}.portrait .table-caption{font-size:9px;left:8px;right:8px;bottom:7px}.portrait .hand-card{border-radius:6px}.portrait .selection-note,.portrait .layoff-instruction{font-size:11px;max-width:125px;padding:5px}.portrait .dealer{width:20px;height:20px;font-size:12px}.portrait .small-action{padding:5px}@media(max-width:620px){.veil{padding:12px}.dialog{padding:17px;max-height:calc(100dvh - 24px);border-radius:8px}.dialog h1{font-size:22px}.dialog p,.dialog li{font-size:14px}.dialog h2{font-size:16px}.dialog-heading{gap:8px;margin-bottom:16px}.score-table th,.score-table td{padding:10px 6px}.avatar-options button{margin-right:8px;padding:5px}.avatar-options img{width:42px;height:42px}.setting-row{font-size:14px}.rules-examples{gap:10px;padding:10px}.example-cards img{height:70px;width:50px}.rules-examples span{font-size:11px}.name-field{font-size:14px}.dialog-actions button{font-size:14px;padding:8px 13px}}@media(max-height:600px)and (min-width:621px){.toolbar{top:8px;height:32px}.toolbar button{width:32px;padding:5px}.toolbar img{width:22px!important;height:22px!important}.message-stack{font-size:12px}.game-message,.hint-message,.error-message{padding:7px}.table-caption{font-size:9px;bottom:3px}.gold-button{min-height:28px;min-width:85px;font-size:13px;padding:4px 12px}.turn-actions{gap:4px}.clear-selection{font-size:11px;padding:4px}.sort-button{transform:scale(.8);transform-origin:left bottom}.selection-note,.layoff-instruction{font-size:11px;padding:5px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.reduce-motion *{animation:none!important;transition:none!important}
