- Stats page (/stats): play style radar (TAG/LAG/rock/fish), VPIP, PFR,
ATS, 3bet, WTSD, W$SD, WWSF, per-street fold rate, aggression
frequency, hand win rate and net in BB, per table type, each with a
bands-and-explanation sheet. Hands are counted per human player when
they finish and stored as totals under data/stats/, keyed by a hash
of the player ID (sent in a POST body, never in the URL).
- Ranking sheet at the table: everyone seated, ordered by stack or by
net (stack minus buy-ins), updating live.
- The host can reorder seats by dragging (with a mini table preview and
shuffle). Takes effect immediately between hands, otherwise at the
start of the next hand; the dealer button stays with the same player.
- The full-session review opens in the same tab and its back button
returns to the table it was opened from.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
iOS Safari ignores user-scalable=no, so zoom is blocked in three layers:
- viewport meta: maximum-scale=1, user-scalable=no on every page
(covers Android, home-screen apps and iOS focus zoom on inputs)
- CSS: touch-action: pan-x pan-y on html, so scrolling still works but
pinch and double-tap zoom do not
- JS (fluid.js): cancel Safari's gesture* events and two-finger touchmove
Double-tap is left to CSS rather than JS so rapid repeated taps on
buttons still register as clicks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace the look of every page (key, lobby, create, table, range, review)
with light/dark semantic colors, translucent materials, iOS-style grouped
lists and system typography. Add fluid.js, a small spring engine with
interruptible, velocity-aware animations, and use it for draggable bottom
sheets, sliding segmented controls, a custom bet slider with rubber-banding,
swipe-to-delete in the lobby, and dealt/flipped cards. Seats and cards are
now reused between renders so animations are not cut off. Honors reduced
motion, reduced transparency and increased contrast.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviews and replays get a "copy for AI" button that builds a text
describing the hand (stacks, positions, actions, pots, board, revealed
cards, result and the site's own judgments) plus questions, ready to
paste into an AI chat. Hidden opponent cards are left out so the
evaluation is based only on what Hero could see.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Replace the Yokosawa ranges with the 6-max opening ranges (UTG, HJ, CO,
SB, BTN). Colors keep the old order: navy (strong UTG), red UTG, yellow
HJ, green CO, blue SB, white BTN. SB is narrower than BTN, so blue sits
one tier above white; the purple-frame category is gone.
- Show the "BTN vs CO open" chart on the range page as frames: light blue
for 3bet, yellow for call.
- Grade BTN facing an unlimped CO open by those frames in reviews; other
spots keep the color-tier rule (BB defends down to green).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A new table type, "review" (レビュー付きCPU戦), can only be created by
admins. Only the creator and CPUs sit there: friends cannot join, and the
table is hidden from non-admin lobbies. After every hand a review opens,
and the next hand waits until the creator presses "次のハンドへ".
- Preflop: shows which color of the registered hand range the hole cards
are and whether the action followed it. With no entrant before you,
open with the color for the number of players still to act; facing an
entrant, estimate their range from their position, call one color
above it and raise two above. Purple ranks just below white (SB only).
- Flop onward: equity vs ranges estimated from those colors (narrowed by
later bets/calls) gives a rough EV per option. The score is the EV lost
against the best option, relative to the pot. It is a guide, not GTO.
- Also: pot-odds call check, all-in equity and luck-adjusted P&L,
VPIP/PFR/3bet/Cbet/WTSD/W$SD/AF, per-color and per-position compliance,
habits to watch, worst-5 hands, a P&L chart and a step-by-step replay
on the admin-only /review page.
Hand now logs every action for the review. The range data moves to
admin/range-data.js, shared by the range page and the server. Reviews are
saved under data/reviews/ (newest 50 sessions). Admin scripts and CSS are
no longer cached for a day, so updates show up immediately.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Optional ADMIN_KEY (6 digits, distinct from ACCESS_KEY): entering it on the
key screen signs in as admin (role-specific HMAC cookie; member cookies
stay valid). Logged-in members can open /key?admin to enter it.
- /range (range chart + color/category quiz, ported from poker-hand and
restyled to the site design) and its files under admin/ are served only to
admins; everyone else gets 404. Card images cached privately for a day.
- Lobby shows a link to the page for admins only (GET /api/me).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>