.tf-game{max-width:690px;margin:auto;color:#31483b}.tf-game *{box-sizing:border-box}.tf-players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 16px}.tf-player{display:grid;grid-template-columns:25px minmax(0,1fr);gap:2px 8px;align-items:center;border:2px solid #e1e6d7;border-radius:13px;background:#fffdf4;padding:11px 12px;min-width:0}.tf-player>.tf-marble{width:24px;height:24px;grid-row:span 2}.tf-player strong{font-size:14px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tf-player small{font-size:11px;color:#7b826a}.tf-player.tf-active{border-color:#478d67;background:#edfff0;box-shadow:0 3px 0 #dbe8d5}.tf-player.tf-winner{border-color:#d5a947;background:#fff1c1}.tf-status{font-size:clamp(20px,5vw,27px);line-height:1.4;margin:0}.tf-first{font-size:11px;color:#7b826b;margin:5px 0 14px}.tf-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:11px;background:#dce4cb;border:5px solid #bfc9a7;border-radius:21px;box-shadow:0 8px 20px #5a634014;direction:ltr;isolation:isolate}.tf-region{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));aspect-ratio:1;background:#eddfb8;border:3px solid #cab583;border-radius:18px;padding:9px;gap:7px;transform-origin:center;box-shadow:0 4px 0 #b2b08a4d;position:relative}.tf-region-selected{outline:3px solid #d56448;outline-offset:2px}.tf-spinning{z-index:4}.tf-cell{display:grid;place-items:center;padding:0!important;min-width:0;min-height:0;aspect-ratio:1;border:1px solid #c9bd9d!important;border-radius:50%!important;background:#e3d4ab!important;box-shadow:inset 0 3px 5px #6f63332b!important;opacity:1!important;transform:none!important;cursor:pointer;touch-action:manipulation}.tf-cell:disabled{cursor:default}.tf-cell.tf-selected{outline:3px solid #d74d42;outline-offset:0;background:#ffdf9d!important}.tf-cell.tf-last{box-shadow:inset 0 0 0 2px #d67a49!important}.tf-cell.tf-winning{outline:3px solid #edb53f;outline-offset:1px;background:#fff0a8!important}.tf-marble{display:block;width:81%;height:81%;border-radius:50%;border:1px solid #0001;box-shadow:inset 0 -4px 4px #0002,0 2px 3px #4b57372e;pointer-events:none}.tf-color-0{background:radial-gradient(circle at 30% 25%,#ffd3ab,#cf6a52 85%)}.tf-color-1{background:radial-gradient(circle at 30% 25%,#b7ddea,#4d91ad 85%)}.tf-hint{text-align:center;font-size:13px;line-height:1.7;color:#6b7c62;min-height:22px;margin:14px 0 10px}.tf-region-options{display:flex;justify-content:center;gap:8px;margin:10px 0}.tf-region-choice{width:42px;min-height:39px;border:1px solid #c6d1b4;background:#fff9e8;border-radius:9px;padding:8px;font:inherit;font-size:14px}.tf-picked{outline:2px solid #d46545;outline-offset:-2px;background:#ffedc1!important}.tf-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:10px 0}.tf-actions button{font:inherit;font-size:14px;font-weight:700;border-radius:11px;min-height:42px;padding:9px 17px}.tf-primary{background:#2e7e63;color:#fff;border:1px solid #2e7e63}.tf-subtle{background:#fff2d2;color:#887044;border:1px solid #dbc68f}.tf-resign{background:#fff8ec;color:#986953;border:1px solid #dfc9b4}.tf-actions button:disabled,.tf-region-choice:disabled{opacity:.4}.tf-neutral{font-size:11px;line-height:1.7;text-align:center;color:#858568;margin:10px 0}.tf-log-title{font-size:14px;margin:24px 0 8px}.tf-log{font-size:12px;line-height:1.8;color:#62765b;background:#f5f8eb;border:1px solid #e2e7d7;border-radius:12px;padding:10px 13px 10px 31px;margin:0}.tf-log:empty{display:none}.tp-flying{position:fixed!important;z-index:9999!important;pointer-events:none!important;margin:0!important;min-width:0!important;min-height:0!important}@media(max-width:430px){.tf-player{padding:9px;grid-template-columns:21px minmax(0,1fr);gap:2px 6px}.tf-player>.tf-marble{width:20px;height:20px}.tf-player strong{font-size:13px}.tf-player small{font-size:10px}.tf-board{border-width:3px;gap:9px;padding:7px;border-radius:14px}.tf-region{padding:6px;gap:5px;border-width:2px;border-radius:12px}.tf-region-selected{outline-width:2px}.tf-actions button{font-size:13px;padding:9px 12px}.tf-cell.tf-selected,.tf-cell.tf-winning{outline-width:2px}}@media(prefers-reduced-motion:reduce){.tf-game *{transition:none!important;animation:none!important}}
