html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent-horizontal],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}:root{--surface-0:#faf7f0;--surface-1:#fdfaf4;--surface-2:#fff;--surface-3:#fff;--text-primary:#1a1a1a;--text-secondary:#6b6a61;--text-muted:#9a978b;--text-disabled:#bfbbb0;--border:#e7e2d6;--border-strong:#d8d2c2;--border-stronger:#c6bfad;--brand:#3ca57a;--brand-hover:#348e69;--brand-active:#2c7a5a;--bg-brand:#e8f3ee;--border-brand:#a8c9b8;--text-brand:#2c7a5a;--on-brand:#fff;--sage:#a8c9b8;--bg-sage:#edf4f0;--border-sage:#c7dbd1;--text-sage:#46685a;--fill-success:#4fa85c;--bg-success:#ebf4e3;--text-success:#3a6b2a;--border-success:#c3dfb0;--fill-danger:#d0563d;--bg-danger:#fbebe5;--text-danger:#9a3a25;--border-danger:#efc4b6;--fill-warning:#e0a32e;--bg-warning:#fbf0d9;--text-warning:#8a5e12;--border-warning:#f0d79b;--on-state:#fff;--font-voice:"Fraunces",Georgia,serif;--font-sans:"Be Vietnam Pro",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--radius-sm:8px;--radius:12px;--radius-lg:16px;--focus-ring:0 0 0 3px var(--bg-brand)}.chess-scope{--cream:#faf7f0;--ink:#1a1a1a;--jade:#3ca57a;--sage:#a8c9b8;--sage-deep:#7fa894;--brick:#b0503c;--surface:var(--cream);--surface-board-light:var(--cream);--surface-board-dark:var(--sage-deep);--surface-panel:#f0f1e9;--surface-panel:color-mix(in srgb,var(--sage) 12%,var(--cream));--surface-sunken:#f1eee7;--surface-sunken:color-mix(in srgb,var(--ink) 4%,var(--cream));--text:var(--ink);--text-muted:#7f7d7a;--text-muted:color-mix(in srgb,var(--ink) 55%,var(--cream));--text-on-dark:var(--cream);--text-coord:rgba(26,26,26,.42);--text-coord:color-mix(in srgb,var(--ink) 42%,transparent);--border:#d5e2d7;--border:color-mix(in srgb,var(--sage) 45%,var(--cream));--border-strong:var(--sage-deep);--border-focus:var(--jade);--sq-lastmove:rgba(60,165,122,.18);--sq-lastmove:color-mix(in srgb,var(--jade) 18%,transparent);--sq-selected:var(--jade);--sq-target:rgba(60,165,122,.35);--sq-target:color-mix(in srgb,var(--jade) 35%,transparent);--sq-capture:rgba(60,165,122,.22);--sq-capture:color-mix(in srgb,var(--jade) 22%,transparent);--sq-check:rgba(176,80,60,.3);--sq-check:color-mix(in srgb,var(--brick) 30%,transparent);--sq-illegal:rgba(176,80,60,.45);--sq-illegal:color-mix(in srgb,var(--brick) 45%,transparent);--scrim:rgba(26,26,26,.45);--scrim:color-mix(in srgb,var(--ink) 45%,transparent);--mark-1:var(--brick);--mark-2:var(--jade);--mark-3:var(--ink);--arrow:rgba(26,26,26,.45);--arrow:color-mix(in srgb,var(--ink) 45%,transparent);--eval-white:var(--cream);--eval-black:var(--ink);--eval-line:var(--sage-deep);--eval-mate:var(--brick);--ov-w-1:rgba(60,165,122,.08);--ov-w-1:color-mix(in srgb,var(--jade) 8%,transparent);--ov-w-2:rgba(60,165,122,.16);--ov-w-2:color-mix(in srgb,var(--jade) 16%,transparent);--ov-w-3:rgba(60,165,122,.28);--ov-w-3:color-mix(in srgb,var(--jade) 28%,transparent);--ov-w-4:rgba(60,165,122,.42);--ov-w-4:color-mix(in srgb,var(--jade) 42%,transparent);--ov-w-5:rgba(60,165,122,.6);--ov-w-5:color-mix(in srgb,var(--jade) 60%,transparent);--ov-b-1:rgba(26,26,26,.08);--ov-b-1:color-mix(in srgb,var(--ink) 8%,transparent);--ov-b-2:rgba(26,26,26,.16);--ov-b-2:color-mix(in srgb,var(--ink) 16%,transparent);--ov-b-3:rgba(26,26,26,.28);--ov-b-3:color-mix(in srgb,var(--ink) 28%,transparent);--ov-b-4:rgba(26,26,26,.42);--ov-b-4:color-mix(in srgb,var(--ink) 42%,transparent);--ov-b-5:rgba(26,26,26,.6);--ov-b-5:color-mix(in srgb,var(--ink) 60%,transparent);--ov-x-2:rgba(176,80,60,.16);--ov-x-2:color-mix(in srgb,var(--brick) 16%,transparent);--ov-x-4:rgba(176,80,60,.42);--ov-x-4:color-mix(in srgb,var(--brick) 42%,transparent);--font-display:"Fraunces",Georgia,serif;--font-text:"Be Vietnam Pro",system-ui,sans-serif;--font-notation:"Be Vietnam Pro",system-ui,sans-serif;--flash-duration:600ms;--move-duration:180ms;--eval-duration:320ms;color:var(--text);font-family:var(--font-text)}.chess-scope .notation,.chess-scope [data-notation]{font-family:var(--font-notation);font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){.chess-scope{--flash-duration:1ms;--move-duration:1ms;--eval-duration:1ms}.chess-scope *,.chess-scope :after,.chess-scope :before{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.chess-scope .chess-board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);aspect-ratio:1/1;width:100%;max-width:100%;border:1px solid var(--border-strong);border-radius:2px;overflow:hidden;position:relative;touch-action:manipulation;user-select:none;background:var(--surface-board-light)}.chess-scope .chess-square{position:relative;display:block;padding:0;margin:0;border:0;background:transparent;cursor:default}.chess-scope .chess-square[data-shade=light]{background:var(--surface-board-light)}.chess-scope .chess-square[data-shade=dark]{background:var(--surface-board-dark)}.chess-scope .chess-square:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px;z-index:3}.chess-scope .chess-square[data-interactive=true]{cursor:pointer}.chess-scope .sq-layer{position:absolute;inset:0;pointer-events:none}.chess-scope .sq-lastmove{background:var(--sq-lastmove)}.chess-scope .sq-check{background:var(--sq-check)}.chess-scope .sq-selected{box-shadow:inset 0 0 0 2px var(--sq-selected)}.chess-scope .sq-capture-ring{border-radius:50%;box-shadow:inset 0 0 0 max(3px,6%) var(--sq-capture)}.chess-scope .sq-target-dot{display:grid;place-items:center}.chess-scope .sq-target-dot:after{content:"";width:30%;height:30%;border-radius:50%;background:var(--sq-target)}.chess-scope .sq-illegal{background:var(--sq-illegal);animation:chess-illegal-flash var(--flash-duration) ease-out 1 forwards}@keyframes chess-illegal-flash{0%{opacity:1}70%{opacity:1}to{opacity:0}}.chess-scope .sq-coord{position:absolute;font-family:var(--font-notation);font-size:clamp(7px,1.6cqw,11px);line-height:1;color:var(--text-coord);pointer-events:none}.chess-scope .sq-coord[data-edge=file]{right:3%;bottom:2%}.chess-scope .sq-coord[data-edge=rank]{left:3%;top:2%}.chess-scope .sq-badge{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-notation);font-variant-numeric:tabular-nums;font-size:clamp(9px,2.4cqw,15px);font-weight:500;color:var(--text);pointer-events:none;white-space:pre-line;line-height:1.05;text-align:center}.chess-scope .chess-piece{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.chess-scope .chess-piece[data-dragging=true]{opacity:.35}.chess-scope .chess-drag-ghost{position:absolute;left:var(--drag-x,50%);top:var(--drag-y,50%);width:12.5%;height:12.5%;transform:translate(-50%,-50%);pointer-events:none;z-index:5}.chess-scope .chess-arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4;overflow:visible}.chess-scope .judgement,.judgement{display:grid;gap:.5rem;padding:.75rem .9rem;border:1px dashed var(--border-strong);border-radius:var(--radius-sm,6px);background:transparent}.judgement-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.judgement-value{font-family:var(--font-notation);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:600}.judgement-depth{font-family:var(--font-notation);font-size:.85rem;color:var(--text-muted,var(--text));opacity:.75}.judgement-spark{width:120px;height:28px;overflow:visible}.judgement-spark-axis{stroke:var(--border-strong);stroke-width:1;stroke-dasharray:2 3}.judgement-spark-line{fill:none;stroke:var(--text);stroke-width:1.75;stroke-linejoin:round;stroke-linecap:round}.judgement[data-stability="lung lay"] .judgement-spark-line{stroke-dasharray:3 2}.judgement-reading,.judgement-stability{margin:0;font-size:.9rem}.judgement-caption{margin:0;font-size:.82rem;opacity:.8}.identify-list{list-style:none;margin:0;padding:0;display:grid;gap:1.5rem}.identify-item{display:grid;gap:.6rem}.identify-prompt{margin:0}.identify-options{display:flex;gap:.4rem;flex-wrap:wrap}.identify-option{font-family:var(--font-notation);font-variant-numeric:tabular-nums;padding:.3rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm,6px);background:transparent;color:var(--text);cursor:pointer}.identify-option:disabled{cursor:default}.identify-option[data-state=right]{border-color:var(--jade);background:var(--ov-w-2)}.identify-option[data-state=wrong]{border-color:var(--brick);background:var(--ov-x-2)}.identify-verdict{margin:0;font-size:.9rem}.identify-caption{margin:.75rem 0 0;font-size:.82rem;opacity:.8}.identify-item[data-answered=false] .chess-board{cursor:pointer}.identify-hint{margin:0;font-size:.85rem;opacity:.75}.chess-scope.book-chapter{background:var(--surface);min-height:100%;padding:0 16px 64px}.chess-scope .book-column{max-width:720px;margin:0 auto;padding-top:40px}.chess-scope .book-kicker{font-family:var(--font-notation);font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px}.chess-scope .book-title{font-family:var(--font-display);font-weight:300;font-size:clamp(28px,6vw,40px);line-height:1.2;color:var(--text);margin:0 0 16px;display:flex;gap:14px;align-items:baseline}.chess-scope .book-number{font-family:var(--font-notation);font-variant-numeric:tabular-nums;font-size:.42em;font-weight:500;color:var(--jade);flex-shrink:0}.chess-scope .book-meta{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;font-size:12.5px;color:var(--text-muted);padding-bottom:24px;border-bottom:1px solid var(--border);margin-bottom:32px}.chess-scope .book-band{padding:3px 9px;border-radius:999px;border:1px solid var(--border);background:var(--surface-panel);font-size:11.5px}.chess-scope .book-prereq a{color:var(--jade);text-decoration:underline;text-underline-offset:2px}.chess-scope .book-prose{line-height:1.75;max-width:65ch;font-size:16.5px;color:var(--text);margin:0 auto 26px}.chess-scope .book-prose p{margin:0 0 20px}.chess-scope .book-prose p:last-child{margin-bottom:0}.chess-scope .book-prose-lead{font-size:18px}.chess-scope .book-prose b,.chess-scope .book-prose strong{font-weight:600}.chess-scope .book-prose em{font-style:italic}.chess-scope .book-figure{margin:0 auto 34px;max-width:460px}@media (max-width:560px){.chess-scope .book-figure-wide{margin-left:-16px;margin-right:-16px;max-width:none}.chess-scope .book-figure-wide .chess-board{border-left:0;border-right:0;border-radius:0}}.chess-scope .book-figcaption{margin-top:10px;font-size:13px;line-height:1.6;color:var(--text-muted);max-width:62ch}.chess-scope .book-figcaption b{color:var(--text);font-weight:500}.chess-scope .book-prompt{margin:0 0 12px;font-size:14.5px;line-height:1.65;color:var(--text)}.chess-scope .book-reset{margin-top:12px;padding:6px 12px;font-family:var(--font-text);font-size:12.5px;color:var(--jade);background:transparent;border:1px solid var(--border);border-radius:999px;cursor:pointer}.chess-scope .book-reset:hover{background:var(--surface-panel)}.chess-scope .book-reset:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.chess-scope .book-counter{padding:18px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface-panel)}.chess-scope .book-counter-claim{margin:0 0 16px;font-size:15px;line-height:1.7;color:var(--text)}.chess-scope .book-counter-label{display:block;font-family:var(--font-notation);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}.chess-scope .book-verdict{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:12px;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--border)}.chess-scope .book-verdict dt{font-size:11px;color:var(--text-muted);margin-bottom:3px}.chess-scope .book-verdict dd{margin:0;font-size:17px;font-variant-numeric:tabular-nums;color:var(--text)}.chess-scope .book-verdict-loss dd{color:var(--brick);font-weight:500}.chess-scope .book-nav{display:flex;gap:12px;flex-wrap:wrap;margin-top:48px;padding-top:24px;border-top:1px solid var(--border)}.chess-scope .book-nav-link{flex:1 1 200px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;text-decoration:none;background:var(--surface)}.chess-scope .book-nav-link:hover{background:var(--surface-panel)}.chess-scope .book-nav-next{text-align:right}.chess-scope .book-nav-dir{display:block;font-size:11px;color:var(--text-muted);margin-bottom:3px}.chess-scope .book-nav-title{display:block;font-size:14px;color:var(--text)}.chess-scope.book-shell{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}.chess-scope .book-shell-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border-bottom:1px solid var(--border);background:var(--surface)}.chess-scope .book-shell-header-left{display:flex;align-items:center;gap:8px;min-width:0}.chess-scope .book-shell-menu{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--text);cursor:pointer}.chess-scope .book-shell-menu:hover{background:var(--surface-panel)}.chess-scope .book-shell-back:focus-visible,.chess-scope .book-shell-brand:focus-visible,.chess-scope .book-shell-menu:focus-visible,.chess-scope .book-toc-row:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}@media (min-width:1024px){.chess-scope .book-shell-menu{display:none}}.chess-scope .book-shell-brand{display:flex;align-items:center;gap:8px;min-width:0;text-decoration:none}.chess-scope .book-shell-dot{width:7px;height:7px;border-radius:50%;background:var(--jade);flex-shrink:0}.chess-scope .book-shell-name{font-family:var(--font-display);font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chess-scope .book-shell-back{display:flex;align-items:center;gap:6px;flex-shrink:0;font-family:var(--font-notation);font-size:10.5px;color:var(--text-muted);text-decoration:none}@media (max-width:480px){.chess-scope .book-shell-back-label{display:none}}.chess-scope .book-shell-body{flex:1;display:flex;min-height:0}.chess-scope .book-shell-sidebar{display:none;flex-shrink:0;overflow-y:auto;overscroll-behavior:contain;border-right:1px solid var(--border)}@media (min-width:1024px){.chess-scope .book-shell-sidebar{display:block}}.chess-scope .book-shell-main{flex:1;min-width:0;overflow-y:auto}.chess-scope .book-shell-drawer{position:fixed;inset:0;z-index:40;display:flex}.chess-scope .book-shell-scrim{position:absolute;inset:0;padding:0;border:0;background:var(--scrim);cursor:pointer}.chess-scope .book-shell-drawer-panel{position:relative;width:min(280px,84vw);overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border-right:1px solid var(--border)}.chess-scope .book-toc{display:flex;flex-direction:column;padding-bottom:8px}.chess-scope .book-toc-group{margin:16px 0 6px;padding:0 12px;font-family:var(--font-notation);font-size:10px;letter-spacing:.14em;color:var(--text-muted)}.chess-scope .book-toc-row{display:flex;align-items:baseline;gap:8px;padding:7px 12px;text-decoration:none;border-left:2px solid transparent;transition:background var(--eval-duration) ease}.chess-scope .book-toc-row[data-written=true]:hover{background:var(--surface-panel)}.chess-scope .book-toc-row[data-active=true]{background:var(--surface-panel);border-left-color:var(--jade)}.chess-scope .book-toc-number{flex-shrink:0;font-family:var(--font-notation);font-variant-numeric:tabular-nums;font-size:10px;color:var(--text-muted)}.chess-scope .book-toc-row[data-active=true] .book-toc-number{color:var(--jade)}.chess-scope .book-toc-title{flex:1;min-width:0;font-size:12.5px;line-height:17px;color:var(--text)}.chess-scope .book-toc-row[data-written=false] .book-toc-title{color:var(--text-muted)}.chess-scope .book-toc-row[data-active=true] .book-toc-title{font-weight:500}.chess-scope .book-compose{padding:18px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface-panel);max-width:560px}.chess-scope .book-compose-brief{margin:0 0 14px;font-size:13.5px;line-height:1.6;color:var(--text)}.chess-scope .book-compose-body{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}.chess-scope .book-compose-board{flex:1 1 260px;min-width:0}.chess-scope .book-compose-tools{flex:0 0 auto;display:grid;gap:10px}.chess-scope .book-compose-buttons{display:flex;gap:6px;flex-wrap:wrap}.chess-scope .book-compose-refusal{margin:12px 0 0;padding:8px 10px;border-radius:8px;font-size:12.5px;line-height:1.55;border:1px solid var(--border-strong);background:var(--ov-x-2);color:var(--text)}.chess-scope .book-compose-verdict{margin:12px 0 0;padding:9px 11px;border-radius:8px;font-size:13.5px;line-height:1.55;border:1px solid var(--border);background:var(--surface);color:var(--text)}.chess-scope .book-compose-verdict[data-met=true]{border-color:var(--jade);color:var(--text)}.chess-scope .book-terminal{margin:12px 0 0;padding:8px 11px;border-radius:8px;font-size:13.5px;line-height:1.55;border:1px solid var(--border-strong);background:var(--surface);color:var(--text)}.chess-scope .book-material{display:flex;justify-content:space-between;gap:12px;margin:10px 0 0;padding:7px 10px;border-radius:8px;font-size:12.5px;font-variant-numeric:tabular-nums;border:1px solid var(--border);background:var(--surface-sunken);color:var(--text)}.chess-scope .book-material span:first-child{color:var(--text-muted)}.chess-scope .book-compare{max-width:620px}.chess-scope .book-compare-pair{display:grid;grid-template-columns:1fr;gap:18px}@media (min-width:560px){.chess-scope .book-compare-pair{grid-template-columns:1fr 1fr}}.chess-scope .book-compare-label{margin:0 0 8px;font-family:var(--font-notation);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted)}.chess-scope .book-puzzles{max-width:520px;padding:18px;border:1px solid var(--border);border-radius:12px;background:var(--surface-sunken)}.chess-scope .book-puzzle-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.chess-scope .book-puzzle-head .book-counter-label{display:inline;margin-bottom:0}.chess-scope .book-puzzle-brief{font-family:var(--font-notation);font-size:11.5px;color:var(--text-muted)}.chess-scope .book-puzzle-last{margin:10px 0 0;font-size:13px;color:var(--text-muted)}.chess-scope .book-puzzle-controls{display:flex;flex-wrap:wrap;gap:8px}.chess-scope .book-reset:disabled{color:var(--text-muted);cursor:default;opacity:.55}.chess-scope .book-puzzle-hint{margin:10px 0 0;padding:10px 12px;font-size:13.5px;line-height:1.6;color:var(--text);border-left:2px solid var(--border-strong);background:var(--surface-panel);border-radius:0 8px 8px 0}.chess-scope .book-puzzle-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.chess-scope .book-puzzle-source{font-family:var(--font-notation);font-size:11px;color:var(--text-muted);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border-strong)}