:root{--ground:#fcfcfb;--ink:#1a1a18;--muted:#85857c;--faint:#b4b4ab;--hairline:#e5e5de;--accent:#3e7a52;--loss:#a05548;--sq-light:#f1f0ea;--sq-dark:#dbd9ce;--piece-light:#fcfcfb;--piece-dark:#1a1a18;--trace-ground:#0e100e;--trace-glow:#74b08a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ground:#131412;--ink:#e9e9e2;--muted:#8b8b81;--faint:#5c5c54;--hairline:#2a2b26;--accent:#74b08a;--loss:#c07a6c;--sq-light:#22231f;--sq-dark:#1a1b17;--piece-light:#e9e9e2;--piece-dark:#080907}}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font-variant-numeric:tabular-nums;overscroll-behavior:none;min-height:100dvh;font-family:system-ui,Helvetica Neue,sans-serif}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:none}.app{flex-direction:column;max-width:420px;height:100dvh;margin:0 auto;display:flex}.topbar{padding:calc(env(safe-area-inset-top) + 16px) 20px 16px;border-bottom:1px solid var(--hairline);justify-content:space-between;gap:12px;display:flex}.resource{flex-direction:column;gap:2px;display:flex}.resource:last-child{align-items:flex-end}.resource-value{letter-spacing:-.01em;font-size:1.75rem;font-weight:300;line-height:1}.resource-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.72rem;font-weight:500}.content{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.screen{padding:0 20px calc(env(safe-area-inset-bottom) + 24px);flex-direction:column;display:flex}.section{border-bottom:1px solid var(--hairline);flex-direction:column;gap:8px;padding:20px 0;display:flex}.section:last-child{border-bottom:none}.section h2{letter-spacing:-.01em;font-size:1rem;font-weight:600}.muted{color:var(--muted);font-size:.85rem}.lead{padding:20px 0 0}.empty{text-align:center;color:var(--muted);padding:40px 20px}.rival-line{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.rating-chip{color:var(--muted);font-size:.85rem;font-weight:500}.board{aspect-ratio:1;border:1px solid var(--hairline);-webkit-user-select:none;user-select:none;touch-action:manipulation;width:100%;margin:4px 0;position:relative}.board-squares{grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);display:grid;position:absolute;inset:0}.square.light{background:var(--sq-light)}.square.dark{background:var(--sq-dark)}.square.highlighted{box-shadow:inset 0 0 0 2px var(--accent)}.piece{will-change:transform;pointer-events:none;justify-content:center;align-items:center;width:12.5%;height:12.5%;font-size:min(8vw,4.6dvh);line-height:1;transition-property:transform;transition-timing-function:cubic-bezier(.3,.9,.35,1);display:flex;position:absolute;top:0;left:0}.piece.white{color:var(--piece-light);text-shadow:0 1px 0 var(--piece-dark), 0 -1px 0 var(--piece-dark), 1px 0 0 var(--piece-dark), -1px 0 0 var(--piece-dark)}.piece.black{color:var(--piece-dark);text-shadow:0 1px 0 var(--piece-light), 0 -1px 0 var(--piece-light), 1px 0 0 var(--piece-light), -1px 0 0 var(--piece-light)}.trace-panel{margin:8px 0 4px}.trace{background:var(--trace-ground);width:100%;height:72px;display:block}.trace-axis{stroke:#3a4038;stroke-width:1px;stroke-dasharray:3 5;vector-effect:non-scaling-stroke}.trace-glow{fill:none;stroke:var(--trace-glow);stroke-width:6px;stroke-opacity:.25;stroke-linejoin:round;vector-effect:non-scaling-stroke}.trace-line{fill:none;stroke:var(--trace-glow);stroke-width:1.6px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.trace-head{fill:#d8f0e2}.trace-labels{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);justify-content:space-between;gap:12px;margin-top:6px;font-size:.68rem;font-weight:500;display:flex}.blunder{color:var(--loss);font-weight:600}.result-card strong{font-size:.95rem;font-weight:600}.result-card p{color:var(--muted);font-size:.85rem}.result-card.win strong{color:var(--accent)}.result-card.loss strong{color:var(--loss)}.rematches{gap:6px;font-size:1rem;line-height:1.75rem;display:inline-flex}.rematch{color:var(--accent)}.rematch.spent{color:var(--hairline)}.style{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.style-chip{border:1px solid var(--hairline);color:var(--muted);padding:4px 8px;font-size:.78rem}.style-chip.school{border-color:var(--ink);color:var(--ink)}.style-chip.grandmaster{border-color:var(--accent);color:var(--accent)}.style-chip.edged{border-style:dashed}.habit-option{text-align:left;align-items:flex-start;width:100%}.habit-name{letter-spacing:-.01em;justify-content:space-between;align-items:baseline;gap:10px;width:100%;font-size:1rem;font-weight:600;display:flex}.tier-mark{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);flex:none;font-size:.66rem;font-weight:500}.tier-mark.master{color:var(--muted)}.tier-mark.grandmaster{color:var(--accent)}.edge-mark{text-transform:uppercase;letter-spacing:.08em;color:var(--loss);font-size:.66rem;font-weight:500}.habit-option:disabled{opacity:.45;cursor:default}.habit-option .muted{line-height:1.35}.result-card .action{margin-top:12px}.result-card.draw strong{color:var(--muted)}.controls{flex-direction:column;gap:12px;padding:20px 0;display:flex}.action{background:var(--ink);min-height:44px;color:var(--ground);margin-top:4px;font-size:.88rem;font-weight:500}.action:disabled{opacity:.35;cursor:default}.secondary{border:1px solid var(--hairline);min-height:44px;color:var(--muted);margin-top:8px;font-size:.88rem;font-weight:500}.link-action{color:var(--muted);font-size:.85rem;text-decoration:underline}.inspect-controls{justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.step{border:1px solid var(--hairline);min-width:72px;min-height:44px;font-size:.85rem}.step:disabled{opacity:.35;cursor:default}.inspect-moves{border-bottom:1px solid var(--hairline);flex-wrap:wrap;gap:4px;max-height:22dvh;padding-bottom:8px;display:flex;overflow-y:auto}.move-chip{min-height:32px;color:var(--muted);border:1px solid #0000;padding:4px 8px;font-size:.8rem}.move-chip.bot{color:var(--ink)}.move-chip.current{border-color:var(--accent);color:var(--accent)}.inspect-title{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.inspect-verdict{color:var(--ink);font-size:.98rem;line-height:1.45}.inspect-list{flex-direction:column;gap:2px;font-size:.85rem;list-style:none;display:flex}.inspect-list li{justify-content:space-between;gap:12px;display:flex}.inspect-list li.played{font-weight:600}.inspect-footnote{color:var(--faint);font-size:.72rem;line-height:1.5}@media (prefers-reduced-motion:reduce){.piece{transition-duration:0s!important}}.board-pieces{position:absolute;inset:0}.game-board{align-items:stretch;gap:8px;margin:4px 0;display:flex}.game-board .board{flex:1;width:auto;margin:0}.eval{flex-direction:column;flex:none;align-items:center;gap:6px;width:28px;display:flex}.eval-track{background:var(--hairline);flex:1;width:8px;position:relative}.eval-fill{background:var(--ink);transition:height .3s ease-out;position:absolute;bottom:0;left:0;right:0}.eval-figure{color:var(--muted);font-size:.68rem}@media (prefers-reduced-motion:reduce){.eval-fill{transition-duration:0s}}.why{min-height:2.6em;padding:8px 0;font-size:.9rem;line-height:1.35}.moves{color:var(--muted);flex-wrap:wrap;gap:4px 8px;font-size:.8rem;display:flex}.moves .bot{color:var(--ink);font-weight:600}.pick{text-align:left;align-items:flex-start;gap:8px;width:100%}.price{color:var(--muted);flex:none;font-weight:500}.final{letter-spacing:-.02em;font-size:3.5rem;font-weight:300;line-height:1}.stats{grid-template-columns:1fr 1fr;gap:16px 12px;display:grid}.career{border-bottom:1px solid var(--hairline);width:100%;height:140px;display:block}.career-line{fill:none;stroke:var(--accent);stroke-width:1.6px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.career-gate{stroke:var(--hairline);stroke-width:1px;vector-effect:non-scaling-stroke}.career-end{fill:var(--loss)}.lives{color:var(--accent);gap:6px;font-size:1rem;line-height:1.75rem;display:inline-flex}.stats .resource:last-child{align-items:flex-start}
