@font-face{font-family:Work Sans;font-style:normal;font-weight:300 600;font-display:swap;src:url(/viewer/assets/fonts/work-sans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lora;font-style:italic;font-weight:400 600;font-display:swap;src:url(/viewer/assets/fonts/lora-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--jump-ink: #15140f;--jump-ink-soft: #5a564c;--jump-paper: #f6f4ee;--jump-paper-2: #ecead9;--jump-panel: #fdfcf7;--jump-line: rgba(21, 20, 15, .08);--jump-line-strong: rgba(21, 20, 15, .14);--jump-red: #a83321;--bg: var(--jump-paper);--surface: var(--jump-panel);--surface-2: #fdfcf7;--surface-3: #ecead9;--ink: var(--jump-ink);--ink-soft: var(--jump-ink-soft);--muted: #6d695f;--muted-soft: #9b9589;--line: var(--jump-line);--line-strong: var(--jump-line-strong);--strong: var(--jump-ink);--p0: var(--jump-ink);--p1: var(--jump-red);--p2: #2f7d59;--p3: #315f9b;--p4: #8a5aa8;--p5: #b57424;--path: var(--jump-ink);--path0: rgba(21, 20, 15, .62);--path1: rgba(168, 51, 33, .66);--path2: rgba(47, 125, 89, .7);--path3: rgba(49, 95, 155, .7);--path4: rgba(138, 90, 168, .7);--path5: rgba(181, 116, 36, .72);--setup-path: rgba(21, 20, 15, .28);--theme-option-hover-bg: rgba(21, 20, 15, .07);--theme-option-active-bg: #15140f;--theme-option-active-text: #f6f4ee;--peg-stroke: rgba(21, 20, 15, .22);--peg-stroke-source: rgba(21, 20, 15, .42);--warn: #b46b09;--good: #1d7b51;--danger: var(--jump-red);--hole: transparent;--goal0: #e3e0d3;--goal1: #efe1d8;--home0: #e3e0d3;--home1: #efe1d8;--radius-sm: 0;--radius: 0;--radius-lg: 0;--radius-pill: 0;--shadow-sm: none;--shadow: none;--shadow-soft: none;--shadow-lift: none;--focus: 0 0 0 3px rgba(159, 45, 35, .16);font-family:Work Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-feature-settings:normal}[data-theme=hearth]{color-scheme:light;--jump-ink: #241a13;--jump-ink-soft: #5a4639;--jump-paper: #f3ebdf;--jump-paper-2: #e7dcca;--jump-panel: #fbf6ec;--jump-line: rgba(36, 26, 19, .09);--jump-line-strong: rgba(36, 26, 19, .16);--jump-red: #9b3a1f;--muted: #5a4639;--muted-soft: #8f7c6e;--goal0: #dde9e7;--goal1: #ebd9c5;--home0: #dde9e7;--home1: #ebd9c5;--theme-option-hover-bg: rgba(36, 26, 19, .08);--theme-option-active-bg: #241a13;--theme-option-active-text: #f3ebdf}[data-theme=night]{color-scheme:dark;--jump-ink: #f0e7d2;--jump-ink-soft: #a8a190;--jump-paper: #0d1426;--jump-paper-2: #070b18;--jump-panel: #1a2138;--jump-line: rgba(240, 231, 210, .1);--jump-line-strong: rgba(240, 231, 210, .16);--jump-red: #d4a24a;--muted: #a8a190;--muted-soft: #837d70;--goal0: #1a2c34;--goal1: #2a1e22;--home0: #1a2c34;--home1: #2a1e22;--surface-2: #14192a;--surface-3: #1a2138;--theme-option-hover-bg: rgba(240, 231, 210, .1);--theme-option-active-bg: #f0e7d2;--theme-option-active-text: #0d1426;--peg-stroke: rgba(240, 231, 210, .28);--peg-stroke-source: rgba(240, 231, 210, .5);--path0: rgba(240, 231, 210, .62);--path1: rgba(212, 162, 74, .74)}*{box-sizing:border-box}html,body{width:100%;overflow-x:hidden}body{margin:0;height:100vh;background:radial-gradient(circle at 2px 2px,rgba(21,20,15,.04) 1.5px,transparent 1.6px) 0 0 / 24px 24px,linear-gradient(180deg,var(--bg) 0%,#f1efe6 100%);color:var(--ink);overflow:hidden;font-size:14px;letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body.dragging{background:#f1eee7}main{width:min(1580px,calc(100vw - 40px));height:100vh;margin:0 auto;padding:22px 0 20px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px}header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end}html.setup-mode{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}html.setup-mode body,body.setup-mode{height:auto!important;min-height:100vh;overflow-x:hidden;overflow-y:auto!important}body.setup-mode>main{display:none}body:not(.setup-mode) .jump-setup{display:none}.jump-setup{min-height:100vh;padding:clamp(32px,5vh,64px) 24px clamp(48px,6vh,80px);background:radial-gradient(circle at 2px 2px,rgba(21,20,15,.035) 1.5px,transparent 1.6px) 0 0 / 24px 24px,var(--bg);color:var(--ink)}.jump-setup-inner{width:min(1008px,calc(100vw - 48px));margin:0 auto;display:grid;gap:clamp(28px,4vh,48px)}.jump-setup-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.jump-setup-actions{display:flex;align-items:center;gap:10px}.jump-app-link{display:inline-grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;min-height:40px;padding:5px 12px 5px 7px;border:1px solid var(--line-strong);background:radial-gradient(circle at 2px 2px,rgba(21,20,15,.035) 1.3px,transparent 1.4px) 0 0 / 16px 16px,#fdfcf7b8;color:var(--ink);text-decoration:none}.jump-app-link:hover{transform:translateY(-1px);border-color:var(--ink)}.jump-app-link-pattern{width:30px;height:30px;border:1px solid var(--line);background:radial-gradient(circle at 7px 21px,var(--ink) 3px,transparent 3.5px),radial-gradient(circle at 15px 15px,var(--red) 3px,transparent 3.5px),radial-gradient(circle at 23px 9px,var(--ink) 3px,transparent 3.5px),linear-gradient(135deg,transparent 38%,var(--line-strong) 39%,var(--line-strong) 43%,transparent 44%),var(--surface)}.jump-app-link span:last-child{display:grid;gap:2px}.jump-app-link small{color:var(--muted-soft);font-size:9px;font-weight:600;letter-spacing:.1em;line-height:1;text-transform:uppercase}.jump-app-link strong{font-size:12px;font-weight:600;line-height:1.05}.jump-setup-header .brand-mark{align-items:center}.jump-setup-header .brand-logo{width:40px;height:40px}.jump-setup-wordmark{display:block;font-family:Lora,Iowan Old Style,Georgia,serif;font-size:clamp(38px,5vw,52px);font-style:italic;font-weight:400;letter-spacing:-.035em;line-height:.95}.jump-setup-tagline{display:block;margin-top:6px;color:var(--muted);font-size:13px;font-style:italic;font-weight:300;letter-spacing:0}.jump-theme-button{width:40px;height:40px;min-height:40px;padding:0;display:inline-grid;place-items:center;border:1px solid var(--line-strong);background:transparent;color:var(--muted);font-size:17px;border-radius:0}.jump-step{display:grid;gap:20px}.jump-step-heading{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:end;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.jump-step-heading span{color:var(--muted-soft);font-size:10px;font-weight:400;letter-spacing:.08em}.jump-step-heading .jump-step-title{margin:0;font-family:Lora,Iowan Old Style,Georgia,serif;font-size:clamp(26px,3vw,30px);font-style:italic;font-weight:400;letter-spacing:-.035em;line-height:1}.jump-step-heading p,.jump-setup-footer p{margin:0;color:var(--muted);font-size:13px;font-style:italic;font-weight:300}.jump-game-type-grid,.jump-side-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.jump-game-type-card,.jump-side-card,.jump-opponent-card{position:relative;width:100%;min-height:0;border:1px solid var(--line-strong);border-radius:0;background:var(--surface);color:var(--ink);box-shadow:none;text-align:left;cursor:pointer}.jump-game-type-card.is-selected,.jump-side-card.is-selected,.jump-opponent-card.is-selected{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.jump-game-type-card:hover,.jump-side-card:hover,.jump-opponent-card:hover,.jump-theme-button:hover,.jump-begin-button:hover{transform:translateY(-1px)}.jump-game-type-card,.jump-side-card{display:grid;grid-template-columns:128px minmax(0,1fr) 28px;align-items:center;gap:20px;padding:26px 24px}.jump-game-type-card{grid-template-columns:minmax(0,1fr) 28px;min-height:116px}.jump-mini-board{width:118px;height:auto;overflow:visible}.mini-empty circle{fill:none;stroke:var(--line-strong);stroke-width:.8;opacity:.72}.jump-card-copy{display:grid;gap:6px}.jump-card-copy small,.jump-opponent-card small{color:var(--muted-soft);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.jump-card-copy strong,.jump-opponent-card strong{font-family:Lora,Iowan Old Style,Georgia,serif;font-size:28px;font-style:italic;font-weight:400;letter-spacing:-.035em;line-height:1}.jump-card-copy em,.jump-opponent-card em{color:var(--muted);font-size:13px;font-style:normal;font-weight:300}.jump-opponent-list{display:grid;gap:10px}.jump-opponent-card{display:grid;grid-template-columns:220px minmax(0,1fr) 54px 24px;align-items:center;gap:22px;padding:18px 24px}.jump-opponent-card>span:first-child{display:grid;gap:5px}.jump-strength{color:var(--ink);letter-spacing:2px;text-align:right}.jump-radio{width:18px;height:18px;border:1px solid var(--line-strong);border-radius:50%;justify-self:end}.is-selected>.jump-radio{border-color:var(--ink);box-shadow:inset 0 0 0 5px var(--surface);background:var(--ink)}.jump-setup-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:4px}.jump-begin-button{min-height:46px;padding:0 28px;background:var(--ink);border-color:var(--ink);color:var(--bg);font-weight:500;border-radius:0;cursor:pointer}.jump-begin-button span{margin-left:8px}.brand{display:grid;gap:3px;min-width:0}.brand-mark{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:inherit;max-width:100%}.brand-logo{width:30px;height:30px;object-fit:contain;filter:brightness(0) saturate(100%);transition:transform .24s cubic-bezier(.32,.72,0,1)}.brand-mark:hover .brand-logo{transform:rotate(10deg) scale(1.04)}h1{margin:0;font-family:Lora,Iowan Old Style,Georgia,serif;font-size:clamp(34px,3.7vw,52px);font-style:italic;line-height:.94;letter-spacing:-.025em;font-weight:400;color:var(--ink);overflow-wrap:anywhere}.brand-tagline{margin:0;color:var(--muted);font-size:12px;font-weight:300;letter-spacing:0;padding-left:40px}.subtle{color:var(--muted);font-size:12px;font-weight:300;letter-spacing:0;margin-top:6px}button,select,.field{border:1px solid var(--line);background-color:var(--surface);color:var(--ink);border-radius:var(--radius);min-height:36px;padding:10px 14px;font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease,transform .14s ease,color .14s ease}button:hover,.field:hover,select:hover{border-color:var(--line-strong);background-color:var(--surface);box-shadow:var(--shadow-soft)}button:active{transform:translateY(.5px)}button:disabled:active{transform:none}.icon{width:16px;height:16px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.icon-fill{fill:currentColor;stroke:none}.icon-sm{width:14px;height:14px}.icon-lg{width:18px;height:18px}.button-icon,.mode-icon{display:inline-grid;place-items:center;line-height:1;flex:0 0 auto}.button-icon{width:16px;height:16px;font-size:13px;font-weight:700}button:focus-visible,select:focus-visible,.field:focus-visible,input[type=range]:focus-visible{outline:none;box-shadow:var(--focus);border-color:#9f2d237a}button:disabled{cursor:default;opacity:.45}input[type=file]{display:none}input[type=range]{width:100%;accent-color:var(--p0)}.header-actions{display:grid;grid-template-columns:minmax(280px,500px) auto;gap:10px;align-items:end;justify-content:end}.title-block{display:grid;gap:14px;align-items:start;min-width:0}.mode-tabs{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;gap:14px;width:max-content;padding:0;border:0;border-radius:0;background:transparent;box-shadow:var(--shadow-sm)}.mode-tabs:before{content:none;position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);background:var(--strong);border-radius:var(--radius-pill);box-shadow:0 8px 16px #15140f29;transition:transform .26s cubic-bezier(.32,.72,0,1);z-index:0;pointer-events:none}.mode-tabs:has(.mode-tab:nth-child(2).active):before{transform:translate(100%)}.mode-tab{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;min-width:156px;border:0;border-bottom:1px solid var(--ink);border-radius:0;padding:6px 0;background:transparent;box-shadow:none;font-size:13px;font-weight:400;line-height:1.35;letter-spacing:0;color:var(--muted);transition:color .2s ease}.mode-tab .icon{width:14px;height:14px;opacity:.82;transition:opacity .2s ease}.mode-tab:hover{color:var(--ink-soft);box-shadow:none;background:transparent}.mode-tab.active{color:var(--bg);background:var(--ink);padding-left:18px;padding-right:18px;border-bottom-color:var(--ink);box-shadow:none}.mode-tab.active .icon{opacity:1}.play-actions{display:flex;flex-wrap:nowrap;gap:14px;align-items:end;justify-content:end}.play-settings{display:contents}.play-settings>summary{display:none}.play-settings-body{display:flex;gap:14px;align-items:end}.mobile-mode-section,.mobile-page-section{display:none}.mobile-theme-field,body.local-two-player .ai-only-setting{display:none!important}.play-settings-body>label,.play-settings-body>.play-sim-control,.play-settings-body .mobile-settings-field{display:grid;gap:4px;width:150px;min-width:0}.mobile-settings-section{display:contents}.mobile-sheet-heading,.mobile-page-section{display:none}.mobile-only-setting{display:none!important}.play-actions label>span,.play-sim-control>span{display:block;color:var(--muted);font-size:9.5px;font-weight:500;letter-spacing:.12em;line-height:1;text-transform:uppercase}.play-actions select{display:block;min-height:38px;font-size:12.5px}.play-actions .cs-trigger{min-height:42px;padding:10px 14px;font-size:13px}body:not(.setup-mode) .play-actions .cs-trigger{min-height:42px;padding:10px 14px;font-size:13px}.cs{position:relative;width:100%}.cs-native{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);opacity:0;pointer-events:none;border:0}.cs-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:42px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--radius);background-color:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink);font:inherit;font-size:13px;font-weight:500;letter-spacing:0;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease,transform .14s ease}.cs-trigger:hover{border-color:var(--line-strong);box-shadow:var(--shadow-soft)}.cs-trigger:focus-visible{outline:none;box-shadow:var(--focus);border-color:#9f2d237a}.cs-trigger:active{transform:none}.cs.cs-open .cs-trigger{border-color:var(--line-strong);box-shadow:var(--shadow-soft)}.cs-label{flex:1 1 auto;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-chevron{width:12px;height:12px;flex:0 0 auto;color:var(--muted);transition:transform .18s ease;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.cs.cs-open .cs-chevron{transform:rotate(180deg)}.game-select-trigger:after,.select-chevron{width:12px;height:12px;flex:0 0 auto;color:var(--muted);background-color:currentColor;-webkit-mask:var(--chevron-icon) center / contain no-repeat;mask:var(--chevron-icon) center / contain no-repeat;--chevron-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");transition:transform .18s ease,color .14s ease}.cs-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:280px;z-index:60;display:none;flex-direction:column;gap:1px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 18px 38px #15140f24,0 2px 6px #15140f0f;transform-origin:top center;animation:cs-menu-in .14s ease;max-height:280px;overflow-y:auto}.cs.cs-open .cs-menu{display:flex}.cs.cs-drop-up .cs-menu{top:auto;bottom:calc(100% + 6px);transform-origin:bottom center}@keyframes cs-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.cs-option{display:flex;align-items:center;gap:10px;width:100%;min-height:0;text-align:left;padding:8px 10px;font:inherit;font-size:13px;font-weight:500;color:var(--ink);background:transparent;border:0;border-radius:8px;box-shadow:none;cursor:pointer;white-space:nowrap;transition:background-color .1s ease}.cs-option:hover,.cs-option:focus-visible{background-color:var(--theme-option-hover-bg);outline:none;box-shadow:none;border-color:transparent;transform:none}.cs-option.is-selected{background-color:var(--theme-option-hover-bg);color:var(--ink)}.cs-option-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.cs-option-check{width:14px;height:14px;flex:0 0 auto;color:var(--ink-soft);stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:0}.cs-option.is-selected .cs-option-check{opacity:1}.cs-disabled .cs-trigger{cursor:not-allowed;opacity:.5}.play-actions .undo-play-button,.play-actions .save-play-button,.play-actions .new-game-button{min-height:38px;padding:6px 14px;font-size:12.5px}.undo-play-button,.save-play-button,.new-game-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:var(--radius);border-color:var(--line);background-color:transparent;box-shadow:var(--shadow-sm);font-size:13px;font-weight:400;letter-spacing:0;color:var(--ink-soft)}.new-game-button{background:var(--strong);color:var(--bg);border-color:var(--strong);box-shadow:0 10px 18px #15140f29}.new-game-button:not(:disabled):hover{background:#2a2923;border-color:#2a2923;color:var(--bg);box-shadow:0 12px 24px #15140f33}.undo-play-button:not(:disabled):hover,.save-play-button:not(:disabled):hover{background-color:#fff;box-shadow:var(--shadow-soft)}.new-game-button span{white-space:nowrap}.new-game-label-mobile{display:none}body.play-mode .replay-only{display:none!important}body.play-mode .transport .replay-only{display:inline-flex!important}body:not(.play-mode) .play-only{display:none!important}.header-playback{display:grid;grid-template-columns:104px 112px;gap:8px;align-items:end}.panel .header-playback{grid-template-columns:minmax(0,1fr) 86px;align-items:stretch}.panel .header-playback select,.panel .header-playback .play-button{min-height:40px;border-radius:12px}.panel .header-playback .play-button{min-width:0;box-shadow:0 8px 18px #1f34391f}.load-hint{display:none}.topline{display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 11px;min-height:62px;box-shadow:var(--shadow)}.metric strong{display:block;color:var(--muted);font-size:12px;font-weight:700;margin-bottom:5px}.metric span{display:block;font-size:16px;line-height:1.25;overflow-wrap:anywhere}.layout{display:grid;grid-template-columns:minmax(640px,1fr) 288px;gap:14px;align-items:stretch;min-height:0;animation:layout-in .36s cubic-bezier(.32,.72,0,1) both}@keyframes layout-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.compact-status[data-thinking=true] b:before,.compact-status[data-thinking=true] #statusMove{opacity:1;transform:none}.compact-status[data-thinking=true]:after{background-position:50% 0,50% 0;opacity:.55}}.board-wrap,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card, 0);box-shadow:var(--shadow);min-width:0;backdrop-filter:none;-webkit-backdrop-filter:none}.board-wrap{padding:14px 20px 16px;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;overflow:hidden;background:linear-gradient(180deg,var(--surface) 0%,var(--surface) 100%)}.summary-strip{display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%}.summary-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:8px 10px;min-width:0}.summary-item:nth-child(n+4){display:none}.summary-item strong{display:block;color:var(--muted);font-size:9.5px;font-weight:700;letter-spacing:.1em;margin-bottom:3px;text-transform:uppercase}.summary-item span{display:block;font-size:13px;font-weight:600;letter-spacing:-.005em;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%;aspect-ratio:1 / 1;justify-self:center;align-self:center}#boardSvg .peg-base{cursor:pointer;transition:stroke .18s ease,stroke-width .18s ease}#boardSvg .peg-base:hover{stroke:var(--strong);stroke-width:1.4}#boardSvg .peg-hit-target{cursor:pointer}#boardSvg .peg-source{stroke-opacity:.95;stroke-width:2.2}#boardSvg .peg-target{stroke-opacity:1}#boardSvg .peg-selected{filter:drop-shadow(0 0 6px rgba(31,52,57,.28))}.board-info{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;letter-spacing:-.003em;overflow-wrap:anywhere}.panel{padding:0;min-height:0;max-height:none;overflow:hidden;overflow-x:hidden;align-self:stretch;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--surface) 0%,var(--surface) 100%);box-shadow:var(--shadow)}.panel *{min-width:0}.stack{display:flex;flex-direction:column;gap:0}.panel-section{display:grid;gap:12px;padding:16px;border-bottom:1px solid var(--line)}#analysisSection{flex:1;min-height:0;display:flex;flex-direction:column}.panel-section:last-of-type{border-bottom:0}.panel-kicker{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.12em;line-height:1;text-transform:uppercase}.tabs,.controls{display:grid;gap:7px}.tabs{position:relative;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--surface-3);border:0;border-radius:var(--radius-sm);padding:3px;gap:0}.tabs:before{content:"";position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px) / 3);background:var(--surface);border-radius:6px;box-shadow:var(--shadow-sm);transition:transform .24s cubic-bezier(.32,.72,0,1);z-index:0;pointer-events:none}.tabs:has(.tab:nth-child(2).active):before{transform:translate(100%)}.tabs:has(.tab:nth-child(3).active):before{transform:translate(200%)}.controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.controls button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:6px 8px;font-size:12px;font-weight:600;color:var(--ink-soft);border-color:var(--line);border-radius:var(--radius);background:transparent;box-shadow:var(--shadow-sm)}.controls button .control-label{font-size:12px}.controls button:not(:disabled):hover{background:#fff;color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow-soft)}.transport{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(104px,1.25fr) minmax(0,1fr) minmax(0,1fr);gap:6px;align-items:stretch}body.play-mode .transport{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(104px,1.25fr) minmax(0,1fr) minmax(0,1fr)}.transport>button{min-width:0;width:100%}body.play-mode #navigationSection[data-empty=true]{display:none}.transport-step{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0;color:var(--ink-soft);border-color:var(--line);border-radius:var(--radius);background:transparent;box-shadow:var(--shadow-sm)}.transport-step:not(:disabled):hover{background:#fff;color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow-soft)}.transport-step .icon{width:18px;height:18px;stroke-width:2}.transport .play-button{min-width:0;max-width:100%;padding:0 18px}.transport-meta{display:grid}.speed-select{min-height:34px;padding:6px 32px 6px 12px;font-size:12px;font-weight:500;background-color:transparent;border-color:transparent;box-shadow:none;color:var(--muted);letter-spacing:0;background-position:calc(100% - 8px) 50%;width:max-content;justify-self:end}.speed-select:hover{background-color:var(--surface-3);border-color:transparent;color:var(--ink-soft);box-shadow:none}.skip-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.play-button{color:#fff;background:var(--strong);border-color:var(--strong);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:400;letter-spacing:0;min-height:42px;border-radius:var(--radius);box-shadow:0 10px 20px #15140f2e}.header-actions .play-button{min-width:116px;align-self:end}.play-button:before{content:"";width:12px;height:12px;background-color:currentColor;-webkit-mask:var(--play-icon) center / contain no-repeat;mask:var(--play-icon) center / contain no-repeat;--play-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 4l14 8-14 8V4z' fill='white'/></svg>")}.play-button:not(:disabled):hover{color:#fff;background:#2a2923;border-color:#2a2923;box-shadow:0 12px 24px #15140f33}.play-button.playing{background:var(--danger);border-color:var(--danger);box-shadow:0 8px 20px #a23b3347,0 0 #a23b3352;animation:play-pulse 2.4s ease-in-out infinite}@keyframes play-pulse{0%,to{box-shadow:0 8px 20px #a23b3347,0 0 #a23b332e}50%{box-shadow:0 8px 20px #a23b3347,0 0 0 7px #a23b3300}}.play-button.playing:before{--play-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 5h4v14H7zM13 5h4v14h-4z' fill='white'/></svg>")}.play-button.playing:not(:disabled):hover{background:#8e3229;border-color:#8e3229}select{-webkit-appearance:none;appearance:none;width:100%;min-height:42px;border:1px solid var(--line);border-radius:var(--radius);background-color:var(--surface);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236d695f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-position:calc(100% - 12px) 50%;background-size:12px 12px;background-repeat:no-repeat;padding:8px 34px 8px 13px;color:var(--ink);font-size:13px;font-weight:500;letter-spacing:0;box-shadow:var(--shadow-sm)}.header-playback select{font-size:13px}input[type=range]{height:18px}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:var(--line)}input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:0;background:var(--strong);border:0;box-shadow:none;transition:transform .14s ease,box-shadow .14s ease}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 3px 10px #1f343947}.scrubber-row{display:grid;grid-template-columns:30px minmax(0,1fr) 30px;gap:7px;align-items:center;color:var(--muted);font-size:12px;font-weight:750;font-variant-numeric:tabular-nums}.scrubber-row span:last-child{text-align:right}.option-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;color:var(--muted);font-size:12px;overflow:hidden}.compact-status{position:relative;--status-accent: var(--strong);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:12px 14px;display:grid;gap:4px;color:var(--muted);font-size:12.5px;box-shadow:var(--shadow-sm);overflow:hidden}.compact-status>div:first-child{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;line-height:1.2;color:var(--ink);font-weight:400}.compact-status b{position:relative;color:var(--strong);display:inline-flex;align-items:center;gap:7px;min-width:0;padding:0;border-radius:0;background:transparent;font-size:10.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.compact-status b:before{content:"";position:static;flex:0 0 auto;width:6px;height:6px;margin-top:0;border-radius:0;background:currentColor;opacity:.85}.compact-status[data-state=you],.compact-status[data-state=p0],.compact-status[data-state=seat0]{--status-accent: var(--p0)}.compact-status[data-state=ai],.compact-status[data-state=p1],.compact-status[data-state=seat1]{--status-accent: var(--p1)}.compact-status[data-state=seat2]{--status-accent: var(--p2)}.compact-status[data-state=seat3]{--status-accent: var(--p3)}.compact-status[data-state=seat4]{--status-accent: var(--p4)}.compact-status[data-state=seat5]{--status-accent: var(--p5)}.compact-status[data-state=you] b,.compact-status[data-state=ai] b,.compact-status[data-state=win],.compact-status[data-state=p0] b{color:var(--status-accent);background:transparent}.compact-status[data-state=win] b{color:var(--good);background:transparent}.compact-status[data-state=loss],.compact-status[data-state=p1] b{color:var(--status-accent);background:transparent}.compact-status[data-state=loss] b{color:var(--danger);background:transparent}.compact-status[data-state=draw] b{color:var(--warn);background:transparent}.compact-status[data-state=seat0] b,.compact-status[data-state=seat1] b,.compact-status[data-state=seat2] b,.compact-status[data-state=seat3] b,.compact-status[data-state=seat4] b,.compact-status[data-state=seat5] b{color:var(--status-accent);background:transparent}.compact-status[data-thinking=true] b:before{opacity:1;animation:thinking-dot 1.45s ease-in-out infinite}.compact-status[data-thinking=true]:after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;background:radial-gradient(circle at center,var(--status-accent) 0 16%,transparent 17%),linear-gradient(90deg,transparent 0%,var(--status-accent) 38%,var(--status-accent) 62%,transparent 100%);background-size:8px 3px,42% 100%;background-repeat:no-repeat;background-position:50% 0,-45% 0;filter:drop-shadow(0 -1px 7px color-mix(in srgb,var(--status-accent) 38%,transparent));opacity:.85;animation:thinking-glint 1.8s cubic-bezier(.45,0,.15,1) infinite}.compact-status #statusMove{color:var(--muted);font-size:12px;line-height:1.45}.compact-status[data-thinking=true] #statusMove{animation:thinking-text 1.8s ease-in-out infinite;color:var(--status-accent)}@keyframes thinking-dot{0%,to{opacity:.62;transform:scale(.88)}45%{opacity:1;transform:scale(1.28)}72%{opacity:.82;transform:scale(1.03)}}@keyframes thinking-glint{0%{background-position:18% 0,-45% 0;opacity:.35}35%{opacity:.95}70%{background-position:82% 0,145% 0;opacity:.72}to{background-position:82% 0,145% 0;opacity:.35}}@keyframes thinking-text{0%,to{opacity:.68}45%{opacity:1}72%{opacity:.82}}.compact-status #statusGame{min-width:0;overflow-wrap:anywhere}.play-result-section{display:none}body.play-mode .play-result-section:not([hidden]){display:grid;gap:10px;padding:24px 20px 22px;border-bottom:1px solid var(--line)}.play-result-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--muted-soft);font-size:10px;font-weight:600;letter-spacing:.16em;line-height:1;text-transform:uppercase}.play-result-kicker:before{content:"";width:7px;height:7px;background:currentColor}.play-result-title{font-family:Lora,Iowan Old Style,Georgia,serif;font-size:clamp(34px,3vw,46px);font-style:italic;font-weight:400;letter-spacing:-.035em;line-height:.98;color:var(--ink)}.play-result-copy{max-width:28ch;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.55}.play-result-section[data-result=win] .play-result-kicker{color:var(--good)}.play-result-section[data-result=loss] .play-result-kicker{color:var(--danger)}.play-result-section[data-result=draw] .play-result-kicker{color:var(--warn)}.kbd-hint{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;padding-top:4px;color:var(--muted-soft);font-size:11px}.kbd-hint span{margin-right:4px}.kbd-hint kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;background:var(--surface);color:var(--ink-soft);font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;box-shadow:var(--shadow-sm)}@media(max-width:1180px){.kbd-hint{display:none}}.compact-status div{line-height:1.25}.header-game-picker{display:grid;gap:5px;width:min(360px,36vw);min-width:0;position:relative}.header-game-picker label{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.game-select-trigger{display:grid;grid-template-columns:16px minmax(0,1fr) auto auto;gap:10px;align-items:center;width:100%;min-height:38px;padding:6px 12px;text-align:left;border-color:var(--line);border-radius:var(--radius);background:#ffffffeb;font-weight:600;font-size:13px;letter-spacing:-.005em;color:var(--ink)}.game-select-trigger:before{content:"";width:16px;height:16px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a767c' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><polyline points='21 8 21 21 3 21 3 8'/><rect x='1' y='3' width='22' height='5'/><line x1='10' y1='12' x2='14' y2='12'/></svg>") center / contain no-repeat}.game-select-trigger:hover{border-color:var(--line-strong);background:#fff}.game-select-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-select-trigger .outcome-pill{overflow:visible}.game-select-trigger:after{content:""}.game-select-trigger[aria-expanded=true]:after{transform:rotate(180deg)}.game-select-menu{position:absolute;z-index:20;top:calc(100% + 8px);right:0;width:100%;min-width:0;max-width:min(100%,calc(100vw - 32px));max-height:min(520px,calc(100vh - 120px));display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fffffffa;box-shadow:var(--shadow-lift);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:menu-in .18s cubic-bezier(.32,.72,0,1);transform-origin:top right}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.game-select-menu.hidden{display:none}.game-select-main{display:grid;grid-template-rows:minmax(0,1fr);min-height:0;border-bottom:1px solid #edf2ef}.game-select-section-title{color:var(--muted);font-size:9.5px;font-weight:850;letter-spacing:.1em;line-height:1;text-transform:uppercase}.game-select-sections{display:flex;flex-direction:column;gap:0;padding:6px 0;overflow-y:auto;overflow-x:hidden;max-height:min(500px,calc(100vh - 140px));overscroll-behavior:contain}.game-select-section{display:grid;grid-template-rows:auto auto;min-height:auto;overflow:visible;flex:0 0 auto}.game-select-section+.game-select-section{border-top:1px solid #edf2ef;margin-top:2px;padding-top:4px}.game-select-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 14px 4px;position:relative;z-index:1;background:#fffffffa}.game-select-section-count{color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.04em}.game-select-section[data-empty=true] .game-select-list{padding-top:0;padding-bottom:6px}.game-select-section .game-select-list{max-height:none;overflow:visible;padding:4px 8px 8px}.game-select-section-empty{padding:4px 14px 10px;color:var(--muted);font-size:12px;font-style:italic}.game-select-list{display:grid;align-content:start;gap:2px;padding:7px;overflow:visible;max-height:none}.game-select-option,.game-select-open{width:100%;min-width:0;min-height:36px;border:0;border-radius:var(--radius-sm);background:transparent;box-shadow:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;text-align:left;font-size:13px;font-weight:500;color:var(--ink-soft);transition:background .14s ease,color .14s ease}.game-select-option{min-height:36px}.game-select-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-select-empty{padding:18px 10px;color:var(--muted);font-size:13px;text-align:center}.outcome-pill{min-width:0;max-width:124px;overflow:hidden;text-overflow:ellipsis;border-radius:var(--radius-pill);padding:3px 8px;background:var(--surface-3);color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.04em;line-height:1.2;white-space:nowrap;text-transform:uppercase}.outcome-pill.candidate-win,.outcome-pill.p0-win{background:#2a879721;color:#216f7c}.outcome-pill.candidate-loss,.outcome-pill.p1-win{background:#b75a5121;color:#93463f}.outcome-pill.draw{background:#b46b0924;color:#8b550a}.outcome-pill.candidate-seat-0,.pill.candidate-seat-0{background:var(--p0);color:var(--surface)}.outcome-pill.candidate-seat-1,.pill.candidate-seat-1{background:var(--p1);color:#fff}.outcome-pill.candidate-seat-2,.pill.candidate-seat-2{background:var(--p2);color:#fff}.outcome-pill.candidate-seat-3,.pill.candidate-seat-3{background:var(--p3);color:#fff}.outcome-pill.candidate-seat-4,.pill.candidate-seat-4{background:var(--p4);color:#fff}.outcome-pill.candidate-seat-5,.pill.candidate-seat-5{background:var(--p5);color:#fff}.game-select-option:hover,.game-select-open:hover{background:var(--surface-3);color:var(--ink);box-shadow:none}.game-select-option.active{background:#2a87971a;color:var(--strong);font-weight:600}.game-select-footer{display:grid;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--line);background:var(--surface-2)}.game-select-examples{display:flex;flex-wrap:wrap;gap:5px}.game-select-footer-label{color:var(--muted);font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.game-select-example{width:auto;min-height:24px;max-width:100%;border:1px solid var(--line);border-radius:var(--radius-pill);background:#fff;box-shadow:none;padding:3px 9px;color:var(--muted);font-size:11px;font-weight:500;letter-spacing:-.003em;text-align:center;transition:border-color .14s ease,color .14s ease,background .14s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-select-example:hover{border-color:var(--line-strong);color:var(--ink);background:#fff;box-shadow:none;transform:none}.game-select-open{min-height:30px;color:var(--muted);font-weight:600;font-size:12px;letter-spacing:-.005em;border-radius:var(--radius-sm);justify-content:center;border-top:0}.game-select-open:before{content:"";width:14px;height:14px;flex:0 0 auto;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a767c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M14 3h7v7M21 3l-9 9M5 5h5M5 5v14h14v-5'/></svg>") center / contain no-repeat;margin-right:6px}.status-line{display:flex;align-items:baseline;gap:8px;min-width:0;max-width:100%}.status-line b{flex:0 0 auto}.status-meta{display:inline-flex;flex:1 1 auto;flex-wrap:wrap;align-items:baseline;gap:2px 6px;min-width:0;max-width:100%;color:var(--ink);font-family:Lora,Iowan Old Style,Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.025em;white-space:normal;overflow-wrap:anywhere}.status-primary{min-width:0;font-size:24px;line-height:1;overflow-wrap:anywhere}.status-separator,.status-secondary{color:var(--ink-soft);font-size:18px;line-height:1.15}.status-separator{flex:0 0 auto}.status-secondary{min-width:0;overflow-wrap:anywhere}.play-history-section{display:none}body.play-mode .play-history-section{display:grid}.play-history-list{max-height:352px}.play-history-head{margin-top:0}.check-label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.tab{position:relative;z-index:1;min-height:34px;padding:6px 8px;font-size:12px;font-weight:600;line-height:1.35;letter-spacing:-.005em;color:var(--muted);background:transparent;border:0;border-radius:6px;box-shadow:none;transition:color .2s ease}.tab:not(.active):hover{color:var(--ink-soft);box-shadow:none;background:transparent}.tab.active{color:var(--ink);background:transparent;border-color:transparent;box-shadow:none}.section{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;box-shadow:var(--shadow-sm)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--surface-2)}#analysisSection .section-head,#playHistorySection .section-head{display:none}.section-body{padding:10px}.game-browser{display:grid;gap:7px;max-height:180px;overflow:auto}.game-tools{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-bottom:9px}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}.field{cursor:text;width:100%;box-shadow:none}.game-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:10px 12px;cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);transition:border-color .14s ease,background .14s ease,transform .14s ease}.game-option:hover{background:#fff;border-color:var(--line-strong);transform:translateY(-1px)}.game-option.active{border-color:var(--p0);background:#2a87970f;box-shadow:0 0 0 3px #2a87971a}.game-option-title{font-size:13px;font-weight:600;letter-spacing:-.005em;overflow-wrap:anywhere;color:var(--ink)}.game-option-meta{color:var(--muted);font-size:12px;margin-top:3px}.pill{display:inline-flex;align-items:center;justify-content:center;min-width:44px;border-radius:var(--radius-pill);padding:4px 10px;color:#fff;background:var(--strong);font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.pill.draw{background:var(--warn)}.pill.win0{background:var(--p0)}.pill.win1{background:var(--p1)}.pill.candidate-seat-0{background:var(--p0);color:var(--surface)}.pill.candidate-seat-1{background:var(--p1);color:#fff}.pill.candidate-seat-2{background:var(--p2);color:#fff}.pill.candidate-seat-3{background:var(--p3);color:#fff}.pill.candidate-seat-4{background:var(--p4);color:#fff}.pill.candidate-seat-5{background:var(--p5);color:#fff}.player-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.player-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow-sm)}.player-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:700;letter-spacing:-.005em;margin-bottom:10px}.dot{width:11px;height:11px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.18);margin-right:6px}.mini-stat{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px;line-height:1.7}.mini-stat b{color:var(--ink);font-weight:750}.bar{height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden;margin-top:8px}.bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--p0),var(--good));transition:width .32s cubic-bezier(.32,.72,0,1)}.phase-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(2px,1fr);gap:1px;height:26px;border-radius:6px;overflow:hidden;background:#d4ddda}.phase-cell{min-width:2px;cursor:pointer}.phase-0{background:#9fc8d2}.phase-1{background:#7bae91}.phase-2{background:#c98a78}.diagnostics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}@keyframes jumpstar-celebrate{0%{transform:rotate(0) scale(1)}20%{transform:rotate(180deg) scale(1.18)}45%{transform:rotate(540deg) scale(.92)}70%{transform:rotate(900deg) scale(1.08)}to{transform:rotate(1080deg) scale(1)}}.brand-logo.is-celebrating{animation:jumpstar-celebrate 1.1s cubic-bezier(.32,.72,0,1) both;transform-origin:50% 50%;will-change:transform}.diag{background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:10px;padding:9px 11px 10px;min-height:0;box-shadow:none;display:flex;flex-direction:column;gap:4px}.diag strong{display:block;font-size:9.5px;font-weight:700;letter-spacing:.09em;color:var(--muted);text-transform:uppercase;margin-bottom:0}.diag span{font-size:15px;font-weight:600;letter-spacing:-.012em;font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.move-list{max-height:352px;overflow-x:hidden;overflow-y:auto;border-top:1px solid var(--line)}#analysisSection .move-list{flex:1;min-height:0;max-height:none}#analysisSection .move-list,#playHistorySection .move-list{border-top:0}.move-list-head,.move-row{display:grid;grid-template-columns:34px 74px 58px minmax(132px,1fr);gap:10px;align-items:center}.move-list-head{position:sticky;top:0;z-index:1;padding:8px 12px;color:var(--muted);background:transparent;border-bottom:1px solid var(--line);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.move-list-head span,.move-row span{min-width:0}.move-list-head span:not(:first-child),.move-row span:not(:first-child){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visit-list{display:grid;gap:6px;font-size:12px}.visit-row{display:grid;grid-template-columns:72px 1fr 44px;gap:8px;align-items:center}.move-row{appearance:none;width:100%;min-height:46px;padding:8px 12px;font-size:12.5px;line-height:1.25;text-align:left;color:var(--ink);background:transparent;border:0;border-bottom:1px solid rgba(228,235,232,.6);cursor:pointer;font-family:var(--f-ui, "Work Sans", sans-serif);font-weight:400;transition:background .14s ease}.move-row.suspicious{box-shadow:inset 3px 0 0 var(--warn)}.move-row:last-child{border-bottom:0}.move-row:hover{background:#15140f09}.move-row.active{background:linear-gradient(90deg,#15140f14,#15140f06);box-shadow:inset 3px 0 0 var(--p0);color:var(--ink);font-weight:600}.gain{color:var(--good);font-weight:800}.loss{color:var(--warn);font-weight:800}.kind{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.diagnostic-actions{display:grid;gap:7px}.diagnostic-link{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:8px 12px;font-size:12px;cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);transition:border-color .14s ease,background .14s ease,transform .14s ease}.diagnostic-link:hover{border-color:var(--line-strong);background:#fff;transform:translateY(-1px)}.skip-controls button,.diagnostic-link,.game-tools button,.option-row button{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:800}.legend{display:none;flex-wrap:wrap;gap:8px 12px;color:var(--muted);font-size:12px}.key{display:inline-flex;align-items:center;gap:5px}.message{display:none;border:1px dashed var(--line);border-radius:7px;padding:10px;color:var(--muted);font-size:13px;line-height:1.4;background:#fbfdfc}.message.error{display:block;border-color:#a23b3373;color:#7d2b25;background:#fff8f7}.empty-state{display:flex;align-items:center;justify-content:center;min-height:80px;border:1px dashed var(--line-strong);border-radius:var(--radius);padding:28px 20px;color:var(--muted);font-size:13px;line-height:1.5;background:var(--surface-2);text-align:center;font-style:italic}@media(min-width:1181px){body.play-mode .panel{display:flex;flex-direction:column;align-self:stretch;height:100%}body.play-mode .play-history-section{flex:1;display:flex;flex-direction:column;min-height:0}body.play-mode .play-history-section .play-history-list{flex:1;min-height:0;display:flex;flex-direction:column}body.play-mode .play-history-section .play-history-list>.empty-state{flex:1}}html.no-move-preview .peg-source,html.no-move-preview .peg-target{stroke:none!important;stroke-width:0!important}.jump-settings-backdrop{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;background:#0f0e0b6b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:jumpFadeIn .16s ease}@keyframes jumpFadeIn{0%{opacity:0}to{opacity:1}}@keyframes jumpPopIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.jump-settings-backdrop.is-open{display:flex}.jump-settings-panel{position:relative;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 64px);overflow:auto;padding:28px 28px 20px;border:1px solid var(--line-strong);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 30px 60px -20px #00000047;animation:jumpPopIn .2s cubic-bezier(.2,0,0,1)}.jump-settings-panel h2{margin:0 0 4px;font-family:Lora,Iowan Old Style,Georgia,serif;font-style:italic;font-size:26px;font-weight:400;line-height:1.1;color:var(--ink)}.jump-settings-panel .jump-settings-subtitle{margin:0 0 18px;color:var(--muted);font-size:13px}.jump-settings-close{position:absolute;top:14px;right:14px;width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;transition:background-color .14s ease,color .14s ease}.jump-settings-close:hover,.jump-settings-close:focus-visible{background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink);outline:none}.jump-settings-close svg{width:16px!important;height:16px!important;aspect-ratio:auto!important;display:block}.jump-settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--line)}.jump-settings-game-type-row{display:none}.jump-settings-row:first-of-type{border-top:0;padding-top:6px}.jump-settings-row .jump-settings-label{font-size:14px;font-weight:500;color:var(--ink);display:block}.jump-settings-row .jump-settings-help{margin-top:3px;font-size:12px;color:var(--muted);line-height:1.4}.jump-settings-select{flex:0 0 176px;min-height:42px;font-size:13px}.jump-settings-row .cs{flex:0 0 176px}.jump-settings-row .cs-trigger{min-height:42px;font-size:13px}.jump-settings-theme{display:grid;grid-template-columns:repeat(3,minmax(72px,1fr));flex:0 0 auto;min-width:240px;padding:4px;border:1px solid var(--line-strong);border-radius:12px;background:color-mix(in srgb,var(--surface-2) 82%,var(--bg));gap:4px}.jump-settings-theme button{min-height:0;height:38px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--ink-soft);font:inherit;font-size:13px;font-weight:600;line-height:1.35;letter-spacing:.01em;cursor:pointer;opacity:1;box-shadow:none;transform:none;transition:background-color .14s ease,color .14s ease,box-shadow .14s ease}.jump-settings-theme button:not(.is-active):hover{color:var(--ink);background-color:var(--theme-option-hover-bg)}.jump-settings-theme button:active{transform:none}.jump-settings-theme button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--ink) 24%,transparent)}.jump-settings-theme button.is-active{background-color:var(--theme-option-active-bg);color:var(--theme-option-active-text);box-shadow:0 1px 2px #15140f24}.jump-settings-theme button.is-active:hover,.jump-settings-theme button.is-active:focus-visible{background-color:var(--theme-option-active-bg);color:var(--theme-option-active-text)}.jump-toggle{position:relative;width:44px;height:24px;min-height:24px;padding:0;border:1px solid var(--line-strong);border-radius:999px;background:color-mix(in srgb,var(--ink) 10%,var(--surface));cursor:pointer;flex:0 0 auto;box-shadow:none;transform:none;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.jump-toggle:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--surface);border:1px solid color-mix(in srgb,var(--ink) 15%,transparent);box-shadow:0 1px 2px #15140f2e;transition:transform .18s cubic-bezier(.2,0,0,1),background-color .18s ease}.jump-toggle:hover{border-color:color-mix(in srgb,var(--ink) 28%,transparent);background:color-mix(in srgb,var(--ink) 15%,var(--surface));box-shadow:none;transform:none}.jump-toggle[aria-pressed=true]{background:var(--ink);border-color:var(--ink)}.jump-toggle[aria-pressed=true]:after{transform:translate(20px)}.jump-toggle[aria-pressed=true]:hover{background:color-mix(in srgb,var(--ink) 90%,var(--surface));border-color:var(--ink)}.jump-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.drop-overlay{position:fixed;inset:14px;z-index:10;display:none;place-items:center;border:2px dashed var(--p0);border-radius:var(--radius-lg);background:#f8faf9e6;backdrop-filter:blur(6px);color:var(--strong);font-weight:700;font-size:16px;letter-spacing:-.01em;pointer-events:none}body.dragging .drop-overlay{display:grid}body:not(.setup-mode){background:radial-gradient(circle at 2px 2px,rgba(21,20,15,.035) 1.5px,transparent 1.6px) 0 0 / 24px 24px,var(--bg)}body:not(.setup-mode) main{width:min(1320px,calc(100vw - var(--jump-sidebar-width) - var(--jump-content-gutter) - 16px));margin-left:calc(var(--jump-sidebar-width) + var(--jump-content-gutter));margin-right:auto;padding:20px 0 16px;gap:16px}body:not(.setup-mode) header{grid-template-columns:minmax(0,1fr) 340px;align-items:end;padding-bottom:12px;border-bottom:1px solid var(--line)}body:not(.setup-mode) .header-actions{width:100%;grid-template-columns:minmax(0,1fr);justify-items:end}body:not(.setup-mode) .header-game-picker{width:min(100%,340px);justify-self:end}body:not(.setup-mode) .game-select-trigger{grid-template-columns:16px minmax(0,1fr) minmax(0,auto) auto}body:not(.setup-mode) .game-select-menu{left:auto;right:0;width:100%;max-width:100%;height:auto;max-height:min(610px,calc(100vh - 112px))}body:not(.setup-mode) .title-block{gap:20px}body:not(.setup-mode) .brand-mark{gap:12px}body:not(.setup-mode) .brand-logo{width:36px;height:36px}body:not(.setup-mode) h1{font-size:clamp(42px,4vw,58px);line-height:.92}body:not(.setup-mode) .brand-tagline{padding-left:48px;font-size:13px;font-style:italic;color:var(--muted)}body:not(.setup-mode) button:not(.move-row):not(.jump-sidebar-head):not(.jump-sidebar-nav *):not(.jump-sidebar-footer *):not(.jump-toggle):not(.jump-settings-close):not(.jump-settings-theme *):not(.new-game-button):not(.play-button):not(.undo-play-button):not(.save-play-button),body:not(.setup-mode) select,body:not(.setup-mode) .field,body:not(.setup-mode) .board-wrap,body:not(.setup-mode) .panel,body:not(.setup-mode) .metric,body:not(.setup-mode) .summary-item,body:not(.setup-mode) .compact-status,body:not(.setup-mode) .game-select-trigger,body:not(.setup-mode) .game-select-menu,body:not(.setup-mode) .move-row,body:not(.setup-mode) .empty-state{border-radius:0!important;box-shadow:none!important}body:not(.setup-mode) button:not(.move-row):not(.jump-sidebar-head):not(.jump-sidebar-nav *):not(.jump-sidebar-footer *):not(.jump-toggle):not(.jump-settings-close):not(.jump-settings-theme *):not(.new-game-button):not(.play-button):not(.undo-play-button):not(.save-play-button),body:not(.setup-mode) select,body:not(.setup-mode) .field{background-color:var(--surface);border-color:var(--line-strong);font-weight:400}body:not(.setup-mode) button:not(.move-row):hover,body:not(.setup-mode) select:hover,body:not(.setup-mode) .field:hover{transform:none;border-color:var(--ink);background-color:var(--surface)}body:not(.setup-mode) .mode-tabs{gap:18px;box-shadow:none}body:not(.setup-mode) .mode-tab{min-width:0;min-height:42px;padding:10px 0;border:0;border-bottom:1px solid var(--ink);color:var(--ink-soft);background:transparent;font-size:13px;font-weight:400}body:not(.setup-mode) .mode-tab.active{padding:10px 18px;border:1px solid var(--ink);background:var(--ink);color:var(--bg)}body:not(.setup-mode) .play-actions{gap:12px}body:not(.setup-mode) .play-actions label>span,body:not(.setup-mode) .play-sim-control>span,body:not(.setup-mode) .panel-kicker,body:not(.setup-mode) .header-game-picker label,body:not(.setup-mode) .summary-item strong{color:var(--muted-soft);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}body:not(.setup-mode) .play-actions select,body:not(.setup-mode) .play-actions .undo-play-button,body:not(.setup-mode) .play-actions .save-play-button,body:not(.setup-mode) .play-actions .new-game-button{min-height:42px;padding:10px 14px;font-size:13px}body:not(.setup-mode) .play-actions .undo-play-button,body:not(.setup-mode) .play-actions .save-play-button{min-width:92px}body:not(.setup-mode) .play-actions .new-game-button{min-width:136px}body:not(.setup-mode) .new-game-button,body:not(.setup-mode) .play-button{background:var(--ink);border-color:var(--ink);color:var(--bg)}body:not(.setup-mode) .new-game-button:not(:disabled):hover,body:not(.setup-mode) .play-button:not(:disabled):hover{background:var(--ink);border-color:var(--ink);color:var(--bg);opacity:.88}.play-button:disabled,body:not(.setup-mode) .play-button:disabled,body:not(.setup-mode):not(.play-mode) .transport .play-button:disabled{background:transparent;border-color:var(--line);color:var(--muted);box-shadow:none;opacity:.34}.transport .play-button.playing,.transport .play-button.playing:not(:disabled):hover,.transport .play-button.playing:focus-visible,body:not(.setup-mode) .transport .play-button.playing,body:not(.setup-mode) .transport .play-button.playing:not(:disabled):hover,body:not(.setup-mode) .transport .play-button.playing:focus-visible{background:var(--ink)!important;border-color:var(--ink)!important;color:var(--bg)!important;opacity:1!important;box-shadow:0 0 0 1px #f6f4eeb8,0 8px 18px #15140f2e!important}body:not(.setup-mode) .undo-play-button{background:transparent;color:var(--ink)}body:not(.setup-mode) .save-play-button{background:transparent;color:var(--ink)}body:not(.setup-mode) .layout{grid-template-columns:minmax(640px,1fr) 340px;gap:var(--jump-content-gutter)}body:not(.setup-mode) .board-wrap,body:not(.setup-mode) .panel{background:color-mix(in srgb,var(--surface) 78%,transparent);border-color:var(--line-strong)}body:not(.setup-mode) .board-wrap{padding:26px 28px 20px;gap:16px}body:not(.setup-mode) .panel{border-left-color:var(--ink)}body:not(.setup-mode) .panel-section{padding:20px;gap:14px;border-bottom-color:var(--line)}body:not(.setup-mode) .compact-status{padding:0 0 16px;border:0;border-bottom:1px solid var(--line);background:transparent}body:not(.setup-mode) .summary-item span,body:not(.setup-mode) .move-row strong,body:not(.setup-mode) .card-title,body:not(.setup-mode) .metric span{font-family:Lora,Iowan Old Style,Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.025em}body:not(.setup-mode) .compact-status>div:first-child{display:flex;align-items:baseline;gap:8px;font-size:13px}body:not(.setup-mode) .compact-status b{font-family:var(--f-ui, "Work Sans", sans-serif);font-style:normal;letter-spacing:.14em}body:not(.setup-mode) .status-primary{font-size:24px}body:not(.setup-mode) .transport,body:not(.setup-mode) .controls,body:not(.setup-mode) .skip-controls{gap:10px}body:not(.setup-mode) .transport-step,body:not(.setup-mode) .controls button,body:not(.setup-mode) .skip-controls button,body:not(.setup-mode) .game-tools button,body:not(.setup-mode) .option-row button{background:transparent;border-color:var(--line-strong);color:var(--ink);font-weight:400}body:not(.setup-mode) .tabs{padding:0;gap:10px;background:transparent}body:not(.setup-mode) .tabs:before{content:none}body:not(.setup-mode) .tab{min-height:38px;padding-top:8px;padding-bottom:8px;border:0;border-bottom:1px solid var(--line-strong);background:transparent;color:var(--muted);font-weight:400}body:not(.setup-mode) .tab.active{border-color:var(--ink);color:var(--ink);background:transparent}body:not(.setup-mode) .scrubber-row{color:var(--muted);font-weight:400}body:not(.setup-mode) input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:0;background:var(--line-strong)}body:not(.setup-mode) input[type=range]::-webkit-slider-thumb{width:14px;height:14px;border-radius:0;background:var(--ink);box-shadow:none}body:not(.setup-mode) .board-info,body:not(.setup-mode) .message,body:not(.setup-mode) .subtle{color:var(--muted);font-style:italic;font-weight:300}body.watch-mode header,body.watch-mode .jump-sidebar,body.watch-mode .topline,body.watch-mode .legend,body.watch-mode #overviewView,body.watch-mode #movesView,body.watch-mode #diagnosticsView{display:none}body.watch-mode main{grid-template-rows:minmax(0,1fr)}body.watch-mode .layout{grid-template-columns:minmax(0,1fr) 300px}@media(min-width:1181px){body.play-mode:not(.setup-mode) main{width:min(1680px,calc(100vw - var(--jump-sidebar-width) - var(--jump-content-gutter) - 12px));padding:14px 0 12px;gap:10px}body.play-mode:not(.setup-mode) header{padding-bottom:8px}body.play-mode:not(.setup-mode) .layout{grid-template-columns:minmax(760px,1fr) minmax(300px,320px);gap:16px}body.play-mode:not(.setup-mode) .board-wrap{grid-template-rows:minmax(0,1fr);padding:4px 16px;gap:0}body:not(.setup-mode):not(.play-mode) main{width:min(1680px,calc(100vw - var(--jump-sidebar-width) - var(--jump-content-gutter) - 12px));padding:14px 0 12px;gap:10px}body:not(.setup-mode):not(.play-mode) .layout{grid-template-columns:minmax(760px,1fr) minmax(300px,320px);gap:16px}body:not(.setup-mode):not(.play-mode) .board-wrap{padding:14px 16px 12px;gap:10px}}.hidden{display:none!important}.panel::-webkit-scrollbar,.move-list::-webkit-scrollbar,.game-select-sections::-webkit-scrollbar,.game-browser::-webkit-scrollbar{width:8px;height:8px}.panel::-webkit-scrollbar-thumb,.move-list::-webkit-scrollbar-thumb,.game-select-sections::-webkit-scrollbar-thumb,.game-browser::-webkit-scrollbar-thumb{background:#1f343924;border-radius:999px}.panel::-webkit-scrollbar-thumb:hover,.move-list::-webkit-scrollbar-thumb:hover,.game-select-sections::-webkit-scrollbar-thumb:hover,.game-browser::-webkit-scrollbar-thumb:hover{background:#1f343942}.panel::-webkit-scrollbar-track,.move-list::-webkit-scrollbar-track,.game-select-sections::-webkit-scrollbar-track,.game-browser::-webkit-scrollbar-track{background:transparent}@media(max-width:1180px){body{height:auto;min-height:100vh;overflow:auto}main{width:min(100vw - 20px,760px);height:auto;min-height:100vh;display:block;padding-top:14px}body:not(.setup-mode) main{width:min(100vw - 20px,760px);margin:0 auto;padding-top:14px}header,.layout,.topline{grid-template-columns:1fr}body:not(.setup-mode) header{grid-template-columns:1fr}body:not(.setup-mode) .layout{grid-template-columns:1fr}header,.topline{margin-bottom:12px}.header-actions,.play-actions,.load-hint{justify-content:start;text-align:left}.header-actions{grid-template-columns:1fr}.header-playback{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.play-actions{width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto}body:not(.setup-mode) .play-actions{width:100%;min-width:0;justify-content:stretch}.layout{gap:12px}.board-wrap{height:auto}svg{width:100%;height:auto}@media(min-width:900px)and (max-height:720px){body.play-mode:not(.setup-mode){height:100vh;min-height:0;overflow:hidden}body.play-mode:not(.setup-mode) main{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1180px,calc(100vw - var(--jump-sidebar-width) - var(--jump-content-gutter) - 12px));margin-left:calc(var(--jump-sidebar-width) + var(--jump-content-gutter));margin-right:12px;height:100vh;min-height:0;padding:10px 0;gap:10px}body.play-mode:not(.setup-mode) header{margin-bottom:0;padding-bottom:8px}body.play-mode:not(.setup-mode) .layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,320px);gap:12px;height:100%;min-height:0}body.play-mode:not(.setup-mode) .board-wrap{height:100%;min-height:0;padding:4px 12px;gap:0}body.play-mode:not(.setup-mode) .board-wrap svg{width:100%;height:100%;max-height:100%;min-height:0}body.play-mode:not(.setup-mode) .panel{max-height:100%;overflow:auto}}.panel{max-height:none;overflow:visible}.move-row{grid-template-columns:36px 54px 48px minmax(90px,1fr)}.game-tools,.filter-grid,.summary-strip{grid-template-columns:1fr}.skip-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.move-row .hide-small,.move-list-head{display:none}body.watch-mode .layout{grid-template-columns:1fr}}@media(max-width:640px){.jump-setup{padding:28px 18px 56px;overflow-x:hidden}.jump-setup-inner{width:calc(100% - 18px);max-width:calc(100% - 18px);gap:36px}.jump-setup-header{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:12px}.jump-setup-actions{justify-content:space-between}.jump-app-link{width:min(100%,236px)}.jump-setup-header .brand-mark{min-width:0}.jump-setup-header .brand-logo{width:34px;height:34px}.jump-setup-wordmark{font-size:36px}.jump-setup-tagline{font-size:12px}.jump-step-heading{grid-template-columns:20px minmax(0,1fr)}.jump-step-heading p{grid-column:2}.jump-game-type-grid,.jump-side-grid{grid-template-columns:1fr;gap:12px}.jump-game-type-card,.jump-side-card{grid-template-columns:104px minmax(0,1fr);gap:14px;padding:18px 16px}.jump-game-type-card{grid-template-columns:minmax(0,1fr)}.jump-mini-board{width:100px}.jump-opponent-card{grid-template-columns:minmax(0,1fr);gap:12px;padding:16px}.jump-opponent-card em{grid-column:auto;grid-row:auto}.jump-game-type-card .jump-radio,.jump-side-card .jump-radio,.jump-opponent-card .jump-radio,.jump-opponent-card .jump-strength{display:none}.jump-card-copy strong,.jump-opponent-card strong{font-size:24px}.jump-setup-footer{display:grid;grid-template-columns:1fr;align-items:stretch}.jump-begin-button{width:100%;min-width:0;justify-content:center}body{--mobile-position-controls-height: 112px;height:100svh;min-height:100svh;overflow:hidden;background:radial-gradient(circle at 2px 2px,rgba(21,20,15,.05) 1.35px,transparent 1.45px) 0 0 / 22px 22px,linear-gradient(180deg,#faf9f5,#f1eee7)}html.setup-mode,html.setup-mode body,body.setup-mode{height:auto!important;min-height:100vh;overflow-x:hidden;overflow-y:auto!important}main{position:relative;width:100vw;max-width:100vw;margin:0!important;height:100svh;min-height:100svh;padding:4px 4px 14px;overflow:hidden}body:not(.setup-mode) main{width:100vw!important;max-width:100vw!important;margin:0!important;padding:4px 4px 14px!important;gap:0!important}body:not(.setup-mode) header{position:absolute;z-index:4;top:10px;left:8px;right:auto;grid-template-columns:minmax(0,1fr);width:calc(100vw - 16px);max-width:calc(100vw - 16px);min-width:0;overflow:hidden;gap:8px;margin-bottom:0;padding:8px;border:1px solid rgba(220,228,225,.7);border-radius:18px;background:#fffef9eb;box-shadow:0 8px 26px #15140f14}body:not(.setup-mode) header:has(.play-settings[open]),body:not(.setup-mode) header:has(.game-select-menu:not(.hidden)){z-index:70;overflow:visible}body.play-mode:has(.play-settings[open]) .panel{visibility:hidden;pointer-events:none}body:not(.setup-mode) header>*{min-width:0}h1{font-size:20px}.title-block>.brand{display:none}.subtle{display:none}.title-block{gap:0}body.play-mode .title-block{display:none}.mode-tabs{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));padding:3px;border-radius:var(--radius-pill);background:var(--surface-3)}.mode-tabs:before{top:3px;bottom:3px;left:3px;width:calc(50% - 3px)}.mode-tab{min-height:30px;min-width:0;border-radius:var(--radius-pill);padding:5px 8px;font-size:11.5px}.header-actions,.play-actions{gap:6px}.play-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;width:100%;min-width:0;overflow:hidden}body:not(.setup-mode) .play-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px;align-items:stretch;width:100%!important;max-width:100%!important;min-width:0!important;justify-content:stretch}body:not(.setup-mode) .play-actions:has(#savePlayGameBtn){grid-template-columns:repeat(4,minmax(0,1fr))!important}.play-actions>.play-settings,.play-actions>button{min-width:0;width:100%}.play-settings{display:block;position:static}.play-settings>summary{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:42px;border:1px solid var(--line);border-radius:var(--radius);background:#fffef9e6;color:var(--ink-soft);font-size:11.5px;font-weight:600;list-style:none;cursor:pointer}.play-settings>summary::-webkit-details-marker{display:none}.new-game-label-full{display:none}.new-game-label-mobile{display:inline}.play-settings[open]>summary{color:var(--ink);border-color:var(--line-strong);background:#fff}.play-settings[open]:before{content:"";position:fixed;inset:0;z-index:49;background:#15140f57;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:sheet-fade .22s ease both;pointer-events:none}.play-settings-body{position:fixed;z-index:50;left:0;right:0;bottom:0;width:100%;max-height:70svh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:grid;grid-template-columns:1fr;gap:16px;padding:28px 18px calc(22px + env(safe-area-inset-bottom));border:0;border-radius:22px 22px 0 0;background:#fffef9fa;box-shadow:0 -8px 36px #15140f29;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:sheet-up .28s cubic-bezier(.32,.72,0,1) both}.play-settings-body:before{content:"";position:absolute;top:10px;left:50%;transform:translate(-50%);width:38px;height:4px;border-radius:999px;background:#0f191c2e}.mobile-mode-section{display:none}.mobile-settings-section{display:grid;gap:10px}.jump-settings-game-type-row{display:flex}.play-settings-body .mobile-settings-field,.play-settings-body>label,.play-settings-body>.play-sim-control{width:100%}.mobile-only-setting,.mobile-theme-field{display:grid!important}.mobile-page-section{display:none!important}.mobile-sheet-label{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.mobile-sheet-heading{display:block;margin:0 0 2px;color:var(--ink);font-family:Lora,Iowan Old Style,Georgia,serif;font-style:italic;font-size:22px;font-weight:500;letter-spacing:-.005em;line-height:1.1}.mobile-settings-field{display:grid;gap:6px;width:100%;min-width:0}.mobile-settings-field>span{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.1em;line-height:1;text-transform:uppercase}.mobile-settings-field .cs,.mobile-settings-field select{width:100%}.mobile-settings-field .cs-trigger{width:100%;min-height:48px;padding:12px 16px;font-size:14px;font-weight:500;border-radius:12px}.mobile-settings-field .cs-menu{border-radius:12px}.mobile-mode-tabs{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:4px;border:1px solid var(--line);border-radius:17px;background:var(--surface-3);box-shadow:inset 0 1px #fff9}.mobile-mode-tabs:before{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:13px;background:var(--strong);box-shadow:0 6px 14px #15140f2e;transition:transform .24s cubic-bezier(.32,.72,0,1);pointer-events:none}.mobile-mode-tabs:has(.mobile-mode-tab:nth-child(2).active):before{transform:translate(100%)}.mobile-mode-tab{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;min-width:0;border:0;border-radius:13px;padding:8px;background:transparent!important;box-shadow:none!important;color:var(--muted);font-size:13px;font-weight:750}.mobile-mode-tab:hover{background:transparent!important;box-shadow:none!important}.mobile-mode-tab.active{color:#fff}.mobile-page-links{display:grid;grid-template-columns:1fr;gap:8px}.mobile-page-links a{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:13px;background:#fffef9e6;color:var(--ink);font-size:13px;font-weight:650;text-decoration:none}.mobile-page-links a:active,.mobile-page-links a:focus-visible{border-color:var(--ink);outline:none}.mobile-page-links .icon{width:18px;height:18px;color:var(--ink-soft)}.play-settings-body label>span,.play-sim-control>span{font-size:10px;letter-spacing:.1em}.play-settings-body select{min-height:44px;font-size:14px}.play-settings:not([open]) .play-settings-body{display:none}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}.header-game-picker label{display:none}.game-select-trigger{min-height:40px;border-radius:13px;padding:7px 10px;font-size:12px}.header-game-picker:before{content:"";position:fixed;inset:0;z-index:49;background:#15140f57;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:sheet-fade .22s ease both;pointer-events:none}.header-game-picker:has(.game-select-menu.hidden):before{display:none}.game-select-menu{position:fixed;inset:auto 0 0;z-index:50;width:100%;max-height:80svh;padding-top:14px;border:0;border-radius:22px 22px 0 0;background:#fffef9fa;box-shadow:0 -8px 36px #15140f29;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:sheet-up .28s cubic-bezier(.32,.72,0,1) both}.game-select-menu:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:38px;height:4px;border-radius:999px;background:#0f191c2e}.game-select-sections{max-height:calc(80svh - 18px)}.header-playback{grid-template-columns:minmax(0,1fr) 58px;gap:8px}select,.play-button,.play-settings>summary,.undo-play-button,.save-play-button,.new-game-button{min-height:48px;border-radius:13px}.play-settings>summary,.undo-play-button,.save-play-button,.new-game-button{gap:5px;width:100%;max-width:100%;min-width:0;padding-left:8px;padding-right:8px;font-size:11px;overflow:hidden}body:not(.setup-mode) .play-settings>summary,body:not(.setup-mode) .undo-play-button,body:not(.setup-mode) .save-play-button,body:not(.setup-mode) .new-game-button{min-height:48px;padding:0 8px;border-radius:13px!important;font-size:11px}body:not(.setup-mode) .play-actions>.play-settings,body:not(.setup-mode) .play-actions>button{width:100%!important;max-width:100%!important;min-width:0!important}body:not(.setup-mode) .play-actions .undo-play-button,body:not(.setup-mode) .play-actions .save-play-button,body:not(.setup-mode) .play-actions .new-game-button{padding:0 6px!important;font-size:11px!important}.play-settings>summary span,.undo-play-button span,.new-game-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions .play-button,.panel .header-playback .play-button{min-width:0;font-size:0}.header-actions .play-button:before,.panel .header-playback .play-button:before{font-size:12px;margin:0}.play-actions label>span,.play-sim-control>span{font-size:9px}.topline{margin-bottom:8px}.layout{width:100%;height:100%;gap:8px}body.play-mode .layout{animation:none!important;transform:none!important}body:not(.setup-mode) .layout{width:100%!important;height:100%!important;grid-template-columns:1fr!important;gap:0!important}.board-wrap,.panel{width:100%;border-radius:13px}.board-wrap{position:fixed;z-index:1;inset:0 0 calc(var(--mobile-position-controls-height) + 8px) 0;width:100vw;height:auto;min-height:0;padding:92px 0 4px;border:0;border-radius:0;background:radial-gradient(circle at 2px 2px,rgba(21,20,15,.03) 1.35px,transparent 1.45px) 0 0 / 22px 22px,linear-gradient(180deg,#fffef9f5,#faf9f5f2 56%,#f1eee7f0);box-shadow:none}body:not(.setup-mode) .board-wrap{position:fixed;z-index:1;inset:0 0 calc(var(--mobile-position-controls-height) + 8px) 0;width:100vw!important;height:auto;min-height:0;padding:92px 0 4px;border:0;border-radius:0!important;background:radial-gradient(circle at 2px 2px,rgba(21,20,15,.03) 1.35px,transparent 1.45px) 0 0 / 22px 22px,linear-gradient(180deg,#fffef9f5,#faf9f5f2 56%,#f1eee7f0);box-shadow:none}.board-wrap svg{width:100vw;height:calc(100svh - var(--mobile-position-controls-height) - 104px);min-height:0;max-height:none;aspect-ratio:auto}body:not(.setup-mode) .board-wrap svg{display:block;width:calc(100vw - 16px);height:calc(100svh - var(--mobile-position-controls-height) - 104px);margin:0 auto;min-height:0;max-height:none;aspect-ratio:auto}body.play-mode .board-wrap{--play-board-offset-y: clamp(48px, 8.5svh, 72px);--play-board-safe-height: calc(100svh - var(--jump-mobile-tabs-height, 68px) - 58px - var(--play-board-offset-y, 0px));display:grid;grid-template-rows:1fr;align-items:center;justify-items:center;inset:0 0 var(--jump-mobile-tabs-height, 68px) 0;padding-bottom:58px;padding-top:0}body.play-mode:not(.setup-mode) .board-wrap{--play-board-offset-y: clamp(48px, 8.5svh, 72px);--play-board-safe-height: calc(100svh - var(--jump-mobile-tabs-height, 68px) - 58px - var(--play-board-offset-y, 0px));display:grid;grid-template-rows:1fr;align-items:center;justify-items:center;inset:0 0 var(--jump-mobile-tabs-height, 68px) 0;padding-bottom:58px;padding-top:0}body.play-mode .board-wrap svg{width:min(100vw,calc(var(--play-board-safe-height) * 560 / 640));height:min(calc(100vw * 640 / 560),var(--play-board-safe-height));margin:var(--play-board-offset-y, 0) 0 0;min-height:0}body.play-mode:not(.setup-mode) .board-wrap svg{width:min(100vw,calc(var(--play-board-safe-height) * 560 / 640));height:min(calc(100vw * 640 / 560),var(--play-board-safe-height));margin:var(--play-board-offset-y, 0) 0 0;min-height:0}.board-side-label{display:none}body.play-mode{--mobile-position-controls-height: calc(var(--jump-mobile-tabs-height, 68px) + 58px);height:auto;min-height:100svh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.panel-section{gap:7px;padding:9px 10px 10px}body:not(.setup-mode) .panel-section{gap:7px;padding:9px 10px 10px}.panel{position:fixed;z-index:6;right:6px;bottom:max(4px,env(safe-area-inset-bottom));left:6px;width:auto;max-height:none;overflow:visible;border-radius:20px;border:1px solid rgba(220,228,225,.55);background:#fffef9d1;box-shadow:0 -10px 30px #15140f14;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}body.play-mode .panel{left:0!important;right:0!important;bottom:calc(var(--jump-mobile-tabs-height, 68px) + max(8px,env(safe-area-inset-bottom)))!important;width:100vw!important;max-width:100vw!important;min-width:0!important;padding:0 12px;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}body.play-mode main{min-height:calc(100svh + 1px)}.panel>details{display:none}body.play-mode .play-history-section,body.play-mode #navigationSection,body.play-mode .controls,body.play-mode .transport{display:none!important}body.play-mode .play-result-section:not([hidden]){gap:4px;padding:10px 12px 8px}body.play-mode .play-result-title{font-size:25px;line-height:1}body.play-mode .play-result-copy{max-width:none;font-size:11.5px;line-height:1.35}body:not(.play-mode) .panel-section:has(.compact-status){display:none}body.play-mode .panel-section:has(.compact-status){padding:0;border-bottom:0}body.play-mode:not(.setup-mode) .panel-section:has(.compact-status){padding:0;border-bottom:0}body.play-mode .compact-status{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:38px;min-width:0;padding:0 14px;border:1px solid rgba(21,20,15,.09);border-radius:999px;background:#fffef9c7;box-shadow:0 12px 30px -24px #15140f73;overflow:hidden;backdrop-filter:saturate(160%) blur(16px);-webkit-backdrop-filter:saturate(160%) blur(16px)}body.play-mode:not(.setup-mode) .compact-status{padding:0 14px!important}body.play-mode .compact-status>div:first-child{flex:1 1 auto;min-width:0;overflow:hidden;font-size:12.5px;flex-wrap:nowrap;white-space:nowrap}body.play-mode .compact-status .status-line{display:flex;align-items:baseline;gap:6px;overflow:hidden;flex-wrap:nowrap;min-width:0;white-space:nowrap}body.play-mode .compact-status b{flex:0 0 auto;white-space:nowrap;max-width:46vw;overflow:hidden;font-size:10px;letter-spacing:.09em;text-overflow:ellipsis}body.play-mode .compact-status #statusMove{flex:1 1 auto;min-width:0;max-width:none;overflow:hidden;color:var(--ink-soft);font-size:11px;font-weight:650;line-height:1.2;text-align:right;text-overflow:ellipsis;white-space:nowrap}body.play-mode .compact-status[data-thinking=true] #statusMove{color:var(--status-accent)}body.play-mode .compact-status #statusGame{display:none}body.play-mode .status-meta{flex-wrap:nowrap;gap:3px;overflow:hidden;white-space:nowrap}body.play-mode .status-primary,body.play-mode .status-separator,body.play-mode .status-secondary{min-width:0;overflow:hidden;font-size:12.5px;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}body.play-mode .status-separator,body.play-mode .status-secondary{display:none}body.play-mode .status-primary{max-width:100%}body.play-mode .compact-status[data-thinking=true]:after{left:0;right:0;bottom:-5px}.panel-kicker{display:none}.panel .header-playback{grid-template-columns:minmax(0,1fr) 52px;gap:6px}.panel .header-playback select{min-height:33px;border-radius:12px;padding:7px 32px 7px 11px;background-position:calc(100% - 17px) 50%,calc(100% - 11px) 50%;font-size:12px;box-shadow:none}.panel .header-playback .play-button{min-height:33px;border-radius:12px;box-shadow:0 5px 12px #1f34391c}.panel .header-playback .play-button:hover{box-shadow:0 6px 14px #1f343924}body:not(.setup-mode):not(.play-mode) .transport{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}body:not(.setup-mode):not(.play-mode) .transport .play-button{display:grid;place-items:center;min-width:0;min-height:48px;padding:0;border:1px solid var(--line-strong);border-radius:0;background:transparent;color:var(--ink);box-shadow:none;font-size:0;line-height:0;animation:none}body:not(.setup-mode):not(.play-mode) .transport .play-button:before{display:block;width:18px;height:18px;margin:0}body:not(.setup-mode):not(.play-mode) .transport .play-button.playing{background:var(--ink);border-color:var(--ink);color:var(--bg);box-shadow:none}body:not(.setup-mode):not(.play-mode) .transport .play-button:not(:disabled):hover{background:var(--surface-3);border-color:var(--line-strong);color:var(--ink);opacity:1}body:not(.setup-mode):not(.play-mode) .transport .play-button.playing:not(:disabled):hover{background:var(--ink);border-color:var(--ink);color:var(--bg);opacity:.9}body:not(.setup-mode):not(.play-mode) .transport .play-button:disabled{background:transparent;border-color:var(--line);color:var(--muted);box-shadow:none;opacity:.34}.controls{gap:6px}body.play-mode .transport{width:100%;max-width:100%;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:6px!important;justify-items:stretch;overflow:hidden}body.play-mode .transport,body.play-mode:not(.setup-mode) .transport{grid-template-columns:repeat(5,minmax(0,1fr))!important}body.play-mode:not(.setup-mode) .transport{width:100%!important;max-width:100%!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:6px!important;overflow:hidden}body.play-mode .transport-step{width:100%;min-width:0;padding:0!important}body.play-mode:not(.setup-mode) .transport-step{width:100%!important;min-width:0!important;padding:0!important}body.play-mode:not(.setup-mode) .transport .play-button{width:100%!important;min-width:0!important;padding:0 10px!important}.controls button{min-height:44px;border-radius:13px;font-size:0}body:not(.setup-mode) .controls button{min-height:44px;border-radius:13px!important}.controls button .button-icon{width:18px;height:18px;font-size:16px}.scrubber-row{display:none}body:not(.setup-mode):not(.play-mode) .scrubber-row{display:grid}.compact-status{gap:4px}body:not(.play-mode) .play-actions.play-only{display:none!important}body:not(.setup-mode):not(.play-mode){--mobile-position-controls-height: 0px;height:auto;min-height:100svh;overflow-x:hidden;overflow-y:auto}body:not(.setup-mode):not(.play-mode) main{display:block;height:auto!important;min-height:100svh!important;padding:10px 10px calc(var(--jump-mobile-tabs-height, 68px) + 34px + env(safe-area-inset-bottom))!important;overflow:visible!important}body:not(.setup-mode):not(.play-mode) header{position:sticky;top:8px;left:auto;right:auto;width:100%;max-width:100%;margin:0 0 10px}body:not(.setup-mode):not(.play-mode) .layout{display:grid;height:auto!important;gap:10px!important}body:not(.setup-mode):not(.play-mode) .board-wrap{position:relative;inset:auto;width:100%!important;height:auto;min-height:0;padding:10px 0 8px;border:1px solid var(--line-strong);border-radius:13px!important;background:color-mix(in srgb,var(--surface) 82%,transparent)}body:not(.setup-mode):not(.play-mode) .board-wrap svg{width:100%;height:auto;min-height:0;aspect-ratio:1 / 1}body:not(.setup-mode):not(.play-mode) .panel{position:relative;z-index:1;left:auto;right:auto;bottom:auto;width:100%!important;max-width:100%!important;max-height:none;overflow:visible}body:not(.setup-mode):not(.play-mode) #analysisSection .move-list{flex:none;max-height:none;overflow:visible}[data-theme=night] body{background:radial-gradient(circle at 2px 2px,rgba(240,231,210,.06) 1.35px,transparent 1.45px) 0 0 / 22px 22px,linear-gradient(180deg,var(--bg) 0%,var(--jump-paper-2) 100%)}[data-theme=night] body:not(.setup-mode) header{border-color:#f0e7d224;background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:0 8px 26px #00000047}[data-theme=night] .play-settings>summary,[data-theme=night] .mobile-page-links a{background:color-mix(in srgb,var(--surface) 86%,transparent);color:var(--ink)}[data-theme=night] .play-settings[open]>summary{background:var(--surface)}[data-theme=night] .play-settings[open]:before,[data-theme=night] .header-game-picker:before{background:#0000008f}[data-theme=night] .play-settings-body,[data-theme=night] .game-select-menu{background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:0 -8px 36px #0000005c}[data-theme=night] .play-settings-body:before,[data-theme=night] .game-select-menu:before{background:#f0e7d23d}[data-theme=night] .mobile-mode-tabs{box-shadow:inset 0 1px #f0e7d214}[data-theme=night] .mobile-mode-tab.active{color:var(--bg)}[data-theme=night] .board-wrap,[data-theme=night] body:not(.setup-mode) .board-wrap{background:radial-gradient(circle at 2px 2px,rgba(240,231,210,.045) 1.35px,transparent 1.45px) 0 0 / 22px 22px,linear-gradient(180deg,color-mix(in srgb,var(--surface) 76%,var(--bg)) 0%,var(--bg) 58%,var(--jump-paper-2) 100%)}[data-theme=night] .panel{border-color:#f0e7d224;background:color-mix(in srgb,var(--surface) 78%,transparent);box-shadow:0 -10px 30px #00000047}[data-theme=night] body.play-mode .compact-status{border-color:#f0e7d21f;background:color-mix(in srgb,var(--surface) 82%,transparent);box-shadow:0 12px 30px -24px #000000a6}}
