/* Finite table-edge presentation. No keyframe below loops indefinitely. */
.table-life-layer { position:absolute; inset:0; pointer-events:none; z-index:31; overflow:hidden; contain:layout style; }
.table-life-reaction { position:absolute; left:50%; top:50%; width:1px; height:1px; perspective:400px; }
.table-life-reaction[data-seat="0"] { left:50%; top:83%; }
.table-life-reaction[data-seat="1"] { left:8%; top:47%; }
.table-life-reaction[data-seat="2"] { left:50%; top:12%; }
.table-life-reaction[data-seat="3"] { left:92%; top:47%; }
.table-life-bubble { position:absolute; display:block; width:max-content; max-width:145px; left:27px; bottom:14px; padding:8px 11px; color:#f7e6d4; background:#253a32f2; border:1px solid #edb69e7a; border-radius:12px 12px 12px 2px; box-shadow:0 4px 18px #0004; font:11px/1.4 -apple-system,BlinkMacSystemFont,sans-serif; animation:table-life-bubble 3.8s both; }
.table-life-reaction[data-seat="3"] .table-life-bubble { right:27px; left:auto; border-radius:12px 12px 2px 12px; }
.table-life-reaction[data-seat="0"] .table-life-bubble { left:28px; bottom:18px; }
.table-life-reaction[data-seat="2"] .table-life-bubble { top:14px; bottom:auto; }
.table-life-bubble-comic { border-width:2px; border-color:#eab89f; border-radius:9px 13px 11px 3px; color:#20392e; background:#f3dfc6; font-weight:700; transform:rotate(-3deg); }
.table-life-bubble-soft { background:#d9e9dbeF; border-color:#d9e9db; color:#294337; border-radius:20px; box-shadow:0 4px 22px #24372d25; }
.table-life-flourish { position:absolute; left:-25px; top:-25px; width:50px; height:50px; border:1px solid #e9ae9c; border-radius:50%; box-shadow:0 0 18px #f0a38a60,inset 0 0 10px #f0a38a25; animation:table-life-glint 1.3s both; }
.table-life-flourish i { position:absolute; width:4px; height:4px; background:#f8d7a3; transform:rotate(45deg); animation:table-life-spark 1.1s both; }
.table-life-flourish i:nth-child(1) { left:-8px; top:6px; }
.table-life-flourish i:nth-child(2) { right:0; top:-8px; animation-delay:.12s; }
.table-life-flourish i:nth-child(3) { right:-9px; bottom:6px; animation-delay:.24s; }
.table-life-palm { display:none; position:absolute; width:9px; height:15px; border-radius:6px 6px 4px 4px; background:linear-gradient(90deg,#b97c65,#f2c4a1 50%,#d59e80); box-shadow:0 2px 3px #0005; top:37px; }
.table-life-celebrate .table-life-palm { display:block; }
.table-life-palm-left { left:10px; transform-origin:50% 100%; animation:table-life-clap-left .32s 3 alternate; }
.table-life-palm-right { right:10px; transform-origin:50% 100%; animation:table-life-clap-right .32s 3 alternate; }
.table-life-layer[data-mode="subtle"] .table-life-palm { display:none; }
.table-life-layer[data-mode="subtle"] .table-life-flourish i:nth-child(3) { display:none; }
.table-life-layer[data-motion="reduced"] * { animation:none!important; transform:none!important; }
.table-life-layer[data-motion="reduced"] .table-life-palm,.table-life-layer[data-motion="reduced"] .table-life-flourish i { display:none; }
.table-life-visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; clip-path:inset(50%); white-space:nowrap; overflow:hidden; border:0!important; }
.table-life-settings { font:inherit; color:inherit; }
.table-life-settings h3 { font:22px Georgia,serif; margin:16px 0 10px; font-weight:400; }
.table-life-settings p { font-size:11px; line-height:1.6; opacity:.8; }
.table-life-setting { display:flex; gap:10px; align-items:center; justify-content:space-between; margin:12px 0; font-size:12px; }
.table-life-setting select,.table-life-buttons button { font:inherit; color:inherit; background:#d3e5cc0a; border:1px solid #d3e5cc36; border-radius:5px; padding:7px 9px; }
.table-life-setting select { max-width:55%; }
.table-life-setting input[type="range"] { min-width:50px; width:42%; accent-color:#e4b293; }
.table-life-setting input[type="checkbox"] { accent-color:#e4b293; }
.table-life-setting output { width:35px; text-align:right; font-variant-numeric:tabular-nums; }
.table-life-buttons { display:flex; flex-wrap:wrap; gap:8px; }
.table-life-buttons button { cursor:pointer; }
.table-life-settings :focus-visible { outline:2px solid #e4b293; outline-offset:3px; }
.table-life-status { min-height:3em; }
@keyframes table-life-bubble { 0% { opacity:0; translate:0 5px; } 10%,83% { opacity:1; translate:0 0; } 100% { opacity:0; translate:0 -3px; } }
@keyframes table-life-glint { 0% { opacity:0; scale:.86; } 24% { opacity:1; scale:1.05; } 100% { opacity:0; scale:1.18; } }
@keyframes table-life-spark { 0%,100% { opacity:0; scale:.4; } 30% { opacity:1; scale:1; } }
@keyframes table-life-clap-left { from { transform:rotate(-28deg) translateX(-2px); } to { transform:rotate(20deg) translateX(7px); } }
@keyframes table-life-clap-right { from { transform:rotate(28deg) translateX(2px); } to { transform:rotate(-20deg) translateX(-7px); } }
@media (prefers-reduced-motion:reduce) { .table-life-layer * { animation:none!important; transform:none!important; } .table-life-palm,.table-life-flourish i { display:none!important; } }
@media (max-width:600px) { .table-life-bubble { max-width:110px; padding:6px 8px; font-size:10px; } .table-life-reaction[data-seat="0"] .table-life-bubble,.table-life-reaction[data-seat="2"] .table-life-bubble { left:18px; } }
