:root{--ink:#171717;--muted:#747474;--line:#e4e4e1;--paper:#fff;--zack:#b95e42;--tournament:#2f6e5c}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font:14px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,select{font:inherit;color:inherit}button{cursor:pointer}.shell{max-width:1060px;margin:auto;padding:28px 24px 48px}.title-row{justify-content:space-between;align-items:end;padding:30px 0 24px;display:flex}.title-row h1{letter-spacing:-1.8px;margin:0;font:500 clamp(30px,5vw,50px)/1.05 Georgia,serif}.title-row h1 em{color:var(--muted);font-style:normal;font-weight:400}.run-area{justify-items:center;gap:6px;display:grid}.run-area>span{color:var(--muted);font-size:10px}.run-button{border:1px solid var(--ink);background:var(--ink);color:#fff;white-space:nowrap;min-width:170px;padding:17px 26px;font-size:14px;font-weight:700}.run-button:hover{color:var(--ink);background:#fff}.play-icon{padding-right:7px;font-size:11px}.scoreboard{border-block:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;padding:13px 0;display:grid}.player{align-items:baseline;gap:8px;font-size:12px;font-weight:600;display:flex}.player strong{font:500 24px/1 Georgia,serif}.player.zack strong{color:var(--zack)}.player.tournament{justify-content:flex-end}.player.tournament strong{color:var(--tournament)}.match-mark{color:var(--muted);padding:0 18px;font-size:11px}.match-mark i{display:none}.game-tabs{gap:0;padding:14px 0 24px;display:flex}.game-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:1px solid #0000;padding:5px 13px;font-size:12px}.game-tabs button:first-child{padding-left:0}.game-tabs button.active{color:var(--ink);border-color:var(--ink)}.game-tabs button.done:not(.active):after{content:" ·";color:var(--zack)}.viewer{grid-template-columns:minmax(0,650px) 250px;align-items:start;gap:38px;display:grid}.board-wrap{width:100%}chess-board{aspect-ratio:1;--chessboard-border-width:0;--chessboard-dark-color:#779556;--chessboard-light-color:#ebecd0;width:100%;display:block}.scorecard{border-top:1px solid var(--ink);min-height:0}.game-heading{border-bottom:1px solid var(--line);justify-content:space-between;padding:11px 0;display:flex}.game-heading p{margin:0;font-weight:600}.game-heading span{color:var(--muted);font-size:11px}.side{border-bottom:1px solid var(--line);gap:9px;padding:11px 0;display:flex}.side-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px;font-size:10px;font-weight:700;display:block}.white .side-label{color:var(--zack)}.black .side-label{color:var(--tournament)}.side b,.side small{display:block}.side b{font-size:14px}.side small{color:var(--muted);margin-top:1px;font:11px ui-monospace,SFMono-Regular,monospace}.moves-title{color:var(--muted);justify-content:space-between;padding:16px 0 7px;font-size:11px;display:flex}.moves{grid-template-columns:1fr 1fr;height:300px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.moves li{cursor:pointer;border-bottom:1px solid #f0f0ee;padding:6px 5px;font:12px ui-monospace,SFMono-Regular,monospace}.moves li:nth-child(odd):before{content:attr(data-number) ". ";color:var(--muted)}.moves li.active{background:#f2f2ef}.moves li:hover{background:#f7f7f5}.controls{align-items:center;gap:5px;padding:24px 0 5px;display:flex}.controls button,.controls select{border:1px solid var(--line);background:#fff;padding:7px 10px;font-size:12px}.controls button:first-child,.controls button:nth-child(3){padding:5px 11px;font:20px/.9 Georgia,serif}.controls .play-pause{border-color:var(--ink);background:var(--ink);color:#fff}.controls label{color:var(--muted);margin-left:auto;font-size:11px}.controls select{padding:6px}.control-rule,.message{display:none}@media (width<=720px){.shell{padding:20px 16px 32px}.title-row{text-align:center;justify-items:center;gap:20px;padding:19px 0 21px;display:grid}.title-row h1{font-size:36px}.run-area{width:100%}.run-button{width:100%;min-width:0;padding:17px}.viewer{grid-template-columns:1fr;gap:22px}.scorecard{grid-template-columns:1fr 1fr;column-gap:18px;display:grid}.game-heading,.moves-title{grid-column:1/-1}.side{border-bottom:0}.moves{grid-column:1/-1;height:180px}.controls{grid-template-columns:1fr 1.25fr 1fr;gap:7px;display:grid}.controls button{min-height:39px}.controls button:nth-of-type(4),.controls button:nth-of-type(5){grid-column:span 1}.controls label{text-align:center;grid-column:span 1;margin:0}.controls select{max-width:76px}.scoreboard{font-size:10px}.match-mark{padding:0 9px}.player{gap:4px}.player strong{font-size:21px}.game-tabs{justify-content:space-between;padding:12px 0 18px}.game-tabs button{padding:6px 8px}}
