:root{font-family:'Avenir Next',Avenir,'Segoe UI',sans-serif;color:#3d3c37;background:#fff3e2;font-synthesis:none;--board:#fff3dc;--accent:#b84636;--accent-strong:#9e392a;--muted:#716052;--ink:#3d3c37;--sage:#d5dec5;--blue:#456a89;--lavender:#e1d5ed}*{box-sizing:border-box}body{margin:0}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #b34409;outline-offset:5px}button:disabled{cursor:default}a{color:inherit}svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}button{touch-action:manipulation}.shell{max-width:488px;margin:auto;padding:24px}.masthead{display:flex;align-items:center;justify-content:space-between}.wordmark{display:flex;align-items:center;text-decoration:none;font-size:24px;font-weight:800;letter-spacing:-1px;gap:10px}.wordmark svg{width:22px;height:22px;stroke-width:3;color:var(--accent)}.period{color:var(--accent-strong);margin-left:-9px}.icon-button{height:40px;width:40px;border:1px solid #b89c81;border-radius:50%;background:transparent;font-size:18px;font-weight:600}.icon-button:hover{background:#fbe4d9;border-color:var(--accent);color:var(--accent-strong)}.help{margin-top:24px;max-width:620px;padding:20px;background:#dce9f3;border-radius:12px;line-height:1.6}.help p{margin:8px 0 0}.layout{padding:32px 0 0}.players{display:flex;align-items:center;justify-content:space-between;padding:0 5px 20px}.player{display:flex;align-items:center;gap:12px}.player strong{font-size:14px;display:block}.player div>span{font-size:11px;color:var(--muted);display:block;margin-top:4px}.machine{text-align:right}.versus{font-size:12px;color:var(--muted);font-style:italic}.playfield{background:var(--board);border:8px solid #a4b397;padding:22px 25px 16px;border-radius:16px;color:var(--ink);box-shadow:0 15px 35px -25px #87532b26}.turn{display:flex;align-items:center;gap:8px;min-height:22px;font-size:13px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-strong)}#turn-number{margin-left:auto;font-size:12px;color:#716052;font-variant-numeric:tabular-nums}.board{display:grid;grid-template-columns:repeat(3,1fr);margin:25px 0 15px;aspect-ratio:1;gap:2px;background:#aa8764}.cell{border:0;background:var(--board);position:relative;display:grid;place-items:center;padding:12%;aspect-ratio:1;min-width:0;transition:background .18s}.cell:not(:disabled):hover{background:#ffdab0}.cell:focus-visible{outline:3px solid var(--blue);outline-offset:-6px;z-index:1}.cell svg{width:100%;height:100%;stroke-width:9;stroke-linecap:round;overflow:visible;animation:mark-in .23s cubic-bezier(.16,1,.3,1)}.cell.x{color:var(--accent-strong)}.cell.o{color:var(--blue)}.cell.winner{background:var(--sage)}.cell.last:after{content:'';width:5px;height:5px;background:var(--blue);border-radius:50%;position:absolute;bottom:8px}.cell.empty:not(:disabled):active{background:#f6cba3}.board-caption{display:flex;justify-content:space-between;font-size:11px;color:#716052;padding-top:5px;min-height:27px}.thinking .status-dot{animation:pulse .85s ease-in-out infinite alternate}.game-bottom{display:flex;align-items:center;justify-content:space-between;padding:23px 4px}.score{display:flex;gap:15px;align-items:center}.score>div{text-align:center;min-width:30px}.score div>span{display:block;font-size:21px;font-weight:650;font-variant-numeric:tabular-nums}.score small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.score-divider{font-size:18px;color:#b89c81}.new-game{color:#fff8ea;display:flex;align-items:center;gap:8px;min-height:44px;border:1px solid transparent;border-radius:9px;background:var(--accent);padding:10px 13px;font-size:12px;font-weight:600}.new-game svg{width:16px;height:16px}.new-game:hover{background:#9e392a}.decision{border-top:1px solid #d5bca5;border-bottom:1px solid #d5bca5}.decision summary{list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:56px;cursor:pointer;font-size:12px;font-weight:600}.decision summary::-webkit-details-marker{display:none}.decision summary>span:first-child{display:flex;align-items:center;gap:8px}.decision summary svg{width:17px;height:17px}.chevron{font-size:20px;font-weight:400}.decision[open] .chevron{transform:rotate(45deg)}.decision-empty,.decision-footnote{font-size:12px;color:var(--muted);line-height:1.6;margin:0 0 18px}.decision-footnote{font-size:10px;margin-top:14px}.decision-meta{display:flex;justify-content:space-between;font-size:12px;margin-bottom:15px}.probability{display:grid;grid-template-columns:85px 1fr 38px;gap:10px;align-items:center;margin:10px 0;font-size:11px}.probability meter{width:100%;height:9px;border:0}.probability meter::-webkit-meter-bar{background:#f6d6c6;border:0;border-radius:3px}.probability meter::-webkit-meter-optimum-value{background:var(--accent-strong)}.probability meter::-moz-meter-bar{background:var(--accent-strong)}.probability strong{text-align:right;font-variant-numeric:tabular-nums}.error{background:#fbe4d9;color:#7c311b;padding:14px;border-radius:10px;margin-top:14px;font-size:12px;line-height:1.5}.error button{display:block;margin-top:8px;background:none;border:0;padding:6px 0;color:inherit;text-decoration:underline;font-weight:700;min-height:40px}@keyframes mark-in{from{transform:scale(.8);opacity:.4}to{transform:scale(1);opacity:1}}@keyframes pulse{to{opacity:.35}}@media(max-width:850px){.shell{padding:22px 24px 24px}.wordmark{font-size:22px}.layout{padding:28px 0 0}.model-label,.players{padding-bottom:16px}.playfield{padding:20px 22px 14px}.board{margin-top:24px}.game-bottom{padding:20px 2px}}@media(max-width:360px){.shell{padding:18px 18px}.playfield{padding:17px}.turn{font-size:11px}.new-game{padding:8px;font-size:11px}.score{gap:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Painted bread tokens retain the same X/O silhouettes and accessible labels. */
.player-bread{width:36px;height:36px;object-fit:contain;flex:none}
.cell .bread-mark{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;animation:bread-rise .3s ease-out}
.cell.winner{background:#e2e8cc}
.thinking .status-dot{animation:dough-rise 1.2s ease-in-out infinite alternate}
@keyframes bread-rise{from{transform:translateY(5px) scale(.92);opacity:.5}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes dough-rise{from{transform:scale(.8)}to{transform:scale(1.3)}}
@media(prefers-reduced-motion:reduce){.cell .bread-mark,.thinking .status-dot{animation:none}}

/* One finite result sequence per round; resetting removes the outcome attribute. */
.board-caption{position:relative;min-height:54px;align-items:center}
.round-result{width:100%;text-align:center;transform-origin:center}
.round-result[hidden]{display:none}
.round-result strong{display:block;font-size:23px;line-height:1.2;letter-spacing:-.025em;color:var(--ink)}
.round-result span{display:block;margin-top:3px;font-size:11px;color:var(--muted)}
.playfield[data-outcome]:not([data-outcome=""]) #caption{display:none}
.playfield[data-outcome="win"] .round-result{animation:batch-win .7s cubic-bezier(.16,1,.3,1)}
.playfield[data-outcome="draw"] .round-result{animation:batch-draw .65s ease-out}
.playfield[data-outcome="lose"] .round-result{animation:batch-lose .6s ease-out}
.playfield[data-outcome="win"] .winner .bread-mark{animation:bread-celebrate .85s ease-in-out}
.playfield[data-outcome="lose"] .winner .bread-mark{animation:bread-celebrate .7s ease-in-out}
.playfield[data-outcome="draw"] .bread-mark{animation:bread-settle .6s ease-in-out}
.playfield[data-outcome="draw"] .cell:nth-child(3n+2) .bread-mark{animation-delay:.08s}
.playfield[data-outcome="draw"] .cell:nth-child(3n) .bread-mark{animation-delay:.16s}
.playfield[data-outcome="win"] .round-result strong{color:#476039}
.playfield[data-outcome="lose"] .round-result strong{color:var(--accent-strong)}
@keyframes batch-win{0%{transform:scale(.75) rotate(-5deg);opacity:0}55%{transform:scale(1.08) rotate(2deg);opacity:1}100%{transform:scale(1) rotate(0)}}
@keyframes batch-draw{0%{transform:translateY(8px);opacity:0}55%{transform:translateY(-3px);opacity:1}100%{transform:translateY(0)}}
@keyframes batch-lose{0%{transform:translateX(-7px);opacity:0}30%{transform:translateX(5px);opacity:1}60%{transform:translateX(-3px)}100%{transform:translateX(0)}}
@keyframes bread-celebrate{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-9px) rotate(-7deg)}65%{transform:translateY(-3px) rotate(5deg)}}
@keyframes bread-settle{0%,100%{transform:translateY(0)}45%{transform:translateY(-5px)}}
@media(prefers-reduced-motion:reduce){.round-result,.playfield .cell .bread-mark{animation:none!important}}

/* Six painted poses per sheet, read across each row. No whole-image transforms. */
.crumb-character{display:block;width:76px;height:76px;flex:none;background:url('assets/crumb-baker.webp') center/contain no-repeat;user-select:none}
.crumb-character[data-mood="thinking"],.crumb-character[data-mood="win"],.crumb-character[data-mood="lose"],.crumb-character[data-mood="draw"]{background-size:300% 200%;animation:crumb-reaction 2s steps(1,end) both}
.crumb-character[data-mood="thinking"]{background-image:url('assets/crumb-thinking.webp');animation-name:crumb-frames;animation-duration:1.2s;animation-iteration-count:infinite}
.crumb-character[data-mood="win"]{background-image:url('assets/crumb-win.webp');animation-name:crumb-victory;animation-duration:2.4s;animation-iteration-count:3}
.crumb-character[data-mood="lose"]{background-image:url('assets/crumb-lose.webp')}
.crumb-character[data-mood="draw"]{background-image:url('assets/crumb-draw.webp')}
.crumb-character.motion-paused{animation-play-state:paused}
@keyframes crumb-frames{0%{background-position:0% 0%}16.667%{background-position:50% 0%}33.334%{background-position:100% 0%}50%{background-position:0% 100%}66.667%{background-position:50% 100%}83.334%,100%{background-position:100% 100%}}
@media(prefers-reduced-motion:reduce){.crumb-character[data-mood]{animation:none;background-position:0% 0%}}

@keyframes crumb-reaction{0%{background-position:0% 0%}16.667%{background-position:50% 0%}33.334%{background-position:100% 0%}50%{background-position:0% 100%}66.667%{background-position:50% 100%}83.334%,100%{background-position:100% 100%}}
@keyframes crumb-victory{0%{background-position:0% 0%}12%{background-position:50% 0%}24%{background-position:100% 0%}42%{background-position:0% 100%}56%{background-position:50% 100%}70%{background-position:0% 100%}82%,100%{background-position:100% 0%}}

/* Soft bakery lettering, with evenly weighted player artwork. */
@font-face{font-family:Fraunces;src:url('data:font/woff2;base64,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') format('woff2');font-style:normal;font-weight:600;font-display:block}
.wordmark{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:30px;letter-spacing:-.03em;line-height:1.15;gap:6px;white-space:nowrap}
.wordmark-amp{color:var(--accent);font-size:.86em}
.masthead{gap:16px}
.icon-button{flex-shrink:0}
.players{padding-left:0;padding-right:0}
.player{gap:8px}
.player-bread{width:56px;height:56px}
.crumb-character{width:76px;height:76px}
@media(max-width:360px){.wordmark{font-size:27px}.player-bread{width:50px;height:50px}.crumb-character{width:68px;height:68px}.player{gap:6px}}

/* A static character-led tutorial overlay; the game remains behind it. */
.tutorial{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:24px 0 max(24px,env(safe-area-inset-bottom));border:0;background:#fff3e2;color:var(--ink);overflow:auto}
.tutorial[open]{display:flex;flex-direction:column;align-items:center;gap:12px}
.tutorial::backdrop{background:#30281b55}
.tutorial-top{order:0;display:flex;align-items:center;justify-content:space-between;width:min(520px,calc(100% - 40px));margin:0 auto}
#tutorial-progress{font-size:13px;font-weight:600;color:var(--muted)}
.tutorial-board{order:1;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:#aa8764;margin:auto auto;width:min(240px,55vw,32dvh);aspect-ratio:1;flex-shrink:0}
.tutorial-cell{border:0;background:var(--board);padding:14%;display:grid;place-items:center;min-width:0;aspect-ratio:1}
.tutorial-cell:not(:disabled):hover{background:#ffdab0}
.tutorial-cell .bread-mark{width:100%;height:100%;object-fit:contain}
.tutorial-winning{background:#e2e8cc}
.tutorial .tutorial-hint{order:2;text-align:center;font-size:13px;color:var(--muted);margin:0 20px}
.tutorial-guide{order:3;display:flex;align-items:center;gap:12px;width:min(720px,100%);margin:16px auto 0;min-height:220px}
.tutorial-guide .crumb-character{width:clamp(150px,30vw,260px);height:clamp(180px,34vw,300px);margin-left:-28px;flex:none;background:url('assets/crumb-baker.webp') center/contain no-repeat;animation:none}
.tutorial-speech{position:relative;flex:1;min-width:0;margin-right:24px;background:#fffaf0;border:1px solid #c7b394;border-radius:16px;padding:22px;box-shadow:0 10px 24px -18px #69452d66}
.tutorial-speech::before{content:'';position:absolute;width:16px;height:16px;left:-9px;top:calc(50% - 8px);background:#fffaf0;border-left:1px solid #c7b394;border-bottom:1px solid #c7b394;transform:rotate(45deg)}
.tutorial h2{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:26px;line-height:1.15;margin:0 0 10px}
.tutorial p{font-size:16px;line-height:1.5;margin:0}
.tutorial-actions{order:4;display:flex;justify-content:space-between;gap:16px;width:min(520px,calc(100% - 40px));margin:8px auto 0}
.tutorial-actions .new-game{margin-left:auto;min-width:140px;justify-content:center;font-size:14px}
.tutorial-back{border:0;background:transparent;color:var(--muted);padding:10px;font-size:14px;min-height:44px}
@media(max-width:480px){.tutorial-guide{gap:4px}.tutorial-speech{padding:16px;margin-right:16px}.tutorial h2{font-size:22px}.tutorial p{font-size:14px}.tutorial-guide .crumb-character{width:140px;height:200px;margin-left:-30px}}
@media(max-height:650px){.tutorial{padding-top:12px;gap:8px}.tutorial-guide{min-height:180px}.tutorial-guide .crumb-character{height:170px}.tutorial-board{width:min(180px,28dvh)}}

/* Purpose-drawn waist-up guide, with room for readable mobile dialogue. */
.tutorial[open]{gap:8px}
.tutorial-board{width:min(250px,62vw,32dvh);margin:24px auto 8px}
.tutorial-guide{align-items:center;gap:8px;margin:24px auto 0;min-height:240px;width:min(620px,100%)}
.tutorial-portrait{display:block;width:clamp(156px,44vw,250px);height:auto;flex:none;margin-left:-20px;align-self:center;object-fit:contain;user-select:none}
.tutorial-speech{padding:18px;margin-right:20px;box-shadow:none}
.tutorial h2{font-size:24px}
.tutorial-actions{margin:24px auto 0;padding-bottom:4px}
@media(max-width:480px){.tutorial h2{font-size:22px}.tutorial-speech{padding:16px;margin-right:16px}.tutorial p{font-size:15px;line-height:1.5}}
@media(max-width:360px){.tutorial-portrait{width:138px;margin-left:-22px}.tutorial-speech{padding:14px;margin-right:12px}.tutorial h2{font-size:20px}.tutorial p{font-size:14px}}
@media(min-height:760px){.tutorial-guide{margin-top:auto}.tutorial-actions{margin-bottom:8px}}
@media(max-height:650px){.tutorial-board{margin-top:8px;width:min(180px,28dvh)}.tutorial-guide{margin-top:12px;min-height:200px}.tutorial-actions{margin-top:12px}}

/* Keep the guide connected to the board, with a different stance per lesson. */
.tutorial-guide{margin:8px auto 0;min-height:0;align-items:center;gap:0}
.tutorial-portrait{width:clamp(194px,55vw,300px);margin-left:-24px;transform-origin:45% 85%;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.tutorial-speech{margin-right:18px;padding:16px}
.tutorial-actions{margin-top:22px}
.tutorial[data-step="1"] .tutorial-portrait{transform:translateY(-10px) rotate(5deg)}
.tutorial[data-step="2"] .tutorial-portrait{transform:translateY(-6px) rotate(-5deg) scale(1.06)}
.tutorial.practice-placed .tutorial-portrait{transform:translateY(-8px) rotate(-3deg)}
@media(max-width:480px){.tutorial-portrait{width:50vw;min-width:174px;margin-left:-22px}.tutorial-speech{padding:14px;margin-right:16px}.tutorial-guide{margin-top:8px}.tutorial h2{font-size:21px}}
@media(max-width:360px){.tutorial-portrait{width:166px;min-width:0;margin-left:-24px}.tutorial-speech{padding:12px;margin-right:12px}.tutorial h2{font-size:19px}}
@media(min-height:760px){.tutorial-guide{margin-top:12px}.tutorial-actions{margin-bottom:8px}}

/* Content-sized lesson, with genuinely different illustrated poses. */
.tutorial{width:min(560px,100%);height:auto;max-height:calc(100dvh - 24px);margin:auto;padding:16px 0 20px;border-radius:16px;overflow-x:hidden;overflow-y:auto}
.tutorial[open]{gap:8px}
.tutorial-board{width:min(220px,54vw,30dvh);margin:8px auto 2px}
.tutorial-guide{margin:6px auto 0;min-height:0}
.tutorial-portrait{height:auto;transition:none}
.tutorial[data-step] .tutorial-portrait,.tutorial.practice-placed .tutorial-portrait{transform:none}
.tutorial-actions{margin:10px auto 0;padding:0}
.tutorial-speech{padding:14px}
@media(min-height:760px){.tutorial-guide{margin-top:6px}.tutorial-actions{margin-bottom:0}}
@media(max-height:650px){.tutorial-guide{min-height:0;margin-top:6px}.tutorial-actions{margin-top:8px}}
.tutorial{height:fit-content}

/* Reserve the portrait before download or decode, including hidden-dialog layout. */
.tutorial-portrait{aspect-ratio:1 / 1;height:auto;object-fit:contain}

/* Persistent decoded layers prevent an empty frame when the lesson changes. */
.tutorial-portrait{position:relative}
.tutorial-pose{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none}
.tutorial-pose.is-current{opacity:1}

/* Outlined brand lettering is present at first paint; no fallback-font swap. */
.wordmark .wordmark-art{display:block;width:218px;height:39px;fill:currentColor;stroke:none;color:var(--ink);flex:none}
.wordmark .wordmark-art .wordmark-amp{fill:var(--accent)}
@media(max-width:360px){.wordmark .wordmark-art{width:196px;height:35px}}

.icon-button{color:var(--ink);transition:background-color .15s,border-color .15s,color .15s}
.icon-button:active{background:#f6d6c6;border-color:var(--accent-strong);color:var(--accent-strong)}

/* Quiet disclosure: the label and toggle respond, not the whole row. */
.decision{border-color:#b6c3a8}
.decision summary{color:var(--muted);background:transparent;transition:color .15s}
.decision summary svg{color:#607c4f;transition:color .15s}
.decision .chevron{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#476039;transition:background-color .15s,color .15s,transform .15s}
.decision[open] summary{color:#3e5734}
@media(hover:hover){
  .decision summary:hover{color:#3e5734}
  .decision summary:hover svg{color:#3e5734}
  .decision summary:hover .chevron{background:#e2e8cc;color:#3e5734}
}
.decision summary:active{color:#3e5734}
.decision summary:focus-visible{outline:2px solid #607c4f;outline-offset:4px;border-radius:4px;color:#3e5734}
.probability meter{background:#e2e8cc;border-radius:3px}
.probability meter::-webkit-meter-bar{background:#e2e8cc}
.probability meter::-webkit-meter-optimum-value{background:#607c4f}
.probability meter::-moz-meter-bar{background:#607c4f}

/* Compact header wallet; account actions stay behind the address. */
.header-wallet{flex-shrink:0;position:relative}
.wallet{margin-top:0}
.wallet-button{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid #b6c3a8;border-radius:9px;background:transparent;color:#3e5734;font-size:12px;font-weight:600;cursor:pointer;list-style:none}
.wallet-button::-webkit-details-marker{display:none}
.wallet-button:hover:not(:disabled){background:#e2e8cc;border-color:#607c4f}
.wallet-button:disabled,.new-game:disabled{opacity:.55;cursor:default}
.wallet-button[hidden],.wallet-account[hidden],.wallet-install[hidden]{display:none}
.wallet-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:5;padding:6px;border:1px solid #b6c3a8;border-radius:9px;background:#fff3e2;min-width:160px}
.wallet-menu button{width:100%;min-height:44px;padding:8px;border:0;border-radius:5px;background:transparent;color:var(--accent-strong);font-size:12px;text-align:left}
.wallet-menu button:hover{background:#fbe4d9}
.wallet-status{margin:12px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
.wallet-status:empty{display:none}
.wallet-install{display:inline-block;padding:10px 0;font-size:12px;color:var(--accent-strong);text-underline-offset:3px}
.board-caption{align-items:center;gap:12px}
.game-bottom>.icon-button{width:44px;height:44px;flex-shrink:0;border:1px solid #b89c81;border-radius:50%;background:transparent;font-size:14px;color:var(--muted)}
.game-bottom>.icon-button:hover,.game-bottom>.icon-button:active{background:#fbe4d9;border-color:var(--accent);color:var(--accent-strong)}
.board-caption>#caption{min-width:0}
@media(max-width:380px){.masthead{gap:10px}.masthead .wordmark-art{width:178px;height:auto}.wallet-button{padding:8px;font-size:11px}}
@media(max-width:340px){.masthead .wordmark-art{width:156px}}

/* Reserve layout while restoring, without painting a disconnected state first. */
.wallet-loading .header-wallet,.wallet-loading #status,.wallet-loading #caption,.wallet-loading #new-game{visibility:hidden}

.game-bottom{gap:12px}
.game-bottom>.icon-button{margin-left:auto}
.game-bottom{gap:8px}.game-bottom .score{gap:10px}.game-bottom>.new-game{flex-shrink:0;white-space:nowrap}
@media(max-width:360px){.game-bottom{gap:4px}.game-bottom .score{gap:6px}.game-bottom .score>div{min-width:24px}.game-bottom>.new-game{padding:10px 9px;gap:6px}}

#new-game[data-connect="true"] svg{display:none}

.wallet-status{overflow-wrap:anywhere}

/* The scorebook joins Help; narrow screens get a full second control row. */
.game-bottom{display:grid;grid-template-columns:1fr auto auto;gap:12px}
.game-tools{display:flex;gap:6px;align-items:center}
.game-tools .icon-button{width:44px;height:44px;display:grid;place-items:center;color:var(--muted);font-size:14px}
.game-tools svg{width:20px;height:20px}
.stats-dialog{--scorebook-paper:#fffaf0;--scorebook-sage:#e2e8d5;--scorebook-rule:#ddd4c1;--scorebook-green:#425837;width:min(800px,calc(100% - 40px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:16px;background:var(--scorebook-paper);color:var(--ink);box-shadow:0 24px 80px -24px #30281b66;overflow:hidden;overscroll-behavior:contain}
.stats-dialog[open]{display:flex;flex-direction:column}
.stats-dialog::backdrop{background:#30281b80}
.stats-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:28px 32px 24px;background:var(--scorebook-sage);flex:none}
.stats-header h2{font-family:Fraunces,Georgia,serif;font-size:34px;line-height:1.15;font-weight:600;margin:0;letter-spacing:-.025em}
.stats-header .icon-button{width:44px;height:44px;border-color:#a5b096;color:var(--scorebook-green);display:grid;place-items:center;margin-top:1px}
.stats-header .icon-button:hover{background:#d3ddc5;border-color:var(--scorebook-green)}
.stats-header .icon-button:active{background:#c6d2b8}
.stats-header .icon-button svg{width:18px;height:18px}
.stats-intro{margin:8px 0 0;color:#526147;font-size:14px;line-height:1.5}
.stats-scroll{padding:28px 32px;overflow-y:auto;overscroll-behavior:contain;min-height:0}
#stats-content{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.2fr);grid-template-areas:"record ranking" "global ranking";grid-template-rows:auto 1fr;gap:28px 32px;align-items:start}
.stats-dialog h3{margin:0;font-size:16px;font-weight:650;line-height:1.4}
.stats-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.stats-section-heading img{width:36px;height:36px;object-fit:contain;flex:none}
.stats-record{grid-area:record;background:#f0eadb;padding:20px;border-radius:12px}
.stats-note{font-size:13px;line-height:1.6;color:var(--muted);margin:12px 0 0;max-width:32ch}
.stat-grid{margin:0}
.stat-grid>div{min-width:0}
.stat-grid dt{font-size:12px;line-height:1.4;color:var(--muted)}
.stat-grid dd{font-weight:650;font-variant-numeric:tabular-nums;line-height:1.15;margin:0;overflow-wrap:anywhere}
.personal-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}
.personal-stats>div{display:flex;flex-direction:column-reverse;gap:6px}
.personal-stats dd{font-size:30px}
.personal-stats>div:first-child dd{color:var(--scorebook-green)}
.personal-stats>div:last-child dd{color:var(--accent-strong)}
.record-breakdown{display:flex;height:5px;gap:3px;margin-top:20px;overflow:hidden;border-radius:3px}
.record-breakdown>span{min-width:0;border-radius:2px}
.record-wins{background:#738765}.record-draws{background:#b49c77}.record-losses{background:#b84636}
.stats-connect{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:44px;padding:10px 0 0;margin-top:12px;border:0;background:none;color:var(--accent-strong);font-size:13px;font-weight:650;text-align:left}
.stats-connect svg{width:18px;height:18px;flex:none}
.stats-connect:hover{color:var(--ink)}
.stats-connect:active{color:var(--accent)}
.stats-global{grid-area:global;padding:0 4px}
.stats-global h3{font-size:15px}
.global-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px;margin-top:18px}
.global-stats>div{display:flex;flex-direction:column-reverse;gap:5px}
.global-stats dd{font-size:22px}
.stats-ranking{grid-area:ranking;min-width:0;padding-left:28px;border-left:1px solid var(--scorebook-rule)}
.stats-ranking h3{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:24px;letter-spacing:-.015em}
.ranking-cup{width:24px;height:24px;flex:none;color:#826637}
.leaderboard{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums;margin-top:20px}
.leaderboard th,.leaderboard td{text-align:right;padding:14px 5px;border-bottom:1px solid var(--scorebook-rule);white-space:nowrap}
.leaderboard thead th{padding:0 5px 12px;font-size:12px;color:var(--muted);font-weight:500}
.leaderboard th:nth-child(2){text-align:left;font-weight:500}
.leaderboard th:first-child,.leaderboard td:first-child{text-align:left;padding-left:8px;width:32px}
.leaderboard th:last-child,.leaderboard td:last-child{padding-right:8px}
.leaderboard tbody th{font-size:12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.leaderboard tbody td:nth-child(3){font-weight:700;color:var(--scorebook-green)}
.leaderboard tbody tr:last-child>:is(th,td){border-bottom:0}
.leaderboard tbody tr:first-child .leaderboard-rank{color:#826637;font-weight:750}
.leaderboard-rank{font-size:13px;color:var(--muted)}
.leaderboard-player{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.leaderboard-you{font:600 11px/1.2 'Avenir Next',Avenir,'Segoe UI',sans-serif;color:var(--scorebook-green)}
.leaderboard .is-you>:is(th,td){background:var(--scorebook-sage);border-bottom-color:transparent}
.leaderboard .is-you>:first-child{border-radius:7px 0 0 7px}
.leaderboard .is-you>:last-child{border-radius:0 7px 7px 0}
.stats-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:260px;text-align:center;padding:24px 12px 12px}
.stats-empty img{width:112px;height:112px;object-fit:contain;margin-bottom:14px}
.stats-empty strong{font-family:Fraunces,Georgia,serif;font-size:22px;line-height:1.3;font-weight:600}
.stats-empty p{font-size:13px;line-height:1.6;color:var(--muted);max-width:24ch;margin:8px 0 0}
.stats-status{font-size:14px;line-height:1.6;color:var(--muted);margin:0 0 20px}
.stats-status:empty{display:none}
.stats-status[data-error="true"]{color:var(--accent-strong)}
.stats-dialog [hidden],#stats-content[hidden]{display:none}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:640px){
 .stats-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}
 .stats-header{padding:24px;gap:16px}
 .stats-header h2{font-size:30px}
 .stats-scroll{padding:24px}
 #stats-content{grid-template-columns:minmax(0,1fr);grid-template-areas:"record" "ranking" "global";grid-template-rows:auto auto auto;gap:28px}
 .stats-record{padding:18px 20px}
 .stats-record .stats-note{max-width:none;margin-top:8px}
 .personal-stats{margin-top:18px;gap:20px}
 .personal-stats dd{font-size:30px}
 .stats-ranking{padding:0;border-left:0}
 .stats-ranking h3{font-size:23px}
 .stats-empty{min-height:220px;padding-top:18px}
 .stats-empty img{width:96px;height:96px}
 .stats-global{padding:24px 0 0;border-top:1px solid var(--scorebook-rule)}
 .global-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 12px}
}
@media(max-width:420px){.game-bottom{grid-template-columns:1fr auto;gap:16px 12px}.game-bottom>.score{justify-self:start}.game-tools{justify-self:end}.game-bottom>.new-game{grid-column:1/-1;justify-content:center;width:100%}}
@media(max-width:360px){
 .stats-header{padding:20px 16px}
 .stats-header h2{font-size:27px}
 .stats-intro{font-size:13px}
 .stats-scroll{padding:20px 16px}
 .stats-record{padding:16px}
 .personal-stats{gap:12px}
 .personal-stats dd{font-size:27px}
 .leaderboard{font-size:12px}
 .leaderboard th,.leaderboard td{padding-left:4px;padding-right:4px}
 .leaderboard tbody th{font-size:11px}
 .global-stats dd{font-size:20px}
}
