#all-fives-app{margin:12px 0 0}:root{--af-bone:#f9f0db;--af-bone-lo:#d6c5a0;--af-back:#7a2323;--af-back-dark:#3d0f0f;--af-rule-blue:#b4c6da;--af-ledge:10px}.af-game{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (width>=1100px){.af-game{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.af-side{position:sticky;top:12px}}.af-main{gap:12px;min-width:0;display:grid}.af-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.af-info{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.af-hand-num{font-size:var(--text-lg);font-weight:800}.af-chip{border:2px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:1.1rem;display:inline-flex}.af-yard{border-color:var(--brass-dark);background:linear-gradient(180deg, #fffdf6, var(--highlight-soft))}.af-yard:before{content:"";border:1.5px solid var(--tile-edge);background:var(--af-bone);width:13px;height:24px;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 6px 4px 0}.af-yard strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.3rem}.af-kept{color:var(--muted);font-size:.95rem}.af-deal{font-variant-numeric:tabular-nums}.af-topbar-buttons{flex-wrap:wrap;gap:8px;display:flex}.af-player{border:3px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);min-width:0;padding:8px 12px}.af-player.is-active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px var(--primary-soft), var(--shadow-md)}.af-opponent .af-player{flex-wrap:wrap;align-items:center;gap:4px 16px;display:flex}.af-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}.af-badge{background:var(--primary);color:var(--on-primary);border-radius:999px;padding:0 10px;font-size:.95rem;font-weight:700;display:inline-block}.af-backs{flex-wrap:wrap;gap:3px;min-height:24px;display:flex}.af-back{width:12px;height:24px}.tile-back-face{fill:var(--af-back);stroke:var(--af-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}.af-player-meta{flex-wrap:wrap;gap:0 14px;font-size:1.1rem;display:flex}.af-status{border:3px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);padding:10px 16px}.af-status p{margin:0}.af-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)}.af-turn{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700}.af-instruction{margin-top:2px!important}.af-options-head{font-weight:700;margin-top:6px!important}.af-options{margin:2px 0 0;padding-left:1.3em}.af-rule{border-left:6px solid var(--brass);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--highlight-soft);padding:6px 12px;margin-top:8px!important}.af-hint-box{margin-top:8px!important}.af-log{border-top:1px solid var(--border);color:var(--muted);margin:8px 0 0;padding:8px 0 0;font-size:1.05rem;list-style:none}.af-log li:last-child{color:var(--text);font-weight:600}.af-log .why-text{font-weight:400}.af-game .why-text[hidden],.af-dialog .all-hands[hidden]{display:none}.af-board{border:8px solid var(--felt-edge);background:var(--felt-bg);background-color:var(--felt);height:clamp(320px,56vh,660px);box-shadow:var(--shadow-md);border-radius:20px;position:relative;overflow:hidden}.af-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}.af-board-scroll{width:100%;height:100%;overflow:hidden}.af-board-scroll.is-zoomed{-webkit-overflow-scrolling:touch;overflow:auto}.af-board-svg{width:100%;height:100%;display:block}.af-count{z-index:1;border:2px solid var(--brass-dark);max-width:calc(100% - 16px);box-shadow:0 3px 0 var(--wood-dark), 0 5px 8px #00000059;color:var(--text);pointer-events:none;background:linear-gradient(#fffdf6,#f1e6cd);border-radius:12px;padding:4px 14px;font-size:1.2rem;line-height:1.35;position:absolute;top:8px;left:8px}.af-count-label{font-weight:700}.af-count-sum{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:800}.af-count-tag{background:var(--success);color:#fff;border-radius:999px;margin-left:4px;padding:0 8px;font-size:1rem;font-weight:800;display:inline-block}.tile-face{fill:var(--af-bone);stroke:var(--tile-edge);stroke-width:.05px}.tile-bevel-hi{stroke:#fff;stroke-width:.05px;stroke-linecap:round}.tile-bevel-lo{stroke:var(--af-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}.af-board .tile-shadow{fill:#0006}.af-ghost .tile-shadow{fill:none}.af-center-disc{fill:#ffffff12}.af-center-ring{fill:none;stroke:var(--brass);stroke-width:.08px;opacity:.85}.af-tile.is-spinner .tile-face{stroke:#1a130a;stroke-width:.07px}.af-ring-last{fill:none;stroke:#8fd3ff;stroke-width:.1px}.af-link{stroke:var(--tile);stroke-width:.1px;stroke-dasharray:.2 .15;stroke-linecap:round;opacity:.9}.af-scored rect{fill:var(--success);stroke:#fff;stroke-width:.08px}.af-scored text{fill:#fff;font-family:var(--font-display);text-anchor:middle;dominant-baseline:central;font-size:.7px;font-weight:800}html:not(.reduce-motion) .af-scored{transform-box:fill-box;transform-origin:50%;animation:.5s ease-out af-pop}@keyframes af-pop{0%{opacity:0;transform:scale(.4)}70%{opacity:1;transform:scale(1.12)}to{transform:scale(1)}}.af-ghost{cursor:pointer;outline:none}.af-ghost-hit{fill:#0000}.af-ghost-face{opacity:.55}.af-ghost-ring{fill:#ffc80038;stroke:var(--highlight);stroke-width:.14px}html:not(.reduce-motion) .af-ghost-ring{animation:1.2s ease-in-out infinite af-pulse}.af-ghost:hover .af-ghost-ring,.af-ghost:focus-visible .af-ghost-ring{fill:#ffc80073;stroke:#fff}.af-ghost:focus-visible .af-ghost-label rect{stroke:var(--focus);stroke-width:.12px}@keyframes af-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.35}}.af-ghost-hint{fill:none;stroke:#fff;stroke-width:.16px;stroke-dasharray:.35 .2}.af-ghost-label rect{fill:#fffdf6f5;stroke:#3a2c18;stroke-width:.06px}.af-ghost-label text{fill:#1a1a1a;font-family:var(--font-display);text-anchor:middle;dominant-baseline:central;font-size:.56px;font-weight:800}.af-ghost-label .af-ghost-pts{font-size:.5px;font-weight:700}.af-ghost-label.is-scoring rect{fill:#e3f5e6;stroke:var(--success);stroke-width:.1px}.af-ghost-label.is-scoring .af-ghost-pts{fill:var(--success);font-size:.58px;font-weight:800}.af-zoom{z-index:1;gap:6px;display:flex;position:absolute;bottom:8px;right:8px}.af-zoom-btn{border:2px solid var(--brass-dark);min-width:52px;height:52px;box-shadow:0 3px 0 var(--wood-dark), 0 5px 8px #00000059;color:var(--text);font:inherit;cursor:pointer;background:linear-gradient(#fffdf6,#f1e6cd);border-radius:10px;font-size:1.6rem;font-weight:800;line-height:1}.af-zoom-fit{padding:0 10px;font-size:1.1rem}.af-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.af-you{flex:220px}.af-buttons{flex-wrap:wrap;gap:12px;display:flex}.af-buttons:empty{display:none}.af-buttons .btn.is-hint{outline:6px dashed var(--highlight);outline-offset:3px;box-shadow:0 0 0 9px var(--wood-dark)}.af-muggins{background:var(--brass-dark);border-color:var(--brass-dark)}.af-hand{--hand-tile-w:clamp(46px, 11.5vw, 68px);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 8px;padding:22px 12px 14px;display:flex}.af-hand-tile{width:var(--hand-tile-w);cursor:default;background:0 0;border:0;border-radius:10px;padding:0;transition:transform .15s;position:relative}.af-hand-tile:after{content:"";height:var(--af-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:-5px;right:-5px;box-shadow:0 2px 3px #28190a59}.af-hand-tile:first-child:after{border-radius:4px 0 0 4px;left:-9px}.af-hand-tile:last-child:after{border-radius:0 4px 4px 0;right:-9px}.af-hand-tile:only-child:after{border-radius:4px}.af-hand-tile.can-play:after{transform:translateY(8px)}.af-hand-tile.is-selected:after{transform:translateY(14px)}.af-hand-tile .tile-svg{filter:drop-shadow(0 2px 2px #28190a73);width:100%;height:auto;display:block}.af-hand-tile.can-play{cursor:pointer;outline:4px solid var(--success);outline-offset:2px;transform:translateY(-8px)}.af-hand-tile.is-selected{outline:6px solid var(--primary);outline-offset:2px;transform:translateY(-14px)}.af-hand-tile.cannot-play .tile-svg{opacity:.45}.af-hand-tile:focus-visible{outline:6px solid var(--focus)}.af-hand-tile.is-hint,.af-hand-tile.can-play.is-hint{outline:6px dashed var(--highlight);outline-offset:3px;box-shadow:0 0 0 9px var(--wood-dark)}.af-hand-tile.is-selected.is-hint{outline:6px dashed var(--primary)}.af-tag{z-index:1;background:var(--highlight);color:#1a1a1a;border-radius:6px;padding:0 6px;font-size:.9rem;font-weight:800;position:absolute;top:-15px;left:50%;transform:translate(-50%)}.af-hint-tag{background:#fff;border:2px solid #1a1a1a}.af-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}.af-pad-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}.af-pad-note{color:var(--muted);margin:10px 16px 8px;font-size:1.05rem}.af-progress-wrap{gap:6px;margin:0 16px 10px;display:grid}.af-progress{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:1.05rem;display:grid}.af-progress-name{min-width:5.5em;font-weight:700}.af-progress-track{border:1px solid var(--border-strong);background:#f1e7d0;border-radius:999px;height:14px;overflow:hidden}.af-progress-fill{background:repeating-linear-gradient(90deg, var(--wood) 0 10px, var(--wood-dark) 10px 12px);height:100%;display:block}.af-progress.is-you .af-progress-fill{background:repeating-linear-gradient(90deg, var(--primary) 0 10px, #0b3a66 10px 12px)}.af-progress-num{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:800}.af-pad,.af-results{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:1.1rem}.af-pad th,.af-pad td,.af-results th,.af-results td{border-bottom:1px solid var(--border);text-align:center;padding:5px 6px}.af-pad th,.af-pad td{border-bottom-color:var(--af-rule-blue)}.af-pad thead th{border-bottom:2px solid var(--text)}.af-pad tbody th,.af-pad tfoot th{text-align:left;white-space:nowrap;border-right:2px solid #b5392c8c}.af-pad td{font-family:var(--font-display);font-size:1.2rem}.af-pad tr.is-current{background:var(--highlight-soft)}.af-pad tr.is-current th{box-shadow:inset 6px 0 0 var(--primary);font-weight:800}.af-pad-now,.af-pad-ahead{color:var(--muted);font-size:.9rem;font-weight:400}.af-pad tfoot th,.af-pad tfoot td{border-top:3px solid var(--text);border-bottom:0;font-weight:800}.af-pad td.is-best{color:var(--success);text-underline-offset:.15em;background:#dff3e3;-webkit-text-decoration:underline double;text-decoration:underline double}.af-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}.af-dialog::backdrop{background:#1c12089e}.af-dialog h2{margin-top:0}.af-results thead th{border-bottom:3px solid var(--brass);font-family:var(--font-display)}.af-results tbody th{text-align:left}.af-headline{font-size:var(--text-lg);font-weight:700}.af-winner{font-size:var(--text-xl);color:var(--success);margin:0 0 4px;font-weight:800}.af-final{font-size:var(--text-lg);margin:0 0 8px}.af-table-wrap{overflow-x:auto}.af-left-tiles{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.af-mini-tile{width:22px;height:44px}.af-mini-tile,.af-all-tile{filter:drop-shadow(0 1px 1px #3c280f73)}.af-all-hands{margin-top:16px}.af-all-hands>p{margin:0}.af-all-row{gap:6px}.af-all-tile{width:30px;height:60px}.af-none{color:var(--success);font-weight:700}.af-note{color:var(--muted)}.af-dialog-buttons{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.af-settings fieldset{border:2px solid var(--border);border-radius:var(--radius);margin:0 0 16px;padding:8px 16px 12px}.af-settings legend{padding:0 6px;font-weight:800}.af-settings .choice{min-height:var(--tap)}.af-option{min-height:var(--tap);cursor:pointer;align-items:flex-start;gap:12px;padding:6px 0;display:flex}.af-option input{width:28px;height:28px;accent-color:var(--primary);flex:none;margin:4px 0 0}.af-option-note{color:var(--muted);font-size:1.05rem}.af-rule-q{margin:10px 0 0;font-weight:700}.af-error{background:#fde8eb;border-left:6px solid #b00020;margin:-8px 0 16px;padding:6px 12px;font-weight:700}.af-tile.is-arriving,.af-hand-tile.is-arriving{opacity:0}.fly-tile svg{filter:drop-shadow(0 4px 6px #0006);width:100%;height:100%;display:block}.af-fly-back{width:100%;height:100%}.game-title{margin:12px 0 0;font-size:1.75rem}@media (width<=600px){.game-title{margin-top:8px;font-size:1.35rem}.af-game,.af-main{gap:8px}.af-info{gap:6px 8px}.af-hand-num{font-size:1.3rem}.af-chip{padding:2px 10px;font-size:1rem}.af-level,.af-target{display:none}.af-topbar .btn{min-height:48px;padding:4px 14px;font-size:1.05rem}.af-player{padding:6px 10px}.af-player-name{font-size:1.1rem}.af-backs{display:none}.af-turn{font-size:1.3rem}.af-log li:not(:last-child){display:none}.af-count{padding:2px 10px;font-size:1.1rem;top:4px;left:4px}.af-zoom-btn{min-width:48px;height:48px}}@media (width<=767px){:root{--af-ledge:8px}.af-board{height:max(250px, min(clamp(280px, 48vh, 520px), calc(100svh - var(--dock-h,420px) - 12px)));border-width:4px;border-radius:16px}.af-board:after{border-radius:12px}.af-hand{border-width:2px}.af-player-name{font-family:var(--font);font-weight:800}.play-dock .af-controls{gap:6px}.play-dock .af-status{--dock-status-lines:3}.play-dock .af-you{flex-wrap:wrap;flex:100%;align-items:center;gap:2px 12px;padding:4px 10px;display:flex}.play-dock .af-you .af-player-name,.play-dock .af-you .af-player-meta,.play-dock .af-you .af-badge{margin:0;font-size:1.25rem}.play-dock .af-buttons{flex-wrap:nowrap;flex:100%;gap:6px}.play-dock .af-buttons .btn{flex:1 1 0;min-height:56px;padding:4px 8px;font-size:1.25rem}.play-dock .af-hand{--hand-tile-w:48px;gap:12px 7px;min-height:0;padding:16px 6px 10px}.play-dock .af-options-head,.play-dock .af-options{display:none}}
