.listen-bar{z-index:20;padding:6px 16px calc(6px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--line);font-family:var(--font-ui);position:fixed;inset:auto 0 0}.listen-bar-row,.listen-notice{max-width:calc(40rem - 32px);margin-inline:auto}.listen-bar-row{justify-content:space-between;align-items:center;gap:8px;min-height:56px;display:flex}.listen-group{align-items:center;gap:8px;display:flex}.listen-bar button{min-width:var(--touch);height:var(--touch);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);font:500 var(--text-label) / 1 var(--font-ui);font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color var(--duration-state) var(--ease-standard), transform var(--duration-press) var(--ease-out);place-items:center;padding:0;display:grid}.listen-bar button:hover{border-color:var(--ink-3)}.listen-bar button:active{transform:scale(.95)}.listen-bar button.listen-play{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.listen-bar button.listen-play:hover{filter:brightness(1.08)}.listen-bar button[aria-disabled=true]{color:var(--ink-3);opacity:.45;cursor:default}.listen-bar button[aria-disabled=true]:hover{border-color:var(--line)}.listen-notice{color:var(--ink-2);font-size:var(--text-caption);padding-top:6px}@media (width>=881px){.article .listen-bar-row,.article .listen-notice{max-width:calc(40rem - 48px)}}@media (width>=1001px){.game .listen-bar{grid-template-columns:var(--board-size) minmax(0, var(--text-column));justify-content:center;column-gap:var(--game-gap);padding-inline:var(--game-gutter);display:grid}.game .listen-bar>*{grid-column:2;width:100%;max-width:none}}.listen-anchor{position:relative}.listen-bar button.listen-settings-button{gap:4px;padding-inline:10px;display:flex}.listen-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;width:min(23rem,100vw);max-height:min(60dvh,28rem);padding:8px 12px 12px;position:absolute;bottom:calc(100% + 12px);right:0;overflow-y:auto}.listen-section h3{color:var(--ink);font:600 var(--text-label) / 1.2 var(--font-ui);padding:8px 0 6px}.listen-chips{flex-wrap:wrap;gap:4px;display:flex}.listen-bar button.listen-chip{flex:1 1 var(--touch);font-size:var(--text-small);padding-inline:2px}.listen-bar button.listen-chip[aria-checked=true],.listen-bar button.listen-voice[aria-checked=true]{background:var(--line);border-color:var(--line);color:var(--ink);font-weight:600}.listen-region{color:var(--ink-3);font-size:var(--text-small);padding:8px 0 2px}.listen-bar button.listen-voice{width:100%;height:auto;min-height:var(--touch);text-align:left;border-color:#0000;justify-content:space-between;gap:12px;padding:8px 12px;display:flex}.listen-bar button.listen-voice:hover{background:var(--ground)}.listen-voice-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (width<=699px){.listen-anchor{position:static}.listen-panel{width:auto;padding-inline:max(12px, env(safe-area-inset-left,0px));border-width:1px 0;border-radius:0;bottom:calc(100% + 1px);left:0}}.listen-action{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.listen-button[aria-pressed=true]{background:var(--accent-wash);border-color:var(--accent-wash);color:var(--accent);font-weight:600}.listen-button[aria-disabled=true]{color:var(--ink-3);cursor:default}.listen-button[aria-disabled=true]:hover{border-color:var(--line)}.listen-button[aria-disabled=true]:active{transform:none}.listen-note{color:var(--ink-3);font-size:var(--text-caption)}.brand{min-height:var(--touch);color:var(--ink);-webkit-tap-highlight-color:transparent;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{transition:transform var(--duration-press) var(--ease-out);border-radius:22.5%;flex:none;display:block}@media (prefers-reduced-motion:no-preference){.brand:active .brand-mark{transform:scale(.94)}}.brand-word{font:600 1.1875rem / 1 var(--font-display);letter-spacing:-.01em;white-space:nowrap}.brand-word-chess{color:var(--accent)}.sound-toggle{width:var(--bar-control);height:var(--bar-control);background:var(--panel);border:1px solid var(--line);color:var(--ink-2);cursor:pointer;transition:border-color var(--duration-state) var(--ease-standard), color var(--duration-state) var(--ease-standard);border-radius:8px;flex:none;place-items:center;padding:0;display:grid;position:relative}.sound-toggle:after{content:"";inset:calc((var(--bar-control) - var(--touch)) / 2);position:absolute}.sound-toggle[aria-pressed=false]{color:var(--ink-3)}.sound-toggle:hover{border-color:var(--ink-3);color:var(--ink)}.sound-toggle svg{transition:transform var(--duration-press) var(--ease-out)}@media (prefers-reduced-motion:no-preference){.sound-toggle:active svg{transform:scale(.86)}}.theme-toggle{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:2px;display:inline-flex}.theme-toggle button{width:40px;height:calc(var(--bar-control) - 6px);color:var(--ink-3);cursor:pointer;transition:background-color var(--duration-state) var(--ease-standard), color var(--duration-state) var(--ease-standard);background:0 0;border:0;border-radius:5px;place-items:center;padding:0;display:grid;position:relative}.theme-toggle button:after{content:"";inset:calc((var(--bar-control) - 6px - var(--touch)) / 2) 0;position:absolute}.theme-toggle button:hover{color:var(--ink)}.theme-toggle button[aria-pressed=true]{background:var(--line);color:var(--ink)}.theme-toggle svg{transition:transform var(--duration-press) var(--ease-out)}@media (prefers-reduced-motion:no-preference){.theme-toggle button:active svg{transform:scale(.86)}}@media (pointer:coarse){.theme-toggle button{width:var(--touch)}}:root{--bar-h:56px;--bar-control:40px}.app-bar{--column:40rem;--column-inset:16px;--gutter:16px;justify-content:space-between;align-items:center;gap:0 var(--space-md);min-height:var(--bar-h);padding-inline:max(var(--gutter), calc((100% - var(--column)) / 2 + var(--column-inset)));background:var(--ground);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.app-bar[data-width=reading]{--column:44rem;--column-inset:24px;--gutter:24px}:root:has(main.article) .app-bar[data-width=reading]{--column:40rem}.app-bar-lead{align-items:center;gap:var(--space-lg);min-width:0;display:flex}.back{min-height:var(--touch);color:var(--ink-2);font-size:var(--text-label);white-space:nowrap;transition:color var(--duration-state) var(--ease-standard);align-items:center;gap:6px;font-weight:500;text-decoration:none;display:inline-flex}.back svg{transition:transform var(--duration-state) var(--ease-out)}.back:hover{color:var(--ink)}@media (prefers-reduced-motion:no-preference){.back:hover svg{transform:translate(-2px)}}.app-bar-end{justify-content:flex-end;align-items:center;gap:var(--space-lg);min-width:0;display:flex}.app-bar-tools,.page-tools{align-items:center;gap:var(--space-sm);display:flex}.app-bar-settings{align-items:center;gap:var(--space-xs);display:flex}.modes{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:2px;display:inline-flex}.modes a{min-width:88px;min-height:calc(var(--bar-control) - 6px);color:var(--ink-2);font-size:var(--text-label);transition:background-color var(--duration-state) var(--ease-standard), color var(--duration-state) var(--ease-standard);border-radius:5px;place-items:center;font-weight:500;text-decoration:none;display:grid;position:relative}.modes a:after{content:"";inset:calc((var(--bar-control) - 6px - var(--touch)) / 2) 0;position:absolute}.modes a:hover{color:var(--ink)}.modes a[aria-current=page]{background:var(--accent-wash);color:var(--accent);font-weight:600}.app-bar .listen-button,.page-tools .listen-button{min-height:var(--bar-control);padding-block:0;position:relative}.app-bar .listen-button:after,.page-tools .listen-button:after{content:"";inset:calc((var(--bar-control) - var(--touch)) / 2) 0;position:absolute}.page-tools{display:none}@media (width>=1001px){html{scroll-padding-top:calc(var(--bar-h) + 24px)}.app-bar{z-index:30;flex-wrap:nowrap;position:sticky;top:0}.app-bar[data-width=wide]{grid-template-columns:var(--board-size) minmax(0, var(--text-column));justify-content:center;column-gap:var(--game-gap);padding-inline:var(--game-gutter);display:grid}.app-bar[data-width=wide] .app-bar-end{justify-content:space-between}.app-bar-tools,.app-bar .listen-action{flex-wrap:nowrap}.app-bar .listen-note{max-width:22ch;font-size:var(--text-small);line-height:1.2}}@media (width>=1001px) and (width<=1120px),(width<=600px){.app-bar .listen-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-bar .listen-button{min-width:var(--touch);padding-inline:0}}@media (width<=1000px){.page-tools{row-gap:var(--space-xs);margin-top:var(--space-md);flex-wrap:wrap;display:flex}:root:has(.page-tools) .app-bar-tools{display:none}.app-bar[data-back] .brand-word{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-bar[data-back] .app-bar-lead{gap:var(--space-md)}html:has(.game-board){scroll-padding-top:calc(42dvh + 24px)}html:has(.game-board[data-hidden=true]){scroll-padding-top:96px}}@media (width<=880px){.app-bar[data-width=reading]{--column-inset:16px;--gutter:16px}}@media (width<=1000px) and (height<=560px) and (orientation:landscape){html:has(.game-board){scroll-padding-top:16px}html:has(.game-board[data-hidden=true]){scroll-padding-top:16px}}@media (width<=600px){.app-bar-end{gap:var(--space-xs)}}:root{--board-coord:1.375rem}@media (width<=1000px){:root{--board-coord:1rem}}.board-frame{grid-template-columns:minmax(0,1fr);grid-template-rows:auto var(--board-coord);display:grid;position:relative}.board-grid{grid-area:1/1}.board-ranks,.board-files{margin:0;padding:0;list-style:none;display:grid}.board-ranks{width:var(--board-coord);grid-area:1/1/2/2;grid-template-rows:repeat(8,1fr);position:absolute;top:0;bottom:0;right:100%}.board-files{grid-area:2/1;grid-template-columns:repeat(8,1fr)}.board-ranks li,.board-files li{color:var(--accent);font:600 12px / 1 var(--font-ui);font-variant-numeric:lining-nums tabular-nums;place-items:center;display:grid}@property --board-last-paint{syntax:"<color>";inherits:false;initial-value:#0000}@keyframes board-last-in{0%{--board-last-paint:transparent}}[data-squares] .square-ref{-webkit-text-decoration:underline dotted color-mix(in oklab, var(--accent) 55%, transparent);text-decoration:underline dotted color-mix(in oklab, var(--accent) 55%, transparent);text-underline-offset:.24em;cursor:pointer;transition:background-color var(--duration-state) var(--ease-standard), text-decoration-color var(--duration-state) var(--ease-standard);border-radius:3px;margin-inline:-.08em;padding-inline:.08em;text-decoration-thickness:1.5px}@media (hover:hover){[data-squares] .square-ref:hover{background-color:var(--highlighter);text-decoration-color:#0000}}@media (width<=1000px) and (not ((height<=560px) and (orientation:landscape))){.game-board[data-hidden=true]+.game-text .square-ref{cursor:auto;text-decoration-line:none}}.train-actions .train-action{font-size:var(--text-caption);gap:6px;padding-inline:10px}@media (width<=480px){.train-action span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.train-actions .train-action{min-width:var(--touch);padding-inline:0}}.site-foot{justify-content:space-between;align-items:center;gap:var(--space-xs) var(--space-lg);margin-top:var(--space-2xl);padding-top:var(--space-md);border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--text-caption);flex-wrap:wrap;display:flex}.site-foot-brand{align-items:center;gap:var(--space-xs);font-family:var(--font-display);letter-spacing:-.01em;font-weight:600;display:inline-flex}.site-foot-links{gap:0 var(--space-lg);flex-wrap:wrap;display:flex}.site-foot a{min-height:var(--touch);color:var(--ink-3);text-underline-offset:3px;transition:color var(--duration-state) var(--ease-standard);align-items:center;text-decoration-thickness:1px;display:inline-flex}.site-foot a:hover{color:var(--ink)}.credit-block{color:var(--ink-2);font-size:var(--text-label);margin-top:24px}.credit-block h3{color:var(--ink);font:600 var(--text-title) / 1.25 var(--font-display);letter-spacing:-.01em;margin:0}.credit-block p,.credit-note{max-width:38rem;margin-top:12px}.credit-note{color:var(--ink-3);font-size:var(--text-caption)}.credit-block a{color:var(--ink)}.library-note{max-width:38rem;margin-top:var(--space-sm);color:var(--ink-3);font-size:var(--text-caption);text-wrap:pretty}.button:disabled{opacity:.45;cursor:default}.library-status{min-height:1.5em;margin-top:var(--space-lg);color:var(--ink-2);font-size:var(--text-label)}.library-status p{max-width:38rem}.library-status a{color:var(--ink);text-underline-offset:3px}.library-error{color:var(--warn)}.cover{justify-content:space-between;gap:var(--space-sm);aspect-ratio:2/3;background:var(--cover-bg);color:var(--cover-ink);transition:transform var(--duration-state) var(--ease-out);border-radius:3px 5px 5px 3px;flex-direction:column;padding:12cqi 8cqi 10cqi 12cqi;display:flex;position:relative}.cover:before{content:"";opacity:.2;background:currentColor;width:1px;position:absolute;inset:0 auto 0 6cqi}.cover[data-tone=slate]{--cover-bg:var(--cover-slate);--cover-ink:var(--cover-slate-ink)}.cover[data-tone=steel]{--cover-bg:var(--cover-steel);--cover-ink:var(--cover-steel-ink)}.cover[data-tone=mist]{--cover-bg:var(--cover-mist);--cover-ink:var(--cover-mist-ink)}.cover-title{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;-webkit-line-clamp:6;-webkit-box-orient:vertical;font-size:clamp(.75rem,10.5cqi,1.1875rem);font-weight:600;line-height:1.14;display:-webkit-box;overflow:hidden}.cover-author{font-size:clamp(.75rem,8cqi,.875rem);font-weight:500;line-height:1.25}.cover-ribbon{background:var(--cover-ink);clip-path:polygon(0 0,100% 0,100% 100%,50% 76%,0 100%);width:8cqi;height:14cqi;position:absolute;top:-3cqi;right:12cqi}.home-head{justify-items:start;gap:var(--space-md);display:grid}.home-head h1{letter-spacing:-.022em;max-width:15em;font-weight:450;line-height:1.1}.home-head .lede{max-width:36rem}.library section.resume{align-items:center;gap:var(--space-md) var(--space-xl);margin-top:var(--space-xl);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) auto;padding:20px 24px 22px;display:grid}.library h2.resume-title{font-size:var(--text-title);text-wrap:pretty;border-bottom:0;padding-bottom:0}.resume-caption{min-height:1.4em;margin-top:var(--space-2xs);color:var(--ink-3);font-size:var(--text-caption)}.resume-rule{height:2px;margin-top:var(--space-sm);background:var(--line);display:block;position:relative;overflow:hidden}.resume-rule:after{content:"";width:var(--read,0%);background:var(--accent);transform-origin:0;position:absolute;inset:0 auto 0 0}.resume-rule[data-known=false]{visibility:hidden}@media (prefers-reduced-motion:no-preference){.resume-rule[data-known=true]:after{animation:rule-draw .9s var(--ease-out) .15s both}}@keyframes rule-draw{0%{transform:scaleX(0)}}.library section.home-shelf{margin-top:56px}.shelf{gap:var(--space-xl) var(--space-lg);margin:var(--space-lg) 0 0;grid-template-columns:repeat(auto-fill,minmax(8.75rem,1fr));padding:0;list-style:none;display:grid}.shelf-item{min-width:0}.shelf-link{color:inherit;-webkit-tap-highlight-color:transparent;border-radius:5px;text-decoration:none;display:block;container-type:inline-size}.shelf-link:focus-visible{outline-offset:4px}@media (prefers-reduced-motion:no-preference){.shelf-link:hover .cover{transform:translateY(-3px)}.shelf-link:active .cover{transition-duration:var(--duration-press);transform:translateY(-1px)scale(.985)}}.shelf-meta{justify-content:space-between;align-items:center;gap:0 var(--space-xs);min-height:1.4em;color:var(--ink-3);font-size:var(--text-small);flex-wrap:wrap;margin-top:10px;line-height:1.35;display:flex}.shelf-confirm{gap:var(--space-lg) var(--space-md);flex-wrap:wrap;display:flex}.text-button{color:var(--ink-3);font:inherit;text-underline-offset:3px;cursor:pointer;transition:color var(--duration-state) ease;background:0 0;border:0;padding:0;text-decoration:underline;text-decoration-thickness:1px;position:relative}.text-button:after{content:"";position:absolute;inset:-13px -6px}.text-button:hover{color:var(--ink)}.text-button.danger{color:var(--warn)}.add-slot{place-content:center;justify-items:center;gap:var(--space-xs);aspect-ratio:2/3;width:100%;padding:var(--space-md);border:1px dashed var(--board-edge);color:var(--ink-2);font:500 var(--text-label) / 1.25 var(--font-ui);cursor:pointer;transition:background-color var(--duration-state) ease, border-color var(--duration-state) ease, color var(--duration-state) ease;background:0 0;border-radius:3px 5px 5px 3px;display:grid}.add-slot:hover{border-color:var(--ink-3);color:var(--ink)}.add-slot[data-over=true]{background:var(--accent-wash);border-color:var(--accent);color:var(--accent);border-style:solid}.add-slot:disabled{opacity:.45;cursor:default}@media (width<=600px){.library section.resume{grid-template-columns:minmax(0,1fr);padding:16px 16px 18px}.resume-action{justify-self:start}.shelf{gap:var(--space-lg) var(--space-sm);grid-template-columns:repeat(3,minmax(0,1fr))}}@font-face{font-family:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-ext-opsz-normal-C5tfwALZ.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-opsz-normal-DgmypKXX.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-ext-opsz-normal-DGm64vGR.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-opsz-normal-DFglUmAd.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-vietnamese-opsz-normal-Gqw5JQlq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-ext-opsz-normal-STiTPs0F.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-opsz-normal-BHZsWIlc.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-ext-opsz-italic-5yUt4G_9.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-opsz-italic-Bj0ndbyp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-ext-opsz-italic-DFpO5j-Z.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-opsz-italic-CHERNRFq.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-vietnamese-opsz-italic-BdcrZMcO.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-ext-opsz-italic-4y8iAqqs.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-opsz-italic-CJ93D38p.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground:#f1f5f7;--panel:#fafcfd;--ink:#19222b;--ink-2:#3f4b57;--ink-3:#5a6774;--line:#d3dde5;--accent:#296485;--accent-ink:#f1f5f7;--accent-wash:#dbecf9;--accent-on-dark:#8fbedc;--good:#2b7553;--warn:#a8501f;--board-light:#dfeaf3;--board-dark:#80a0b7;--board-last-light:#9dcdec;--board-last-dark:#5ea3cf;--board-selected:#29648559;--board-dot:#19222b47;--board-edge:#b4c4d1;--board-highlight-light:#f6c95e;--board-highlight-dark:#e2a738;--highlighter:#f6c95e8c;--cover-slate:#296485;--cover-slate-ink:#f1f5f7;--cover-steel:#80a0b7;--cover-steel-ink:#12202b;--cover-mist:#dbecf9;--cover-mist-ink:#19222b;--font-ui:"Atkinson Hyperlegible Next Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-read:"Literata Variable", Georgia, "Times New Roman", serif;--font-display:var(--font-read);--read-size:1.1875rem;--read-leading:1.68;--read-gap:1.1em;--radius:6px;--touch:44px;--text-display:clamp(2rem, 4.2vw, 2.75rem);--text-headline:clamp(1.75rem, 3.4vw, 2.375rem);--text-title:1.1875rem;--text-head:1.25rem;--text-body:1rem;--text-label:.9375rem;--text-caption:.875rem;--text-small:.8125rem;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-standard:cubic-bezier(.2, 0, 0, 1);--duration-press:90ms;--duration-state:.15s;--duration-travel:.22s;--duration-enter:.36s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#10171d;--panel:#16202a;--ink:#dbe4eb;--ink-2:#a5b5c2;--ink-3:#8797a6;--line:#243039;--accent:#8fbedc;--accent-ink:#0c161e;--accent-wash:#1a2c3a;--good:#6fcf97;--warn:#eba070;--board-light:#a8bccb;--board-dark:#4f6c83;--board-last-light:#86c0e3;--board-last-dark:#3f86b5;--board-selected:#8fbedc6b;--board-dot:#08121a66;--board-edge:#2c3a46;--board-highlight-light:#d6ab50;--board-highlight-dark:#ad8130;--highlighter:#d6ab5052;--cover-steel:#4f6c83;--cover-steel-ink:#f1f5f7;--cover-mist:#a8bccb;--cover-mist-ink:#10171d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--ground:#10171d;--panel:#16202a;--ink:#dbe4eb;--ink-2:#a5b5c2;--ink-3:#8797a6;--line:#243039;--accent:#8fbedc;--accent-ink:#0c161e;--accent-wash:#1a2c3a;--good:#6fcf97;--warn:#eba070;--board-light:#a8bccb;--board-dark:#4f6c83;--board-last-light:#86c0e3;--board-last-dark:#3f86b5;--board-selected:#8fbedc6b;--board-dot:#08121a66;--board-edge:#2c3a46;--board-highlight-light:#d6ab50;--board-highlight-dark:#ad8130;--highlighter:#d6ab5052;--cover-steel:#4f6c83;--cover-steel-ink:#f1f5f7;--cover-mist:#a8bccb;--cover-mist-ink:#10171d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-color:var(--line) transparent}body{background:var(--ground);color:var(--ink);font:400 var(--text-body) / 1.5 var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2{font-family:var(--font-display);text-wrap:balance;margin:0}h1{font-size:var(--text-display);font-variation-settings:"opsz" 60;letter-spacing:-.02em;font-weight:500;line-height:1.08}h2{font-size:var(--text-title);letter-spacing:-.01em;font-weight:600;line-height:1.25}p{margin:0}a{color:inherit}em{font-style:italic}::selection{background:var(--accent-wash);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip-link{top:var(--space-xs);left:var(--space-xs);z-index:100;min-height:var(--touch);background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);font:500 var(--text-label) / 1.25 var(--font-ui);cursor:pointer;transform:translateY(calc(-100% - var(--space-md)));padding:12px 18px;position:fixed}.skip-link:focus-visible{transform:none}[tabindex="-1"]:focus{outline:none}.button{min-height:var(--touch);background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);font:500 var(--text-label) / 1.25 var(--font-ui);cursor:pointer;transition:border-color var(--duration-state) var(--ease-standard), background-color var(--duration-state) var(--ease-standard), transform var(--duration-press) var(--ease-out);justify-content:center;align-items:center;gap:10px;padding:12px 18px;text-decoration:none;display:inline-flex}.button:hover{border-color:var(--ink-3)}.button:active{transform:scale(.97)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.button.primary:hover{filter:brightness(1.08)}@media (width<=880px){:root{--read-size:1.125rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.library,.article{max-width:44rem;margin:0 auto;padding:40px 24px 96px}.library-head{justify-items:start;gap:var(--space-lg);padding-bottom:var(--space-md);display:grid}.lede,.prose,.intro,.train-intro,.entry-text{font-family:var(--font-read);font-size:var(--read-size);font-weight:400;line-height:var(--read-leading);font-optical-sizing:auto;font-variant-numeric:lining-nums proportional-nums;text-align:left;text-wrap:pretty;-webkit-hyphens:manual;hyphens:manual}.lede{max-width:34rem;color:var(--ink-2)}.library section{margin-top:40px}.library h2{border-bottom:1px solid var(--ink);padding-bottom:12px}.rows{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--line);min-height:56px;transition:background-color var(--duration-state) var(--ease-standard);grid-template-columns:22px 2.4ch minmax(0,1fr) auto;align-items:center;column-gap:14px;padding:10px 8px;text-decoration:none;display:grid}.row:hover{background:var(--panel)}.row-number{color:var(--ink-3);font-variant-numeric:tabular-nums;text-align:right}.row-title{font-size:var(--text-label);font-weight:500}.row-side{color:var(--ink-3);font-size:var(--text-caption);justify-items:end;display:grid}.row-trained{color:var(--accent);font-weight:500}.mark{border:1.5px solid var(--line);width:20px;height:20px;color:var(--accent-ink);border-radius:50%;place-items:center;display:grid}.mark[data-done=true]{background:var(--accent);border-color:var(--accent)}.article{max-width:40rem}.article h1,.article .game-head{margin-bottom:var(--space-xl)}.article .game-head h1{margin-bottom:0}.notice-actions{align-items:center;gap:var(--space-xs) var(--space-lg);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.notice-actions a{min-height:var(--touch);color:var(--ink-2);font:500 var(--text-label) / 1.25 var(--font-ui);align-items:center;display:inline-flex}.notice-actions a:hover{color:var(--ink)}.article .page-tools{margin:calc(var(--space-md) - var(--space-xl)) 0 var(--space-xl)}.prose p{margin-bottom:var(--read-gap)}.prose figure{margin:2em 0}.prose img{border:1px solid var(--line);border-radius:var(--radius);max-width:100%;height:auto;margin:0 auto;display:block}.symbols{border-collapse:collapse;width:100%;font:400 1rem/1.4 var(--font-ui);margin:1.5em 0 2em}.symbols th,.symbols td{border-bottom:1px solid var(--line);text-align:left;vertical-align:baseline;padding:10px 8px}.symbols th{width:5.5em;color:var(--accent);font-family:var(--font-read);font-variant-numeric:lining-nums tabular-nums;font-weight:600}.page-nav{border-top:1px solid var(--line);justify-content:space-between;gap:16px;margin-top:56px;padding-top:24px;display:flex}.page-nav-link{min-height:var(--touch);max-width:48%;color:var(--ink-2);font-size:var(--text-label);transition:color var(--duration-state) var(--ease-standard);align-items:center;gap:10px;font-weight:500;text-decoration:none;display:inline-flex}.page-nav-link:hover{color:var(--ink)}.page-nav-link.next{text-align:right;margin-left:auto}@media (width<=880px){.library,.article{padding:24px 16px 72px}.row{grid-template-columns:22px 2.4ch minmax(0,1fr);row-gap:2px}.row-side{grid-column:3;justify-items:start}}.empty{max-width:40rem;padding:var(--space-xl) var(--space-lg) 96px;margin:0 auto}.empty pre{margin-top:var(--space-lg);color:var(--ink-3);font-size:var(--text-small);white-space:pre-wrap;overflow-wrap:anywhere}@media (width>=1001px){:root{--board-size:max(20rem, min(35rem, calc(100dvh - var(--bar-h) - 200px), calc((100vw - 150px) / 2)));--text-column:38rem;--game-gap:64px;--game-gutter:32px}}.game{grid-template-columns:var(--board-size) minmax(0, var(--text-column));justify-content:center;column-gap:var(--game-gap);padding:24px var(--game-gutter) 0;display:grid}.game-board{top:calc(var(--bar-h) + 24px);align-self:start;position:sticky}.board-frame{width:var(--board-size,100%);touch-action:pan-y;margin-inline:auto}.board-frame[data-movable=true]{touch-action:none}.game-text{min-width:0;padding-bottom:60vh}.game-head{justify-items:start;gap:var(--space-xs);display:grid}.game-head h1{font-size:var(--text-headline);letter-spacing:-.018em;line-height:1.1}.meta{color:var(--ink-2);font-size:var(--text-label)}.intro,.train-intro{color:var(--ink-2);margin-top:28px}.intro p{margin-bottom:var(--read-gap)}.entry{margin-top:var(--space-xl);scroll-margin-top:calc(var(--bar-h) + 24px)}.entry-move{isolation:isolate;min-height:var(--touch);border-radius:var(--radius);color:var(--ink);font:inherit;text-align:left;transition:border-color var(--duration-state) var(--ease-standard), transform var(--duration-press) var(--ease-out);background:0 0;border:1px solid #0000;align-items:baseline;gap:10px;margin-left:-12px;padding:9px 12px;display:inline-flex;position:relative}button.entry-move{cursor:pointer}button.entry-move:hover{border-color:var(--line)}button.entry-move:active{transform:scale(.97)}.entry-number{color:var(--accent);font:400 var(--text-label) / 1 var(--font-ui);font-variant-numeric:lining-nums tabular-nums}.entry-san{color:var(--accent);font:600 1.1875rem / 1.25 var(--font-read);font-variant-numeric:lining-nums tabular-nums}.entry-plain{color:var(--ink-2);font:500 var(--text-caption) / 1.25 var(--font-ui);font-variant-numeric:tabular-nums}.entry-number,.entry-san,.entry-plain{transition:color var(--duration-state) var(--ease-standard) 40ms}.entry-move:before{content:"";z-index:-1;background:var(--accent);border-radius:var(--radius);opacity:0;transition:opacity var(--duration-state) var(--ease-standard);position:absolute;inset:-1px}.entry[data-current=true] .entry-move{border-color:#0000}.entry[data-current=true] .entry-move:before{opacity:1;transition:none}.entry[data-current=true] :is(.entry-number,.entry-san,.entry-plain){color:var(--accent-ink)}@media (prefers-reduced-motion:no-preference){.entry[data-current=true] .entry-move:before{animation:entry-print var(--duration-travel) var(--ease-out)}}@keyframes entry-print{0%{clip-path:inset(0 100% 0 0 round var(--radius))}to{clip-path:inset(0 0 0 0 round var(--radius))}}.entry-text{margin-top:10px}.entry-text p{margin-bottom:var(--read-gap)}.game-end{gap:var(--space-sm);flex-wrap:wrap;margin-top:56px;display:flex}@media (width<=1000px){.game{padding:0;display:block}.game-board{--board-size:min(calc(100vw - 2 * (16px + var(--board-coord))), 42dvh);z-index:5;background:var(--ground);border-bottom:1px solid var(--line);padding:8px 16px 10px;top:0}.game-text{max-width:40rem;padding:8px 16px calc(60vh + env(safe-area-inset-bottom,0px));margin-inline:auto}.entry{scroll-margin-top:0}.entry-move{margin-left:-8px;padding-inline:8px}.game-board[data-hidden=true] .board-frame{visibility:hidden;height:0;overflow:hidden}.game-board[data-hidden=true] .controls{margin-top:0}}@media (width<=1000px) and (height<=560px) and (orientation:landscape){.game{padding:0 16px 0 calc(16px + var(--board-coord));grid-template-columns:auto minmax(0,1fr);gap:24px;display:grid}.game-board{--board-size:max(11rem, calc(100dvh - 130px));background:0 0;border-bottom:0;padding:8px 0;top:8px}.game-text{max-width:none;margin-inline:0;padding-inline:0}.game-board[data-hidden=true] .board-frame{visibility:visible;height:auto;overflow:visible}.game-board[data-hidden=true] .controls{margin-top:14px}}.controls{width:var(--board-size,100%);justify-content:space-between;align-items:center;gap:6px;margin:14px auto 0;display:flex}.controls button{width:var(--touch);height:var(--touch);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);cursor:pointer;transition:border-color var(--duration-state) var(--ease-standard), transform var(--duration-press) var(--ease-out);place-items:center;display:grid}.controls button:hover:not(:disabled){border-color:var(--ink-3)}.controls button:active:not(:disabled){transform:scale(.95)}.controls .board-toggle{display:none}.controls button:disabled{color:var(--ink-3);opacity:.45;cursor:default}.controls-status{min-width:0;color:var(--accent);font:600 1.0625rem / 1.3 var(--font-read);font-variant-numeric:lining-nums tabular-nums;text-align:center;flex:1}.controls-status span{color:var(--ink-3);font:400 var(--text-small) / 1.4 var(--font-ui);font-variant-numeric:tabular-nums;display:block}.train{width:var(--board-size,100%);grid-template-columns:1fr auto;align-items:center;gap:8px 12px;margin:14px auto 0;display:grid}.train-turn{display:grid}.train-turn strong{white-space:nowrap;font-weight:600}.train-turn span{color:var(--ink-3);font-size:var(--text-caption);font-variant-numeric:tabular-nums}.train-actions .button{font-size:var(--text-caption);padding-inline:12px}.train-message{min-height:1.5em;color:var(--ink-2);font-size:var(--text-label);text-wrap:balance;grid-column:1/-1}.train[data-finished=true]{grid-template-columns:1fr}.train-message[data-kind=hit]{color:var(--good)}.train-message[data-kind=miss]{color:var(--warn)}.train-actions{flex-wrap:wrap;gap:6px;display:flex}@media (width<=1000px){.controls .control-extreme{display:none}.controls .board-toggle{margin-inline-start:6px;display:grid}.controls .board-toggle[data-hidden=true]{background:var(--line);border-color:var(--line);width:auto;color:var(--ink);font:500 var(--text-caption) / 1.25 var(--font-ui);white-space:nowrap;align-items:center;gap:8px;padding-inline:12px;display:inline-flex}.controls-status{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;overflow:hidden}.game-board[data-hidden=true] .controls{width:100%}}@media (width<=400px){.controls{gap:3px}.controls .board-toggle[data-hidden=true]{font-size:var(--text-small);gap:4px;padding-inline:8px}}@media (width<=1000px) and (height<=560px) and (orientation:landscape){.controls .board-toggle,.controls .board-toggle[data-hidden=true]{display:none}.controls button{width:40px;height:40px}.controls-status{font-size:var(--text-caption)}.controls-status span{display:none}}:root{--listen-bar-h:calc(68px + env(safe-area-inset-bottom,0px))}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}p[data-speaking=true],:is(h2,h3,h4,h5,h6)[data-speaking=true]{isolation:isolate;position:relative}p[data-speaking=true]:before,:is(h2,h3,h4,h5,h6)[data-speaking=true]:before{content:"";z-index:-1;background:var(--accent-wash);border-radius:var(--radius);position:absolute;inset:-3px -8px}tr[data-speaking=true]>*{background:var(--accent-wash)}tr[data-speaking=true]>:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}tr[data-speaking=true]>:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.move-cell[data-speaking=true]:not([aria-current=step]),.move-table[data-speaking=true]{background:var(--accent-wash)}.game[data-listening=true] .game-text{padding-bottom:calc(60vh + var(--listen-bar-h))}.article[data-listening=true]{padding-bottom:calc(96px + var(--listen-bar-h))}@media (width<=880px){.article[data-listening=true]{padding-bottom:calc(72px + var(--listen-bar-h))}}.row.book-row{grid-template-columns:minmax(0,1fr) auto}.credits{color:var(--ink-2);font-size:var(--text-label);margin-top:56px}.credits p{max-width:38rem;margin-top:12px}.credits a{color:var(--ink)}.book-title{text-wrap:balance;max-width:19em}.book-title-label{display:block}.book-title[data-speaking=true]{isolation:isolate;position:relative}.book-title[data-speaking=true]:before{content:"";z-index:-1;background:var(--accent-wash);border-radius:var(--radius);position:absolute;inset:-3px -8px}.book-title-word{white-space:nowrap}.book-detail,.book-detail>span{column-gap:var(--space-md);flex-wrap:wrap;display:flex}.book-detail{color:var(--ink-2)}.detail-part{white-space:nowrap}.prose :is(h2,h3,h4,h5,h6),.game-text :is(h2,h3,h4,h5,h6){color:var(--ink);font:600 var(--text-head) / 1.3 var(--font-display);font-variant-numeric:lining-nums;letter-spacing:.07em;text-wrap:balance;margin:2em 0 .75em;font-variant-caps:all-small-caps}.prose strong{font-weight:600}.prose figure:not(.book-figure) img{border:1px solid var(--line);border-radius:var(--radius);width:min(100%,26rem);height:auto;margin:0 auto;display:block}.game-text figure{margin:2em 0}.plain-table{border-collapse:collapse;width:100%;font:400 var(--text-label) / 1.4 var(--font-ui);margin:1.5em 0 2em}.plain-table td{border-bottom:1px solid var(--line);overflow-wrap:anywhere;text-align:left;vertical-align:baseline;padding:8px}.board-frame.board-unavailable{aspect-ratio:1;border:1px solid var(--board-edge);border-radius:var(--radius);color:var(--ink-2);text-align:center;grid-template:1fr/1fr;place-items:center;padding:24px;display:grid}.board-unavailable p{max-width:18rem}
