#draw-dominoes-app{margin:12px 0 0}:root{--dd-bone:#f9f0db;--dd-bone-lo:#d6c5a0;--dd-back:#7a2323;--dd-back-dark:#3d0f0f;--dd-rule-blue:#b4c6da;--dd-ledge:10px}.game-title{margin:12px 0 0;font-size:1.75rem}.dd-game{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (width>=1100px){.dd-game{grid-template-columns:minmax(0,1fr) 300px;align-items:start}.dd-side{position:sticky;top:12px}}.dd-main{gap:12px;min-width:0;display:grid}.dd-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.dd-info{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.dd-hand-num{font-size:var(--text-lg);font-weight:800}.dd-chip{border:2px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:8px;padding:4px 12px;font-size:1.1rem;display:inline-flex}.dd-deal{font-variant-numeric:tabular-nums}.dd-topbar-buttons{flex-wrap:wrap;gap:8px;display:flex}.dd-opponents{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;display:grid}.dd-player{border:3px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);min-width:0;padding:8px 12px}.dd-player.is-active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px var(--primary-soft), var(--shadow-md)}.dd-player-name{font-family:var(--font-display);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:1.25rem;font-weight:700;display:flex}.dd-badge{background:var(--primary);color:var(--on-primary);font-family:var(--font);border-radius:999px;padding:0 10px;font-size:.95rem;font-weight:700;display:inline-block}.dd-backs{flex-wrap:wrap;gap:3px;min-height:24px;margin:6px 0 2px;display:flex}.dd-back{width:12px;height:24px}.tile-back-face{fill:var(--dd-back);stroke:var(--dd-back-dark);stroke-width:.08px}.tile-back-inlay{stroke:var(--brass-light);stroke-width:.05px}.tile-back-mark{fill:var(--brass);stroke:var(--brass-light);stroke-width:.03px}.dd-player-meta{flex-wrap:wrap;gap:0 14px;font-size:1.1rem;display:flex}.dd-status{border:3px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);padding:10px 16px}.dd-status p{margin:0}.dd-status.is-your-turn{border-color:var(--highlight);background:linear-gradient(180deg, var(--highlight-soft), var(--surface) 70%);box-shadow:0 0 0 3px var(--highlight) inset, var(--shadow-md)}.dd-turn{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700}.dd-todo{margin-top:2px!important}.dd-hint-box{margin-top:8px!important}.dd-log{border-top:1px solid var(--border);color:var(--muted);margin:8px 0 0;padding:8px 0 0;font-size:1.1rem;list-style:none}.dd-log li:last-child{color:var(--text);font-weight:600}.dd-log .why-text{font-weight:400}.dd-game .why-text[hidden],.dd-dialog .all-hands[hidden]{display:none}.dd-board{border:8px solid var(--felt-edge);background:var(--felt-bg);background-color:var(--felt);height:clamp(320px,58vh,640px);box-shadow:var(--shadow-md);border-radius:20px;flex-direction:column;display:flex;position:relative;overflow:hidden}.dd-board:after{content:"";pointer-events:none;border-radius:12px;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #00000059,inset 0 2px 0 3px #ffffff0d,inset 0 0 60px #00000047}.dd-board-info{flex-wrap:wrap;gap:6px;padding:8px 10px 0;display:flex}.dd-felt-chip{color:#fffbe8;background:#081c108c;border:2px solid #ffffff59;border-radius:999px;align-items:center;gap:6px;padding:3px 12px;font-size:1.1rem;line-height:1.3;display:inline-flex}.dd-felt-chip small{opacity:.9;font-size:.9rem}.dd-felt-chip.is-active{border-color:var(--highlight);box-shadow:0 0 0 2px var(--highlight)}.dd-yard:before{content:"";border:1.5px solid var(--tile-edge);background:var(--dd-bone);width:11px;height:20px;box-shadow:3px 3px 0 -.5px var(--tile-shade), 3px 3px 0 1px var(--tile-edge), 6px 6px 0 -.5px var(--tile-shade), 6px 6px 0 1px var(--tile-edge);border-radius:3px;flex:none;margin:0 5px 4px 0}.dd-end-num{background:var(--dd-bone);color:#15120e;min-width:1.6em;font-family:var(--font-display);border-radius:6px;place-items:center;padding:0 4px;font-size:1.2rem;display:inline-grid}.dd-board-area{flex:auto;min-height:0;position:relative}.dd-board-svg{width:100%;height:100%;display:block;position:absolute;inset:0}.tile-face{fill:var(--dd-bone);stroke:var(--tile-edge);stroke-width:.05px}.tile-bevel-hi{stroke:#fff;stroke-width:.05px;stroke-linecap:round}.tile-bevel-lo{stroke:var(--dd-bone-lo);stroke-width:.06px;stroke-linecap:round}.tile-line{stroke:#4a4136;stroke-width:.04px;stroke-linecap:round}.tile-line-hi{stroke:#fff;stroke-width:.03px;stroke-linecap:round}.tile-pin{fill:var(--brass);stroke:var(--brass-dark);stroke-width:.022px}.pip{fill:var(--pip)}.pip-rim{stroke:#fff;stroke-width:.024px;stroke-linecap:round}.dd-board .tile-shadow{fill:#0006}.dd-ghost-face .tile-shadow{fill:none}.dd-tile.is-opener .tile-face{stroke:#1a130a;stroke-width:.07px}.dd-ring-last{fill:none;stroke:#8fd3ff;stroke-width:.1px}.dd-slot-ring{fill:#ffffff0f;stroke:#ffffffbf;stroke-width:.06px;stroke-dasharray:.18 .12}.dd-pill rect{fill:#06180de0;stroke:#fff;stroke-width:.04px}.dd-pill text{fill:#fff;font-family:var(--font);font-weight:800}.dd-pill.is-target rect{fill:var(--highlight);stroke:#1a1a1a;stroke-width:.06px}.dd-pill.is-target text{fill:#1a1a1a}.dd-labels{pointer-events:none}.dd-target{cursor:pointer;outline:none}.dd-target-hit{fill:#0000}.dd-ghost-face{opacity:.55}.dd-target-ring{fill:#ffc80038;stroke:var(--highlight);stroke-width:.2px;animation:1.2s ease-in-out infinite dd-pulse}.dd-target:hover .dd-target-ring,.dd-target:focus-visible .dd-target-ring{fill:#ffc80073;stroke:#fff}.dd-hint-ring{fill:none;stroke:#fff;stroke-width:.12px;stroke-dasharray:.3 .18}@keyframes dd-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.45}}.reduce-motion .dd-target-ring{animation:none}.dd-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.dd-you{flex:220px}.dd-buttons{flex-wrap:wrap;gap:12px;display:flex}.dd-buttons:empty{display:none}.dd-buttons .btn.is-hint{outline:6px dashed var(--highlight);outline-offset:3px;box-shadow:0 0 0 9px var(--wood-dark)}.dd-hand{--hand-tile-w:clamp(44px, 5.4vw, 62px);border:5px solid var(--felt-edge);border-radius:var(--radius);background:var(--tex-noise), linear-gradient(180deg, #f1e7d0, #e3d5b6);background-blend-mode:soft-light, normal;box-shadow:var(--shadow-sm), inset 0 3px 8px #3c280f47, inset 0 0 0 1px #00000040;min-height:calc(var(--hand-tile-w) * 2 + 40px);flex-wrap:wrap;justify-content:center;gap:14px 10px;padding:22px 12px 16px;display:flex}.dd-hand-tile{width:var(--hand-tile-w);cursor:default;background:0 0;border:0;border-radius:10px;padding:0;transition:transform .15s;position:relative}.dd-hand-tile:after{content:"";height:var(--dd-ledge);background:linear-gradient(180deg, var(--wood-light) 0 2px, var(--wood) 2px, var(--wood-dark));pointer-events:none;transition:transform .15s;position:absolute;top:100%;left:-6px;right:-6px;box-shadow:0 2px 3px #28190a59}.dd-hand-tile:first-child:after{border-radius:4px 0 0 4px;left:-9px}.dd-hand-tile:last-child:after{border-radius:0 4px 4px 0;right:-9px}.dd-hand-tile.can-play:after{transform:translateY(10px)}.dd-hand-tile.is-selected:after{transform:translateY(16px)}.dd-hand-tile .tile-svg{filter:drop-shadow(0 2px 2px #28190a73);width:100%;height:auto;display:block}.dd-hand-tile.can-play{cursor:pointer;outline:4px solid var(--success);outline-offset:2px;transform:translateY(-10px)}.dd-hand-tile.can-play .tile-svg{filter:drop-shadow(0 6px 5px #28190a66)}.dd-hand-tile.can-play:hover{transform:translateY(-13px)}.dd-hand-tile.is-selected{outline:6px solid var(--primary);outline-offset:2px;transform:translateY(-16px)}.dd-hand-tile.cannot-play .tile-svg{opacity:.45}.dd-hand-tile:focus-visible{outline:6px solid var(--focus)}.dd-hand-tile.is-hint{outline:6px dashed var(--highlight);outline-offset:3px;box-shadow:0 0 0 9px var(--wood-dark)}.dd-hand-tile.is-selected.is-hint{outline-color:var(--primary)}.dd-tag{z-index:1;background:var(--highlight);color:#1a1a1a;white-space:nowrap;border-radius:6px;padding:0 6px;font-size:.9rem;font-weight:800;position:absolute;top:-15px;left:50%;transform:translate(-50%)}.dd-hint-tag{background:#fff;border:2px solid #1a1a1a}.dd-side{border:1px solid var(--border-strong);border-radius:8px 8px var(--radius) var(--radius);box-shadow:var(--shadow-md), 0 3px 0 -1px #f3ead6, 0 4px 0 -1px var(--border-strong);background:#fffdf6;padding:0 0 14px;overflow:hidden}.dd-sb-title{border-bottom:4px solid var(--brass);background:var(--wood-bg);background-color:var(--wood);color:#fff6e0;font-size:var(--text-lg);text-shadow:0 1px 2px #0009;margin:0;padding:10px 16px}.dd-sb-note{color:var(--muted);margin:10px 16px 8px;font-size:1.1rem}.dd-scoreboard,.dd-results{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:1.15rem}.dd-scoreboard th,.dd-scoreboard td,.dd-results th,.dd-results td{border-bottom:1px solid var(--border);text-align:center;padding:5px 6px}.dd-scoreboard th,.dd-scoreboard td{border-bottom-color:var(--dd-rule-blue)}.dd-scoreboard thead th{border-bottom:2px solid var(--text)}.dd-scoreboard tbody th,.dd-scoreboard tfoot th{text-align:left;white-space:nowrap;border-right:2px solid #b5392c8c}.dd-scoreboard td{font-family:var(--font-display);font-size:1.25rem}.dd-scoreboard tr.is-current{background:var(--highlight-soft)}.dd-scoreboard tr.is-current th{box-shadow:inset 6px 0 0 var(--primary);font-weight:800}.dd-scoreboard tfoot th,.dd-scoreboard tfoot td{font-weight:800}.dd-scoreboard tfoot tr:first-child th,.dd-scoreboard tfoot tr:first-child td{border-top:3px solid var(--text)}.dd-scoreboard td.is-best{color:var(--success);text-underline-offset:.15em;background:#dff3e3;-webkit-text-decoration:underline double;text-decoration:underline double}.dd-togo th,.dd-togo td{color:var(--muted);font-size:1.05rem;font-weight:600!important}.dd-how{color:var(--muted);font-family:var(--font);font-size:.95rem}.dd-dialog{border:0;border-top:8px solid var(--brass);background:var(--surface);width:min(720px,100vw - 24px);max-height:calc(100vh - 24px);box-shadow:0 0 0 2px var(--wood-dark), var(--shadow-lg);color:var(--text);border-radius:18px;padding:20px 24px 24px}.dd-dialog::backdrop{background:#1c12089e}.dd-dialog h2{margin-top:0}.dd-results thead th{border-bottom:3px solid var(--brass);font-family:var(--font-display)}.dd-results tbody th{text-align:left}.dd-results tr.is-winner th,.dd-results tr.is-winner td:last-child{color:var(--success)}.dd-headline{font-size:var(--text-lg);margin-bottom:4px;font-weight:700}.dd-points{margin-top:0}.dd-table-wrap{overflow-x:auto}.dd-left-tiles{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.dd-mini-tile{filter:drop-shadow(0 1px 1px #3c280f73);width:22px;height:44px}.dd-none{color:var(--success);font-weight:700}.dd-note{color:var(--muted)}.dd-dialog-buttons{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.dd-winner{font-size:var(--text-xl);color:var(--success);margin:0 0 8px;font-weight:800}.dd-all-hands{margin-top:16px}.dd-all-hands>p{margin:0}.dd-all-row{gap:6px}.dd-all-tile{filter:drop-shadow(0 1px 1px #3c280f73);width:30px;height:60px}.dd-settings fieldset{border:2px solid var(--border);border-radius:var(--radius);margin:0 0 16px;padding:8px 16px 12px}.dd-settings legend{padding:0 6px;font-weight:800}.dd-settings .choice{min-height:var(--tap)}.dd-option{min-height:var(--tap);cursor:pointer;align-items:flex-start;gap:12px;padding:6px 0;display:flex}.dd-option input{width:28px;height:28px;accent-color:var(--primary);flex:none;margin:4px 0 0}.dd-option-note{color:var(--muted);font-size:1.05rem}.dd-rule-q{margin:12px 0 0;font-weight:700}.dd-error{background:#fde8eb;border-left:6px solid #b00020;margin:-8px 0 16px;padding:6px 12px;font-weight:700}.dd-tile.is-arriving,.dd-hand-tile.is-arriving{opacity:0}.fly-tile svg{filter:drop-shadow(0 4px 6px #0006);width:100%;height:100%;display:block}.dd-fly-back{width:100%;height:100%}@media (width<=767px){:root{--dd-ledge:8px}.game-title{margin-top:8px;font-size:1.35rem}.dd-game,.dd-main{gap:8px}.dd-hand-num{font-size:1.3rem}.dd-chip{padding:2px 10px;font-size:1rem}.dd-level,.dd-goal{display:none}.dd-topbar .btn{min-height:48px;padding:4px 14px;font-size:1.05rem}.dd-opponents{display:none}.dd-turn{font-size:1.3rem}.dd-log li:not(:last-child){display:none}.dd-board{height:max(250px, calc(100svh - var(--dock-h,380px) - 12px));border-width:4px;border-radius:16px}.dd-board-info{gap:4px;padding:5px 6px 0}.dd-felt-chip{padding:1px 8px;font-size:1rem}.dd-end-num{font-size:1.05rem}.play-dock .dd-controls{gap:6px}.play-dock .dd-you{display:none}.play-dock .dd-buttons{flex-wrap:nowrap;flex:100%;gap:6px}.play-dock .dd-buttons .btn{flex:1 1 0;min-height:52px;padding:4px 8px;font-size:1.1rem}.play-dock .dd-hand{--hand-tile-w:clamp(34px, calc((100vw - 96px) / 7), 52px);border-width:2px;gap:12px 6px;min-height:0;padding:16px 6px 10px}.dd-all-tile{width:26px;height:52px}}
