:root{--felt:#1b2c22;--felt-dark:#122018;--felt-line:#2c4234;--felt-text:#cfc6ac;--felt-text-dim:#8fa392;--paper:#f0e8d4;--paper-edge:#e2d6ba;--ink:#2b2418;--ink-soft:#5c5140;--brass:#b3873e;--stamp:#99392b;--serif-display:"Fraunces", "Georgia", serif;--serif-body:"Literata", "Georgia", serif;--mono:"IBM Plex Mono", "Courier New", monospace}:root[data-theme=light]{--felt:#efe6d2;--felt-dark:#e4d8bf;--felt-line:#cbbc9c;--felt-text:#4a4232;--felt-text-dim:#6f6449;--paper:#faf5e8;--paper-edge:#eadfc6;--brass:#8a6425;--stamp:#99392b}:root[data-theme=light] .masthead h1,:root[data-theme=light] .scoresheet .san{color:var(--ink)}:root[data-theme=light] .board-frame{border-color:#8a6b4a;box-shadow:0 8px 28px #5a46284d}:root[data-theme=light] .page{box-shadow:0 1px 0 var(--paper-edge) inset, 0 10px 30px #5a462840}:root[data-theme=light] .controls button:hover:not(:disabled),:root[data-theme=light] .presets summary:hover{color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--felt-dark);background-image:radial-gradient(ellipse 120% 90% at 50% -10%, var(--felt) 0%, var(--felt-dark) 78%);color:var(--felt-text);font-family:var(--serif-body);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100vh}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}button{font:inherit}:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.app{max-width:1180px;margin:0 auto;padding:28px 24px 64px}.masthead{border-bottom:1px solid var(--felt-line);align-items:baseline;gap:16px;margin-bottom:26px;padding-bottom:14px;display:flex}.masthead h1{font-family:var(--serif-display);letter-spacing:.02em;color:var(--paper);margin:0;font-size:1.7rem;font-weight:700}.masthead h1 .knight{color:var(--brass);font-family:var(--serif-body);margin-right:10px}.masthead .tagline{text-wrap:balance;font-family:var(--serif-body);color:var(--felt-text-dim);font-size:.95rem;font-style:italic}.masthead .theme-toggle,.masthead .help-toggle{border:1px solid var(--felt-line);color:var(--felt-text);cursor:pointer;background:0 0;border-radius:999px;width:34px;height:34px;font-size:1rem;line-height:1;transition:border-color .12s,color .12s}.masthead .theme-toggle:hover,.masthead .help-toggle:hover{border-color:var(--brass);color:var(--brass)}@media (width<=600px){.app{padding:16px 12px 48px}.masthead{flex-wrap:wrap;align-items:center;row-gap:6px}.masthead .help-toggle{margin-left:auto}.masthead .tagline{flex-basis:100%;order:3}}.layout{grid-template-columns:minmax(320px,480px) minmax(380px,1fr);align-items:start;gap:32px;display:grid}@media (width<=880px){.layout{grid-template-columns:1fr}}.board-side{flex-direction:column;gap:14px;display:flex}.board-row{align-items:stretch;gap:8px;display:flex}.board-frame{border:6px solid #3a2b1c;border-radius:4px;flex:1;min-width:0;position:relative;box-shadow:0 10px 40px #00000073}.eval-wrap{flex-shrink:0;display:flex;position:relative}.eval-bar{border:1px solid var(--felt-line);background:#2e2e2e;border-radius:3px;flex:1;width:22px;position:relative;overflow:hidden}.eval-white{background:#e8e2d0;transition:height .5s cubic-bezier(.22,1,.36,1);position:absolute;left:0;right:0}.eval-white.decisive{background:linear-gradient(#f3ecd6,#e0d3a4)}.eval-tick{pointer-events:none;border-top:1px dashed #b3873ee6;position:absolute;top:50%;left:0;right:0}.eval-label{font-family:var(--mono);letter-spacing:.02em;white-space:nowrap;pointer-events:none;z-index:1;border-radius:2px;padding:1px 4px;font-size:.62rem;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.eval-label.at-bottom{bottom:3px}.eval-label.at-top{top:3px}.eval-label.on-white{color:#333;background:#e8e2d0}.eval-label.on-black{color:#eee;background:#2e2e2e}.promo-overlay{z-index:30;background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.promo-picker{background:var(--paper);color:var(--ink);text-align:center;border-radius:4px;padding:14px 18px;box-shadow:0 12px 40px #00000080}.promo-title{font-family:var(--mono);text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft);margin-bottom:8px;font-size:.66rem;display:block}.promo-choices{gap:8px;display:flex}.promo-choices button{cursor:pointer;width:52px;height:52px;color:var(--ink);background:0 0;border:1px solid #5c514059;border-radius:4px;font-size:2rem;line-height:1}.promo-choices button:hover{border-color:var(--brass);background:#b3873e1f}.opponent-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.opponent-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--felt-text-dim);font-size:.68rem}.opponent-modes{gap:6px;display:flex}.opponent-modes button,.level-select{font-family:var(--mono);letter-spacing:.02em;color:var(--felt-text);border:1px solid var(--felt-line);cursor:pointer;background:0 0;border-radius:999px;padding:5px 11px;font-size:.74rem;transition:border-color .12s,color .12s}.opponent-modes button:hover{border-color:var(--brass)}.opponent-modes button.active{border-color:var(--brass);color:var(--brass);font-weight:600}.level-select{border-radius:3px}.check-badge{z-index:5;pointer-events:none;font-family:var(--mono);letter-spacing:.2em;color:#fff;background:#99392beb;border:1px solid #ffffff59;border-radius:3px;padding:6px 14px 6px 17px;font-size:.95rem;font-weight:700;animation:.24s ease-out badge-pop;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006}.check-badge.mate{padding:9px 18px 9px 22px;font-size:1.15rem;animation:.24s ease-out badge-pop,1.6s ease-in-out .24s infinite badge-throb}@keyframes badge-pop{0%{opacity:0;transform:translate(-50%)scale(.6)}}@keyframes badge-throb{50%{box-shadow:0 4px 26px #99392bcc}}.player-plate{font-family:var(--mono);letter-spacing:.04em;color:var(--felt-text);justify-content:space-between;align-items:baseline;gap:12px;min-height:1.4em;padding:0 4px;font-size:.78rem;display:flex}.plate-name{align-items:baseline;gap:7px;font-weight:600;display:inline-flex}.plate-dot{background:var(--felt-text-dim);border-radius:50%;align-self:center;width:7px;height:7px}.player-plate.is-thinking .plate-dot{background:var(--brass);animation:1.1s ease-in-out infinite platepulse}@keyframes platepulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}.plate-thinking{color:var(--brass);font-size:.68rem;font-style:italic}.plate-caps{font-family:var(--serif-body);letter-spacing:.08em;color:var(--felt-text);align-items:baseline;gap:6px;min-height:1.2em;font-size:1.05rem;display:inline-flex}.cap-diff{font-family:var(--mono);color:var(--brass);font-size:.72rem;font-weight:700}.game-status{font-family:var(--mono);letter-spacing:.04em;color:var(--brass);text-align:center;padding:2px 0;font-size:.78rem}.game-status.thinking{color:var(--felt-text-dim);animation:1.2s ease-in-out infinite pulse}.game-status.viewing{color:var(--felt-text-dim);font-style:italic}.pgn-import{border:1px solid var(--felt-line);border-radius:3px;flex-direction:column;gap:8px;padding:10px;display:flex}.pgn-import textarea{font-family:var(--mono);color:var(--felt-text);border:1px solid var(--felt-line);resize:vertical;background:0 0;border-radius:3px;padding:8px;font-size:.78rem}.pgn-error{font-family:var(--mono);color:var(--stamp);font-size:.72rem}.pgn-actions{gap:8px;display:flex}.pgn-actions button{font-family:var(--mono);color:var(--felt-text);border:1px solid var(--felt-line);cursor:pointer;background:0 0;border-radius:3px;padding:6px 12px;font-size:.76rem}.pgn-actions button:hover:not(:disabled){border-color:var(--brass)}.pgn-actions button:disabled{opacity:.4;cursor:default}.atlas-body{flex-direction:column;gap:8px;padding:10px 12px 12px;display:flex}.atlas-search{font-family:var(--mono);color:var(--felt-text);border:1px solid var(--felt-line);background:0 0;border-radius:3px;width:100%;padding:7px 10px;font-size:.78rem}.atlas-list{max-height:260px;overflow-y:auto}.presets button.atlas-row{padding:4px 6px}.atlas-eco{font-family:var(--mono);color:var(--brass);margin-right:6px;font-size:.68rem}.atlas-more{font-family:var(--mono);color:var(--felt-text-dim);padding:8px 6px 2px;font-size:.7rem;font-style:italic}.controls button.active{border-color:var(--brass);color:var(--brass)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.controls{flex-wrap:wrap;gap:8px;display:flex}.controls button,.presets summary{font-family:var(--mono);letter-spacing:.03em;color:var(--felt-text);border:1px solid var(--felt-line);cursor:pointer;background:0 0;border-radius:3px;padding:7px 12px;font-size:.78rem;transition:border-color .12s,color .12s}.controls button:hover:not(:disabled),.presets summary:hover{border-color:var(--brass);color:var(--paper)}.controls button:disabled{opacity:.4;cursor:default}.scoresheet{font-family:var(--mono);color:var(--felt-text);border:1px solid var(--felt-line);border-radius:3px;min-height:52px;max-height:168px;padding:10px 14px;font-size:.82rem;line-height:1.9;overflow-y:auto}.scoresheet .move-no{color:var(--felt-text-dim);margin-right:2px}.scoresheet button.san{color:var(--paper);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:2px;margin-right:10px;padding:0 2px}.scoresheet button.san:hover{color:var(--brass)}.scoresheet button.san.current{color:var(--brass);background:#b3873e40}:root[data-theme=light] .scoresheet button.san{color:var(--ink)}.scoresheet .empty{color:var(--felt-text-dim);font-style:italic;font-family:var(--serif-body)}.presets{border:1px solid var(--felt-line);border-radius:3px;padding:0}.presets summary{-webkit-user-select:none;user-select:none;border:none;display:block}.presets[open] summary{border-bottom:1px solid var(--felt-line)}.preset-group{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--felt-text-dim);padding:8px 14px 4px;font-size:.68rem}.presets button.preset{text-align:left;width:100%;color:var(--felt-text);font-family:var(--serif-body);cursor:pointer;background:0 0;border:none;padding:5px 18px;font-size:.88rem;display:block}.presets button.preset:hover{color:var(--paper);background:#b3873e14}.page{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--paper-edge) inset, 0 14px 44px #00000080;border-radius:3px;padding:34px 38px 38px;position:relative}@media (width<=880px){.page{padding:26px 22px 30px}}.page:before{content:"";pointer-events:none;border:1px solid #5c51402e;border-radius:2px;position:absolute;inset:6px}.page .eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft);align-items:center;gap:10px;margin-bottom:10px;font-size:.7rem;display:flex}.eco-stamp{font-family:var(--mono);color:var(--stamp);border:1.5px solid var(--stamp);border-radius:2px;padding:1px 7px;font-weight:600;transform:rotate(-2deg)}.page h2{font-family:var(--serif-display);color:#1f1a10;margin:0 0 6px;font-size:clamp(1.5rem,3.2vw,2.15rem);font-weight:600;line-height:1.12}.page .aka{color:var(--ink-soft);margin-bottom:18px;font-size:.95rem;font-style:italic}.page .detected-detail{color:var(--ink-soft);margin:0 0 18px;font-size:.95rem;font-style:italic}.tabs{gap:6px;margin-bottom:20px;display:flex}.tabs button{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #5c514059;border-radius:999px;padding:4px 12px;font-size:.72rem}.tabs button.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.ledger{border-top:1px solid #5c51404d;border-bottom:1px solid #5c51404d;margin:0 0 22px;padding:10px 0}.ledger-title{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);margin-bottom:8px;font-size:.66rem}.ledger ol{margin:0;padding:0;list-style:none}.ledger li{align-items:baseline;gap:10px;padding:3px 0;font-size:.92rem;display:flex}.ledger li .ply{font-family:var(--mono);color:var(--ink-soft);min-width:66px;font-size:.7rem}.ledger li .line-name{color:var(--ink)}.ledger li.current .line-name{font-weight:600}.ledger li.current:after{content:"● here";font-family:var(--mono);letter-spacing:.08em;color:var(--stamp);margin-left:auto;font-size:.62rem}.departed{font-family:var(--mono);color:var(--stamp);margin:0 0 20px;font-size:.72rem}.inherited-note{font-family:var(--mono);color:var(--ink-soft);background:#5c514014;border-radius:2px;margin-bottom:18px;padding:6px 10px;font-size:.7rem}.story-section{margin-bottom:18px}.story-section h3{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;color:var(--stamp);margin:0 0 5px;font-size:.66rem;font-weight:600}.story-section p{margin:0;font-size:.98rem;line-height:1.62}.story-section ul{margin:0;padding-left:18px;font-size:.94rem;line-height:1.6}.play-famous{width:100%;font-family:var(--mono);letter-spacing:.03em;text-align:left;color:var(--stamp);border:1px solid var(--stamp);cursor:pointer;background:#99392b12;border-radius:3px;margin-top:4px;padding:9px 12px;font-size:.78rem;transition:background .12s;display:block}.play-famous:hover{background:#99392b26}.no-story{color:var(--ink-soft);font-size:.98rem;font-style:italic;line-height:1.6}.blank-page{text-align:center;padding:48px 12px}.blank-page .big-knight{color:#5c514059;margin-bottom:14px;font-size:3rem;display:block}.blank-page p{color:var(--ink-soft);max-width:40ch;margin:0 auto;font-style:italic;line-height:1.6}.story-fade{animation:.26s storyfade}@keyframes storyfade{0%{opacity:.25}to{opacity:1}}.postmortem{border:1px solid var(--felt-line);border-left:3px solid var(--brass);border-radius:3px;flex-direction:column;gap:8px;padding:12px 14px;animation:.26s storyfade;display:flex}.pm-head{align-items:center;gap:10px;display:flex}.pm-result{font-family:var(--mono);color:var(--stamp);border:1.5px solid var(--stamp);border-radius:2px;padding:1px 7px;font-size:.8rem;font-weight:600;transform:rotate(-2deg)}.pm-name{font-family:var(--serif-display);color:var(--felt-text);font-size:1.15rem;font-weight:600}.pm-summary{font-family:var(--serif-body);color:var(--felt-text);margin:0;font-size:.9rem}.pm-history{font-family:var(--serif-body);color:var(--felt-text-dim);margin:0;font-size:.85rem;line-height:1.55}.pm-title{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--brass);font-size:.72rem}.pm-journey{border-top:1px dashed var(--felt-line);flex-direction:column;gap:6px;padding-top:8px;display:flex}.pm-journey ol{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.pm-journey li{font-family:var(--serif-body);color:var(--felt-text);align-items:baseline;gap:8px;font-size:.85rem;display:flex}.pm-ply{font-family:var(--mono);color:var(--brass);cursor:pointer;text-align:right;background:0 0;border:none;min-width:34px;padding:0;font-size:.72rem}.pm-ply:hover{text-decoration:underline}.pm-kind{font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--felt-text-dim);border:1px solid var(--felt-line);border-radius:2px;padding:0 4px;font-size:.62rem}.pm-annotate{font-family:var(--mono);letter-spacing:.03em;color:var(--felt-text);border:1px solid var(--felt-line);cursor:pointer;background:0 0;border-radius:3px;align-self:flex-start;padding:7px 12px;font-size:.78rem;transition:border-color .12s,color .12s}.pm-annotate:hover:not(:disabled){border-color:var(--brass);color:var(--brass)}.pm-annotate:disabled{opacity:.6;cursor:default}.pm-finale{border-top:1px dashed var(--felt-line);flex-direction:column;gap:8px;padding-top:8px;display:flex}.pm-moves{flex-wrap:wrap;gap:4px 6px;display:flex}.pm-move{font-family:var(--mono);border:1px solid var(--felt-line);color:var(--felt-text);cursor:pointer;background:0 0;border-radius:3px;padding:3px 7px;font-size:.78rem}.pm-move:hover{border-color:var(--brass)}.pm-move-no{color:var(--felt-text-dim);margin-right:4px}.pm-move .pm-glyph{margin-left:2px;font-weight:700}.pm-move.blunder{border-color:#99392bcc}.pm-move.blunder .pm-glyph{color:#be4a38}.pm-move.mistake{border-color:#be7828b3}.pm-move.mistake .pm-glyph{color:#c8822d}.pm-move.inaccuracy .pm-glyph{color:var(--brass)}.pm-turning{font-family:var(--serif-body);color:var(--felt-text);margin:0;font-size:.85rem}.pm-glyph-note{font-family:var(--serif-body);color:var(--felt-text-dim);margin:0;font-size:.75rem;font-style:italic}.advice-card{border:1px solid var(--felt-line);border-left:3px solid #609954d9;border-radius:3px;flex-direction:column;gap:6px;padding:10px 12px;animation:.26s storyfade;display:flex}.advice-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.advice-move{font-family:var(--mono);letter-spacing:.03em;color:var(--felt-text);font-size:.82rem}.advice-move strong{color:var(--brass);font-size:.95rem}.advice-close{color:var(--felt-text-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:1rem;line-height:1}.advice-close:hover{color:var(--brass)}.advice-why{font-family:var(--serif-body);color:var(--felt-text);margin:0;font-size:.9rem}.advice-line{font-family:var(--mono);letter-spacing:.03em;color:var(--felt-text-dim);margin:0;font-size:.72rem}.advice-story{border-top:1px dashed var(--felt-line);flex-direction:column;gap:6px;padding-top:8px;display:flex}.advice-story-head{font-family:var(--mono);letter-spacing:.03em;color:var(--felt-text-dim);align-items:center;gap:8px;font-size:.75rem;display:flex}.advice-story-head strong{color:var(--felt-text)}.advice-story-head .eco-stamp{font-size:.7rem}.advice-story p{font-family:var(--serif-body);color:var(--felt-text);margin:0;font-size:.85rem;line-height:1.5}.advice-story details summary{font-family:var(--mono);letter-spacing:.04em;color:var(--brass);cursor:pointer;font-size:.72rem}.advice-story details p{color:var(--felt-text-dim);margin-top:6px}.footer{font-size:.78rem;font-family:var(--mono);color:var(--felt-text-dim);text-align:center;margin-top:30px}.footer a{color:var(--felt-text-dim)}.footer-copyright{letter-spacing:.06em;opacity:.75;margin-top:8px;font-size:.72rem}.drill-card{border:1px solid var(--felt-line);border-left:3px solid var(--brass);border-radius:3px;flex-direction:column;gap:8px;padding:10px 12px;animation:.26s storyfade;display:flex}.drill-head{align-items:baseline;gap:8px;display:flex}.drill-name{font-family:var(--mono);letter-spacing:.03em;color:var(--felt-text);flex:1;font-size:.82rem}.drill-ask{font-family:var(--serif-body);color:var(--felt-text);margin:0;font-size:.9rem}.drill-errors{color:var(--stamp);font-family:var(--mono);font-size:.75rem}.drill-progress{font-family:var(--mono);flex-wrap:wrap;gap:2px 8px;font-size:.78rem;line-height:1.9;display:flex}.drill-progress .move-no{color:var(--felt-text-dim);margin-right:3px}.drill-progress .played{color:var(--felt-text)}.drill-progress .pending{color:var(--felt-text-dim)}.drill-flash{font-family:var(--mono);color:var(--stamp);margin:0;font-size:.75rem}.drill-hint{font-family:var(--mono);color:var(--felt-text-dim);border:1px solid var(--felt-line);cursor:pointer;background:0 0;border-radius:3px;align-self:flex-start;padding:5px 10px;font-size:.72rem;transition:border-color .12s,color .12s}.drill-hint:hover{border-color:var(--brass);color:var(--brass)}.drill-grades{gap:8px;display:flex}.drill-grades button{font-family:var(--mono);color:var(--felt-text);border:1px solid var(--felt-line);cursor:pointer;background:0 0;border-radius:3px;padding:7px 12px;font-size:.78rem;transition:border-color .12s,color .12s}.drill-grades button:hover{border-color:var(--brass);color:var(--brass)}.trainer-blurb{font-family:var(--serif-body);color:var(--felt-text-dim);margin:8px 6px;font-size:.82rem}.trainer-next{text-align:left;width:100%;font-family:var(--mono);color:var(--brass);border:1px solid var(--felt-line);cursor:pointer;background:0 0;border-radius:3px;margin:0 0 8px;padding:8px 10px;font-size:.78rem;transition:border-color .12s;display:block}.trainer-next:hover{border-color:var(--brass)}.trainer-list{max-height:260px;overflow-y:auto}.presets button.trainer-row{align-items:baseline;gap:6px;width:100%;padding:4px 6px;display:flex}.trainer-row-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.trainer-due{font-family:var(--mono);color:var(--felt-text-dim);font-size:.65rem}.trainer-due.is-due{color:var(--stamp)}.importer-form{flex-wrap:wrap;align-items:center;gap:8px;padding:8px 6px;display:flex}.importer-sites{gap:4px;display:flex}.importer-sites button{font-family:var(--mono);color:var(--felt-text-dim);border:1px solid var(--felt-line);cursor:pointer;background:0 0;border-radius:3px;padding:6px 10px;font-size:.72rem}.importer-sites button.active{color:var(--brass);border-color:var(--brass)}.importer-user{font-family:var(--mono);color:var(--felt-text);border:1px solid var(--felt-line);background:0 0;border-radius:3px;flex:1;min-width:140px;padding:7px 10px;font-size:.78rem}.importer-fetch{font-family:var(--mono);color:var(--felt-text);border:1px solid var(--felt-line);cursor:pointer;background:0 0;border-radius:3px;padding:7px 12px;font-size:.75rem;transition:border-color .12s,color .12s}.importer-fetch:hover:not(:disabled){border-color:var(--brass);color:var(--brass)}.importer-fetch:disabled{opacity:.6;cursor:default}.importer-home{font-family:var(--serif-body);color:var(--felt-text);margin:4px 6px 8px;font-size:.85rem}.importer-list{max-height:320px;overflow-y:auto}.presets button.importer-game{border-bottom:1px dashed var(--felt-line);flex-direction:column;align-items:stretch;gap:2px;width:100%;padding:7px 6px;display:flex}.imp-players{align-items:baseline;gap:5px;font-size:.82rem;display:flex}.imp-players .imp-you{color:var(--brass)}.imp-result{font-family:var(--mono);color:var(--felt-text-dim);margin-left:auto;font-size:.72rem}.imp-meta{font-family:var(--mono);color:var(--felt-text-dim);gap:10px;font-size:.65rem;display:flex}.imp-chronicle{font-family:var(--serif-body);color:var(--felt-text-dim);font-size:.78rem;font-style:italic}.move-nav{align-items:center;gap:6px;display:flex}.move-nav button{font-family:var(--mono);color:var(--felt-text);border:1px solid var(--felt-line);cursor:pointer;background:0 0;border-radius:3px;padding:8px 12px;font-size:.8rem;line-height:1;transition:border-color .12s,color .12s}.move-nav button:hover:not(:disabled){border-color:var(--brass);color:var(--brass)}.move-nav button:disabled{opacity:.35;cursor:default}.move-nav-pos{text-align:center;font-family:var(--mono);letter-spacing:.04em;color:var(--felt-text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.75rem;overflow:hidden}.controls .primary{background:var(--brass);border-color:var(--brass);color:#221a0d;font-weight:600}.controls .primary:hover:not(:disabled){color:#221a0d;background:#c99a4d}.controls .primary:disabled{opacity:.5}.ctl-group{display:inline-flex}.ctl-group button{border-radius:0;margin-left:-1px}.ctl-group button:first-child{border-radius:3px 0 0 3px;margin-left:0}.ctl-group button:last-child{border-radius:0 3px 3px 0}.ctl-group button:only-child{border-radius:3px}.presets summary{align-items:center;gap:10px;display:flex}.panel-icon{font-size:1rem;line-height:1}.panel-text{flex-direction:column;gap:1px;min-width:0;display:flex}.panel-title{align-items:baseline;gap:8px;display:inline-flex}.panel-badge{letter-spacing:.06em;color:var(--paper);background:var(--stamp);border-radius:8px;padding:1px 7px;font-size:.62rem;font-weight:700}.panel-sub{letter-spacing:.03em;color:var(--felt-text-dim);font-size:.66rem;font-style:italic}.mini-board{aspect-ratio:1;border:2px solid #3a2b1c;border-radius:2px;grid-template-columns:repeat(8,1fr);width:152px;display:grid;box-shadow:0 8px 22px #0006}.mb-sq{font-size:13px;line-height:1;font-family:var(--serif-body);justify-content:center;align-items:center;display:flex}.mb-light{color:#1c150c;background:#f0d9b5}.mb-dark{color:#1c150c;background:#b58863}.ledger li{position:relative}.ledger li .line-name{font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.ledger li .line-name:hover{color:var(--stamp);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.lineage-preview{z-index:5;animation:.16s storyfade;position:absolute;top:calc(100% + 4px);left:76px}.stamp-press{animation:.42s cubic-bezier(.34,1.56,.64,1) stamppress}@keyframes stamppress{0%{opacity:0;transform:scale(1.6)rotate(-4deg)}55%{opacity:1;transform:scale(.94)rotate(.5deg)}to{transform:scale(1)rotate(0)}}.named-title{background-image:linear-gradient(90deg, var(--brass), var(--brass));background-position:0 100%;background-repeat:no-repeat;background-size:0% 2px;padding-bottom:3px;animation:.7s .2s forwards titlesweep}@keyframes titlesweep{to{background-size:100% 2px}}.starters{flex-direction:column;gap:10px;width:100%;max-width:340px;margin-top:26px;display:flex}.starter{text-align:left;cursor:pointer;background:0 0;border:1px solid #5c514059;border-radius:3px;flex-direction:column;gap:2px;padding:10px 14px;transition:border-color .12s,transform .12s;display:flex}.starter:hover{border-color:var(--brass);transform:translateY(-1px)}.starter-label{font-family:var(--serif-display);color:var(--ink);font-size:.95rem;font-weight:600}.starter-hint{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-soft);font-size:.66rem}.story-peek{display:none}@media (width<=880px){.story-peek{z-index:20;background:var(--paper);max-width:calc(100vw - 32px);color:var(--ink);border:1px solid var(--paper-edge);font-family:var(--serif-body);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:9px 16px;font-size:.85rem;display:flex;position:fixed;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000073}.story-peek .peek-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}}.scoresheet button.san{padding:4px 7px}.presets summary:after{content:"▸";color:var(--felt-text-dim);flex-shrink:0;margin-left:auto;transition:transform .16s}.presets[open] summary:after{transform:rotate(90deg)}.masthead .help-toggle{font-family:var(--serif-display);margin-left:auto;font-weight:700}.masthead .help-toggle+.theme-toggle{margin-left:0}.help-backdrop{z-index:50;background:#0a100c8c;justify-content:center;align-items:flex-start;padding:6vh 16px 16px;animation:.16s storyfade;display:flex;position:fixed;inset:0}.help-sheet{background:var(--paper);color:var(--ink);border-radius:3px;width:100%;max-width:620px;max-height:86vh;padding:26px 30px 28px;overflow-y:auto;box-shadow:0 24px 70px #0000008c}.help-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.help-sheet h2{font-family:var(--serif-display);color:var(--ink);margin:0 0 10px;font-size:1.5rem}.help-sheet .advice-close{color:var(--ink-soft);font-size:1.3rem}.help-lede{font-family:var(--serif-body);margin:0 0 6px;font-size:.95rem;line-height:1.6}.help-sheet h3{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);margin:18px 0 6px;font-size:.66rem;font-weight:600}.help-list{font-family:var(--serif-body);margin:0;padding-left:18px;font-size:.88rem;line-height:1.55}.help-list li{margin:3px 0}.help-sheet kbd{font-family:var(--mono);background:#5c514012;border:1px solid #5c514066;border-bottom-width:2px;border-radius:3px;padding:0 5px;font-size:.72rem}.help-foot{font-family:var(--serif-body);color:var(--ink-soft);border-top:1px solid #5c51404d;margin:18px 0 0;padding-top:12px;font-size:.85rem}.help-foot a,.help-sheet a{color:var(--stamp)}.opponent-modes button{white-space:nowrap}.ledger li.current:after{white-space:nowrap;flex-shrink:0}@media (width<=880px){.app{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.story-peek{bottom:calc(14px + env(safe-area-inset-bottom))}.scoresheet{max-height:138px;overflow-y:auto}.atlas-search,.importer-user,.pgn-import textarea{font-size:16px}.ledger li .ply{min-width:40px}.lineage-preview{left:46px}}@media (width<=1000px) and (height<=520px) and (orientation:landscape){.layout{grid-template-columns:minmax(280px,46%) 1fr;gap:20px}.story-peek{display:none}}
