@property --tile-unit{syntax: "<length>"; inherits: true; initial-value: 46px;}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{background:#1e5631}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;background:#1e5631;overflow-x:hidden;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}.domino-tile{position:relative;display:flex;background:var(--tile-bg, #1a1512);border:1px solid var(--tile-border, #4a3f30);border-radius:calc(var(--tile-unit, 46px) * .12);box-shadow:0 2px 4px #00000040;padding:0;cursor:default;transition:transform .15s ease,box-shadow .15s ease,width .25s ease,height .25s ease,border-radius .25s ease;flex-shrink:0}.domino-tile:not(.face-down):after{content:"";position:absolute;top:50%;left:50%;width:calc(var(--tile-unit, 46px) * .11);height:calc(var(--tile-unit, 46px) * .11);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 35%,#f5d576,#b8860b 70%,#7a5c0a);box-shadow:0 1px 1px #0006;pointer-events:none}.domino-tile.horizontal{flex-direction:row;width:calc(var(--tile-unit, 46px) * 2);height:var(--tile-unit, 46px)}.domino-tile.vertical{flex-direction:column;width:var(--tile-unit, 46px);height:calc(var(--tile-unit, 46px) * 2)}.domino-tile.clickable{cursor:pointer}.domino-tile.clickable:hover{transform:translateY(-4px);box-shadow:0 6px 10px #0000004d}.domino-tile.selected{outline:3px solid #e2b13c;outline-offset:1px}.domino-tile.disabled{opacity:.8;filter:saturate(.4)}.domino-half{flex:1;display:flex;align-items:center;justify-content:center}.pip-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:78%;height:78%;gap:6%}.pip{border-radius:50%;aspect-ratio:1}.pip-on{background:var(--pip-color, #faf1dc)}.domino-divider{background:var(--tile-border, #4a3f30)}.horizontal .domino-divider{width:1px;height:82%;align-self:center}.vertical .domino-divider{height:1px;width:82%;align-self:center}.domino-back{width:100%;height:100%;border-radius:inherit;background:linear-gradient(135deg,var(--tile-back-start, #241d17),var(--tile-back-end, #120e0b))}.board{--board-inset: 1rem;position:relative;flex:1;overflow:hidden;padding:var(--board-inset);box-sizing:border-box;min-height:calc(var(--tile-unit, 46px) * 2 + var(--board-inset) * 2)}@media(max-width:480px){.board{--board-inset: .4rem}}.board-empty{display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;font-weight:500;font-style:italic}.board-canvas{position:absolute;inset:var(--board-inset)}.end-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:var(--tile-unit, 46px);height:var(--tile-unit, 46px);border-radius:8px;border:2px dashed #e2b13c;background:#e2b13c2e;color:#ffe8a3;cursor:pointer;flex-shrink:0;animation:end-zone-pulse 1.4s ease-in-out infinite;transition:width .25s ease,height .25s ease}.end-zone-value{font-size:1.1rem;font-weight:700}@keyframes end-zone-pulse{0%,to{box-shadow:0 0 #e2b13c80}50%{box-shadow:0 0 0 6px #e2b13c00}}.hand{display:flex;flex-direction:column;gap:.4rem;padding:.6rem 1rem}.hand-top-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.6rem}.hand-top-row--no-banner{grid-template-columns:auto;justify-content:flex-start}.hand-label{display:flex;align-items:center;gap:.5rem;color:#fff;font-size:1rem;font-weight:700;justify-self:start;background:#ffffff14;border-radius:6px;padding-block:.35rem;padding-inline:.6rem;white-space:nowrap}.hand-count{font-weight:400;color:#fff}.hand-turn-banner{background:#ffffff1f;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:999px;padding-block:.45rem;padding-inline:.9rem;font-size:1rem;font-weight:700;font-family:inherit;justify-self:center}.hand-turn-banner-action{border-radius:6px;cursor:pointer;animation:hand-turn-banner-pulse 2s ease-in-out infinite}.hand-turn-banner-own{background-color:#fff;border-color:#fff;color:#1e5631}.hand-turn-banner-action:hover{background:#ffffff38}.hand-turn-banner-own.hand-turn-banner-action{animation:hand-turn-banner-pulse-own 2s ease-in-out infinite}.hand-turn-banner-own.hand-turn-banner-action:hover{animation-play-state:paused;background-color:#e6e6e6}@keyframes hand-turn-banner-pulse{0%,to{box-shadow:0 0 #ffffff59}50%{box-shadow:0 0 0 6px #fff0}}@keyframes hand-turn-banner-pulse-own{0%,to{background-color:#fff;border-color:#fff}50%{background-color:#ffffff8c;border-color:#ffffff8c}}.hand-tiles{display:flex;flex-wrap:wrap;gap:6px}.hand-tiles-column{flex-direction:column;flex-wrap:nowrap;align-items:center;overflow-y:auto;min-height:0}.hand-side{flex-direction:row;align-items:stretch;gap:.5rem}.hand-side-left{flex-direction:row-reverse}.hand-side-header{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.5rem;flex-shrink:0;padding-top:.2rem;min-width:2.75rem}.hand-side-header .hand-label,.hand-side-header .hand-turn-banner{writing-mode:vertical-rl;text-orientation:sideways;white-space:nowrap}.hand-side-right .hand-side-header .hand-label,.hand-side-right .hand-side-header .hand-turn-banner{transform:rotate(180deg)}.setup-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1500;padding:1rem}.setup-card{background:#1e5631;border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:1.75rem;width:420px;max-width:100%;max-height:90vh;overflow-y:auto;color:#fff;box-shadow:0 12px 32px #0006}.setup-card h2{margin:0 0 1.25rem;font-size:1.5rem;font-weight:700;color:#fff}.setup-section{margin-bottom:1.25rem}.setup-section h3{margin:0 0 .5rem;font-size:1rem;font-weight:500;color:#fff}.setup-options{display:flex;flex-direction:column;gap:.5rem}.setup-option{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;text-align:left;background:#00000026;border:2px solid transparent;border-radius:8px;padding:.6rem .8rem;color:#fff;cursor:pointer}.setup-option:disabled{opacity:.5;cursor:not-allowed}.setup-option:hover:not(:disabled){background:#ffffff1f}.setup-option.selected{border-color:#fff;background:#ffffff14}.setup-option.selected:hover{background:#ffffff1f}.setup-option-label{font-size:1rem;font-weight:700}.setup-option-description{font-size:1rem;font-weight:500;color:#fff}.setup-actions{display:flex;justify-content:center}.setup-buttons{display:flex;gap:.5rem;background:#ffffff14;border-radius:8px;padding:.4rem .6rem}.setup-cancel-button,.setup-start-button{background:transparent;color:#fff;border:none;border-radius:6px;padding:.45rem .9rem;font-size:1rem;font-weight:700;cursor:pointer}.setup-cancel-button:hover,.setup-start-button:hover{background:#ffffff1f}.rules-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1500;padding:1rem}.rules-card{background:#1e5631;border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:1.75rem;width:480px;max-width:100%;max-height:90vh;overflow-y:auto;color:#fff;box-shadow:0 12px 32px #0006}.rules-card h2{margin:0 0 .25rem;font-size:1.5rem;font-weight:700;color:#fff}.rules-variant-name{margin:0 0 1.25rem;font-size:1rem;font-weight:500;color:#fff}.rules-section{margin-bottom:1.25rem}.rules-section h3{margin:0 0 .5rem;font-size:1rem;font-weight:700;color:#fff}.rules-section p{margin:0 0 .6rem;font-size:1rem;font-weight:400;color:#fff;line-height:1.5}.rules-section p:last-child{margin-bottom:0}.rules-section ul{margin:0 0 .6rem;padding-left:1.2rem;display:flex;flex-direction:column;gap:.4rem}.rules-section li{font-size:1rem;font-weight:400;color:#fff;line-height:1.5}.rules-actions{display:flex;justify-content:center}.rules-buttons{display:flex;gap:.5rem;background:#ffffff14;border-radius:8px;padding:.4rem .6rem}.rules-close-button{background:transparent;color:#fff;border:none;border-radius:6px;padding:.45rem .9rem;font-size:1rem;font-weight:700;cursor:pointer}.rules-close-button:hover{background:#ffffff1f}.game-over-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1.25rem;padding:.75rem 1.25rem;color:#fff;flex-shrink:0}.game-over-scores{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem}.game-over-winners-tag{color:#fff;font-weight:700;margin-left:.4rem}.game-over-teams{display:grid;grid-template-columns:auto auto auto auto auto;align-items:center;column-gap:.6rem;row-gap:.4rem;padding:.5rem .75rem;border-radius:8px;background:#ffffff14;max-width:100%}@media(max-width:480px){.game-over-teams{display:flex;flex-wrap:wrap;justify-content:center}}.game-over-op-group{display:flex;align-items:center;gap:.5rem}.game-over-teams--simple{grid-template-columns:auto auto}.game-over-team-name{font-weight:700;white-space:nowrap}.game-over-player-pill{display:flex;align-items:center;gap:.3rem;padding:.3rem .5rem;border-radius:6px;background:#00000026;white-space:nowrap;font-size:1rem}.game-over-op{font-weight:700;text-align:center}.game-over-team-total{font-weight:700;white-space:nowrap}.game-over-winners-slot{min-width:3.5rem}.game-board{display:flex;flex-direction:column;height:100vh;height:100dvh;background:linear-gradient(135deg,#1e5631,#2d7a4a);color:#fff;--tile-bg: #1a1512;--tile-border: #4a3f30;--pip-color: #faf1dc;--tile-back-start: #241d17;--tile-back-end: #120e0b}.game-board[data-tile-theme=light]{--tile-bg: #f8f4ec;--tile-border: #8a7a5c;--pip-color: #24211c;--tile-back-start: #ffffff;--tile-back-end: #e4d9bd}.game-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.75rem 1.25rem;flex-shrink:0}.game-header h1{margin:0;font-size:1.3rem;display:flex;align-items:baseline;flex-wrap:wrap;gap:.3rem .6rem;flex:1 1 0%;min-width:0}.game-variant-name{font-size:1rem;font-weight:400;min-width:0}.game-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;max-width:100%}.game-header-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;background:#ffffff14;border-radius:8px;padding:.4rem .6rem;min-width:0;max-width:100%}.game-header-controls button{background:transparent;color:#fff;border:none;border-radius:6px;padding:.45rem .9rem;cursor:pointer;font-size:1rem;font-weight:700}.game-header-controls button:hover:not(:disabled){background:#ffffff1f}.game-header-controls button:disabled{opacity:.4;cursor:not-allowed}.game-header-controls button.new-game-button{background:#fff;color:#1e5631}.game-header-controls button.new-game-button:hover{background:#e6e6e6}.toggle-switch{display:flex;align-items:center;gap:.5rem;margin-left:.25rem}.toggle-switch span{color:#fff;font-weight:400;font-size:1rem;white-space:nowrap;cursor:pointer;transition:font-weight .2s}.toggle-switch span.active{font-weight:700}.switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#ffffff14;transition:.2s;border-radius:22px}.slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background-color:#fff;transition:.2s;border-radius:50%}.switch input:checked+.slider:before{transform:translate(18px)}.game-board>.hand{flex-shrink:0}.table-middle{flex:1;display:flex;align-items:stretch;min-height:0}.table-middle .hand{flex:0 0 auto;max-width:30%;justify-content:center;min-height:0}.boneyard-count{color:#fff;font-size:1rem}#root{min-height:100vh}
