:root{--gammon-anim-checker-slide: .4s;--gammon-anim-hit-to-bar: .25s;--gammon-anim-dice-tumble: .4s;--gammon-anim-turn-handoff: .5s;--gammon-anim-ai-preview-flash: 257ms;--gammon-anim-ai-preview-hold: 343ms;--gammon-ai-preview-color: #4cc4ff;--gammon-point-label-color: #e8dcb8;--gammon-accent-selection: #f4d35e;--gammon-accent-legal-target: #7fb069;--gammon-accent-turn-glow-human: #a8d8a8;--gammon-accent-turn-glow-ai: #d8a8a8;--gammon-svg-border-strong: rgba(0, 0, 0, .6);--gammon-svg-border-mid: rgba(0, 0, 0, .4);--gammon-svg-border-faint: rgba(0, 0, 0, .35);--gammon-ghost-checker-stroke: #888;--gammon-page-bg-start: var(--gammon-bg-start);--gammon-page-bg-end: var(--gammon-bg-end);--gammon-bg-start: #1f2c20;--gammon-bg-end: #0d1410;--gammon-frame-light: #7a4a23;--gammon-frame-mid: #5a3115;--gammon-frame-dark: #3a1d09;--gammon-surface-light: #c9a279;--gammon-surface-dark: #9b6b3f;--gammon-point-light-top: #f0d9b5;--gammon-point-light-bottom: #d8b88a;--gammon-point-dark-top: #7a4a23;--gammon-point-dark-bottom: #4a2a10;--gammon-bar-start: #6a3d1a;--gammon-bar-mid: #4a2810;--gammon-bar-end: #2a1606;--gammon-checker-white-highlight: #fff8e8;--gammon-checker-white-mid: #e8dcb8;--gammon-checker-white-shadow: #9c8b62;--gammon-checker-white-rim: #5a4828;--gammon-checker-white-label: #3a2a18;--gammon-checker-black-highlight: #5a3a22;--gammon-checker-black-mid: #3a2210;--gammon-checker-black-shadow: #1a0d04;--gammon-checker-black-rim: #0a0502;--gammon-checker-black-label: #f0d9b5;--gammon-off-tray-start: #6a3d1a;--gammon-off-tray-end: #3a1d09;--gammon-off-tray-inner: #2a1606;--gammon-dice-white-start: #fdfdfb;--gammon-dice-white-end: #e8e4d8;--gammon-dice-white-pip: #1a1208;--gammon-dice-white-border: #3a2a18;--gammon-dice-black-start: #5a3a22;--gammon-dice-black-end: #3a2210;--gammon-dice-black-pip: #f0d9b5;--gammon-dice-black-border: #0a0502;--gammon-dialog-bg-start: #7a4a23;--gammon-dialog-bg-end: #3a1d09;--gammon-dialog-text: #f0d9b5;--gammon-space-xs: 4px;--gammon-space-sm: 8px;--gammon-space-md: 12px;--gammon-space-lg: 16px;--gammon-primary-button-w: 120px;--gammon-primary-button-h: 56px;--gammon-primary-button-w-ipad: 112px;--gammon-primary-button-h-ipad: 48px;--gammon-primary-button-w-phone: 80px;--gammon-primary-button-h-phone: 36px;--gammon-primary-strip-h: 56px;--gammon-primary-strip-h-ipad: 48px;--gammon-primary-strip-h-phone: 40px;--gammon-hamburger-size: 44px;--gammon-side-min-width: 260px;--gammon-side-min-width-ipad: 240px;--gammon-turn-indicator-h: 64px;--gammon-turn-indicator-h-phone: 36px;--gammon-font-serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", "Hoefler Text", Palatino, Georgia, serif;--gammon-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--gammon-destructive: #a8442a}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:radial-gradient(ellipse at center,var(--gammon-page-bg-start),var(--gammon-page-bg-end) 80%),var(--gammon-page-bg-end);color:#f0e6d2;font-family:var(--gammon-font-sans);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#root{height:100%;width:100%}h1,h2,h3{font-family:var(--gammon-font-serif);letter-spacing:.01em;margin:0}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app{display:grid;grid-template-columns:1fr;grid-template-rows:1fr;width:100vw;height:100vh;height:100dvh;overflow:hidden;background:transparent;padding:0}.gammon-stage{width:100%;height:100%;display:flex;align-items:stretch;justify-content:stretch}.gammon-stage-inner{width:100%;height:100%;display:flex;flex-direction:column;gap:8px;padding:8px 12px 12px;overflow:hidden;background:linear-gradient(180deg,#0000,#00000040)}.gammon-header{flex:0 0 auto;display:flex;flex-direction:row;align-items:center;gap:var(--gammon-space-md);min-height:var(--gammon-primary-strip-h);position:relative}@media (max-width: 1279px){.gammon-header{min-height:var(--gammon-primary-strip-h-ipad);gap:var(--gammon-space-sm)}}.gammon-header-actions{flex:0 0 var(--gammon-primary-button-w);display:flex;align-items:center;justify-content:flex-start}@media (max-width: 1279px){.gammon-header-actions{flex-basis:var(--gammon-primary-button-w-ipad)}}.gammon-header-status{flex:0 1 auto;display:flex;flex-direction:row;align-items:center;gap:var(--gammon-space-lg);min-width:0}.gammon-rotate-hint{display:none}@media (orientation: portrait) and (max-width: 500px){.gammon-rotate-hint{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;align-items:center;justify-content:center;padding:24px;background:linear-gradient(180deg,var(--gammon-page-bg-start),var(--gammon-page-bg-end));color:#f0e6d2;font-family:var(--gammon-font-sans);text-align:center}}.gammon-rotate-hint-card{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:320px}.gammon-rotate-hint-icon{color:#f4d35e}.gammon-rotate-hint-title{font-family:var(--gammon-font-serif);font-size:22px;margin:0;color:#f4d35e}.gammon-rotate-hint-body{margin:0;font-size:15px;color:#d8c5a0}@media (max-height: 500px){.gammon-header{min-height:var(--gammon-primary-strip-h-phone);gap:var(--gammon-space-sm)}.gammon-header-actions{flex-basis:var(--gammon-primary-button-w-phone)}.gammon-header-status .scoreboard,.gammon-header-status .pip-count{display:none}.gammon-header-status{gap:var(--gammon-space-sm)}}.gammon-header-message{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:flex-end}.gammon-header-menu{flex:0 0 auto;position:relative}.gammon-board-area{flex:1 1 0;min-width:0;min-height:0;width:100%;display:flex;align-items:center;justify-content:center}.gammon-board-area svg{max-width:100%;max-height:100%;filter:drop-shadow(0 8px 18px rgba(0,0,0,.6));border-radius:6px}.gammon-primary-button{width:var(--gammon-primary-button-w);height:var(--gammon-primary-button-h);background:linear-gradient(180deg,#d4af75,#a07a3e);color:#1a1208;border:1px solid #5a3a18;border-radius:8px;font-family:var(--gammon-font-sans);font-size:18px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:background .12s ease-out,transform 80ms ease-out}@media (max-width: 1279px){.gammon-primary-button{width:var(--gammon-primary-button-w-ipad);height:var(--gammon-primary-button-h-ipad);font-size:17px}}@media (max-height: 500px){.gammon-primary-button{width:var(--gammon-primary-button-w-phone);height:var(--gammon-primary-button-h-phone);font-size:14px;border-radius:6px}}.gammon-primary-button:hover:not(:disabled){background:linear-gradient(180deg,#e8c388,#b58a48)}.gammon-primary-button:active:not(:disabled){transform:translateY(1px)}.gammon-primary-button:disabled{cursor:not-allowed;opacity:.45}.gammon-hamburger-button{width:var(--gammon-hamburger-size);height:var(--gammon-hamburger-size);background:transparent;border:1px solid rgba(216,197,160,.18);border-radius:6px;padding:10px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#d8c5a0}.gammon-hamburger-button:hover{background:#f4d35e14}.gammon-hamburger-button[aria-expanded=true]{background:#f4d35e24}.gammon-hamburger-icon{width:24px;height:24px;fill:currentColor;pointer-events:none}.gammon-menu{position:absolute;top:calc(var(--gammon-hamburger-size) + 4px);right:0;min-width:260px;max-width:320px;max-height:calc(100vh - var(--gammon-hamburger-size) - 16px);overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(180deg,#281e12eb,#140e08eb);border:1px solid rgba(216,197,160,.3);border-radius:6px;box-shadow:0 6px 20px #0000008c;padding:4px 0;z-index:60;color:#f0e6d2}.gammon-menu-divider{border-top:1px solid rgba(216,197,160,.18);margin:4px 0;height:0}.gammon-menu-info{display:none;flex-direction:column;gap:4px;padding:8px 12px 0}.gammon-menu-info .scoreboard,.gammon-menu-info .pip-count{flex-wrap:wrap;font-size:13px;min-width:0}@media (max-height: 500px){.gammon-menu-info{display:flex}}.gammon-menu-item{display:flex;align-items:center;width:100%;height:44px;padding:0 12px;border:none;background:transparent;color:#f0e6d2;font:inherit;font-family:var(--gammon-font-sans);font-size:14px;font-weight:500;text-align:left;cursor:pointer}.gammon-menu-item:hover:not([aria-disabled=true]){background:#f4d35e1a}.gammon-menu-item:active:not([aria-disabled=true]){background:#f4d35e33}.gammon-menu-item[aria-disabled=true]{opacity:.45;cursor:not-allowed}.gammon-menu-item[aria-pressed=true]:after,.gammon-menu-item[aria-checked=true]:after{content:"on";margin-left:auto;font-size:11px;font-weight:600;letter-spacing:.06em;color:#f4d35e;text-transform:uppercase}.gammon-turn-indicator{height:var(--gammon-turn-indicator-h);min-width:180px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0 4px;font-family:var(--gammon-font-serif);font-size:22px;font-weight:600;color:#f0e6d2;text-align:left;background:transparent;border:none}@media (max-width: 1279px){.gammon-turn-indicator{font-size:20px;min-width:160px}}@media (max-height: 500px){.gammon-turn-indicator{height:var(--gammon-turn-indicator-h-phone);font-size:14px;min-width:50px}}.gammon-turn-indicator-label-short{display:none}@media (max-height: 500px){.gammon-turn-indicator-label-long{display:none}.gammon-turn-indicator-label-short{display:inline}}.gammon-turn-indicator[data-turn=human]{color:#c8e6c8}.gammon-turn-indicator[data-turn=ai]{color:#e6c8c8}.gammon-turn-indicator[data-turn=over]{color:#f4d35e}.gammon-turn-indicator-danced{font-size:13px;font-style:italic;color:#fa8;margin-top:4px;font-family:var(--gammon-font-sans);font-weight:400}.gammon-status-message{min-height:28px;padding:4px 10px;border-radius:6px;font-size:13px;color:#f0e6d2;display:flex;align-items:center;width:100%;max-width:360px;text-align:right;justify-content:flex-end;background:transparent;border:1px solid transparent;transition:background .12s ease-out,border-color .12s ease-out}.gammon-status-message[data-empty=true]{visibility:hidden}.gammon-status-message[data-kind=warn]{background:#f4aa501f;border-color:#f4aa5066;color:#ffce8a}.gammon-status-message[data-kind=error]{background:#dc5a4629;border-color:#dc5a4680;color:#ffb29a}@media (max-width: 1279px){.gammon-status-message{font-size:12px;max-width:240px}}.controls,.move-log{background:linear-gradient(180deg,#281e12b3,#140e08b3);border:1px solid rgba(216,197,160,.22);border-radius:6px;padding:8px 10px;color:#f0e6d2}.scoreboard,.pip-count{background:transparent;border:none;padding:0;color:#d8c5a0}.scoreboard{display:flex;gap:14px;align-items:center;font-family:var(--gammon-font-serif);font-size:14px;min-width:220px;white-space:nowrap}.scoreboard-target{font-weight:600;color:#f4d35e}.pip-count{display:flex;gap:12px;font-size:13px;font-variant-numeric:tabular-nums;min-width:140px;white-space:nowrap}.controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.controls button,.controls select{background:linear-gradient(180deg,#d4af75,#a07a3e);color:#1a1208;border:1px solid #5a3a18;border-radius:4px;padding:5px 10px;font-family:var(--gammon-font-sans);font-size:12px;font-weight:500}.controls button:hover:not(:disabled){background:linear-gradient(180deg,#e8c388,#b58a48)}.controls button:active:not(:disabled){transform:translateY(1px)}.controls button[aria-pressed=true]{background:linear-gradient(180deg,#f4d35e,#c8a032);border-color:#5a4018}.controls label,.controls .side-to-move,.controls .ai-thinking,.controls .danced-notice{font-size:12px;color:#d8c5a0}.controls .ai-thinking:not(:empty){color:#f4d35e;font-style:italic}.controls .danced-notice{color:#fa8;font-style:italic}.move-log{display:flex;flex-direction:column;min-height:240px;max-height:60vh}.move-log-heading{font-size:14px;font-family:var(--gammon-font-serif);margin-bottom:6px;color:#d8c5a0}.move-log-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;font-variant-numeric:tabular-nums;font-size:13px}.move-log-list:focus{outline:none}.move-log-list:focus-visible{outline:3px solid #f4d35e;outline-offset:2px}.move-log-entry{padding:4px 0;border-bottom:1px solid rgba(216,197,160,.08)}.move-log-turn{color:#b8a880;display:inline-block;width:24px}.move-log-empty{color:#998060;font-style:italic;font-size:12px}.settings-panel-backdrop,.rules-help-backdrop,.resign-dialog-backdrop,.reset-stats-dialog-backdrop,.move-log-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.settings-panel,.rules-help,.resign-dialog,.reset-stats-dialog,.move-log-dialog{background:linear-gradient(180deg,var(--gammon-dialog-bg-start),var(--gammon-dialog-bg-end));border:1px solid rgba(216,197,160,.35);border-radius:8px;padding:16px 20px;color:var(--gammon-dialog-text);max-width:600px;max-height:80vh;overflow-y:auto;box-shadow:0 10px 40px #000000b3}.settings-panel h2,.rules-help h2{font-family:var(--gammon-font-serif);font-size:20px;margin-bottom:12px;color:var(--gammon-accent-selection)}.settings-section h3,.rules-help h3{font-family:var(--gammon-font-serif);font-size:16px;margin-top:12px;margin-bottom:6px;color:var(--gammon-dialog-text)}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;gap:12px;min-height:44px}.settings-row-help{margin:4px 0 0;font-size:12px;color:#f0e6d2bf;line-height:1.4}.settings-version{margin:16px 0 0;padding-top:12px;border-top:1px solid rgba(216,197,160,.15);font-size:11px;text-align:center;color:#f0e6d28c;font-variant-numeric:tabular-nums}.about-dialog-title{font-family:var(--gammon-font-serif);font-size:20px;margin:0 0 12px;color:var(--gammon-accent-selection)}.about-dialog-description{margin:0 0 14px;line-height:1.5}.about-dialog-credits{display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:6px;margin:0 0 14px;padding:10px 12px;border:1px solid rgba(216,197,160,.2);border-radius:6px;background:#0000001f}.about-dialog-credits dt{font-weight:600;color:#f0e6d2b3}.about-dialog-credits dd{margin:0}.about-dialog-copyright{margin:0 0 14px;font-size:12px;color:#f0e6d2a6}.settings-panel .settings-section{padding-block:12px}.settings-panel .settings-section:not(:first-of-type){border-top:1px solid rgba(216,197,160,.15)}.settings-panel .settings-section h3{margin-bottom:10px}.settings-panel input[type=checkbox]{accent-color:var(--gammon-accent-selection);width:20px;height:20px;cursor:pointer}.settings-readonly{color:#b8a880;font-style:italic}.settings-note{font-size:11px;color:#998060;font-style:italic}.settings-stats-list{list-style:none;margin:0;padding:0}.settings-stats-list li{padding:4px 0}.settings-stats-grid{display:flex;flex-direction:column;gap:4px}.settings-stats-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;align-items:baseline;gap:12px;padding:6px 0}.settings-stats-label{font-weight:600}.settings-stats-cluster{font-variant-numeric:tabular-nums}.settings-stats-empty{font-style:italic;color:#f0e6d28c}.settings-header,.rules-help-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.settings-panel button,.rules-help button,.resign-dialog button,.reset-stats-dialog button,.move-log-dialog button{background:linear-gradient(180deg,#d4af75,#a07a3e);color:#1a1208;border:1px solid #5a3a18;border-radius:4px;padding:6px 12px;font-family:var(--gammon-font-sans);font-weight:500}.resign-dialog .settings-panel-destructive-button,.reset-stats-dialog .settings-panel-destructive-button,.move-log-dialog .settings-panel-destructive-button{background:var(--gammon-destructive);color:#fff;border-color:#0006}.resign-dialog-actions,.reset-stats-dialog-actions{display:flex;gap:8px;margin-top:12px;justify-content:flex-end}.move-log-dialog{width:480px;max-width:90vw}.move-log-dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.move-log-dialog-header h2{font-family:var(--gammon-font-serif);font-size:20px;margin:0;color:#f4d35e}.move-log-dialog-body{display:flex;flex-direction:column}.game-over-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:linear-gradient(180deg,#2a1d10,#1a1208);border:2px solid #f4d35e;border-radius:8px;padding:20px 30px;color:#f0e6d2;z-index:50;text-align:center;box-shadow:0 10px 40px #000000b3}.game-over-headline{font-family:var(--gammon-font-serif);font-size:22px;color:#f4d35e;margin:0 0 8px}.game-over-detail{margin:4px 0;color:#d8c5a0}.game-over-panel button{margin-top:12px;background:linear-gradient(180deg,#d4af75,#a07a3e);color:#1a1208;border:1px solid #5a3a18;border-radius:4px;padding:6px 16px;font-weight:500}.gammon-checker{transition:transform var(--gammon-anim-checker-slide) ease-out,opacity var(--gammon-anim-checker-slide) ease-out}.gammon-checker[data-hit-to-bar=true]{transition:transform var(--gammon-anim-hit-to-bar) cubic-bezier(.5,.05,.6,1.2)}@keyframes gammon-dice-tumble{0%{transform:rotate(-25deg) scale(.85);opacity:.4}40%{transform:rotate(20deg) scale(1.05);opacity:1}70%{transform:rotate(-8deg) scale(1)}to{transform:rotate(0) scale(1)}}@keyframes gammon-dice-action-pulse{0%,to{opacity:.45}50%{opacity:.95}}.gammon-dice-action-ring{animation:gammon-dice-action-pulse 1.4s ease-in-out infinite}.gammon-die.tumbling{transform-box:fill-box;transform-origin:center;animation:gammon-dice-tumble var(--gammon-anim-dice-tumble) ease-out}@keyframes gammon-turn-glow{0%{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 12px var(--gammon-glow-color, #a8d8a8))}to{filter:drop-shadow(0 0 0 transparent)}}.gammon-turn-glow{animation:gammon-turn-glow var(--gammon-anim-turn-handoff) ease-in-out}@keyframes gammon-ai-preview-source-pulse{0%{opacity:0;stroke-width:0}35%{opacity:.95;stroke-width:4}to{opacity:.7;stroke-width:3}}@keyframes gammon-ai-preview-destination-pulse{0%{opacity:0;stroke-width:0}30%{opacity:.85;stroke-width:3}to{opacity:.6;stroke-width:2.5}}.gammon-ai-preview-source{animation:gammon-ai-preview-source-pulse var(--gammon-anim-ai-preview-flash) ease-out forwards;pointer-events:none}.gammon-ai-preview-destination{animation:gammon-ai-preview-destination-pulse var(--gammon-anim-ai-preview-hold) ease-out forwards;pointer-events:none}:focus-visible{outline:3px solid #f4d35e;outline-offset:2px}svg .gammon-point-hit:focus{outline:none}svg .gammon-point-hit:focus-visible{outline:none;fill:#f4d35e2e;stroke:#f4d35e;stroke-width:3;stroke-dasharray:4 4}.gammon-point-label{fill:var(--gammon-point-label-color)}.gammon-board-svg{touch-action:none;-webkit-user-select:none;user-select:none;display:block}.gammon-clickable,[data-cube-offerable=true]{cursor:pointer}.gammon-hidden-shadow{display:none}@media (prefers-reduced-motion: reduce){.gammon-checker,.gammon-die.tumbling,.gammon-turn-glow,.gammon-ai-preview-source,.gammon-ai-preview-destination{animation:none!important;transition:none!important}}
