:root{color-scheme:light;--ink:#243d35;--muted:#768078;--paper:#f7f5ee;--line:#dddeda;--green:#35594b}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #cd9a4d;outline-offset:3px}header{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 6%}.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:14px;font-weight:bold;font-size:23px;letter-spacing:3px}.brand-mark{font-size:39px;letter-spacing:0}.brand-sub{font-size:10px;font-weight:normal;letter-spacing:2px;border-left:1px solid #c7ccc4;padding-left:14px}.header-note{font-family:Georgia,serif;font-style:italic;font-size:15px;color:var(--muted)}main{max-width:1100px;padding:0 30px;margin:auto}.intro{padding:45px 0 30px}.eyebrow{font-size:10px;font-weight:bold;letter-spacing:2px;color:var(--muted)}h1{font-family:Georgia,serif;font-weight:normal;font-size:clamp(38px,5vw,57px);letter-spacing:-2px;margin:10px 0}p{line-height:1.6}.intro p{color:var(--muted);margin:0;font-size:15px}.game-layout{display:grid;grid-template-columns:minmax(0,610px) minmax(260px,1fr);gap:48px}.player{display:flex;align-items:center;gap:12px;min-height:64px}.player strong{display:block;font-size:15px}.player small{display:block;margin-top:5px;color:var(--muted);font-size:11px}.avatar{height:40px;width:40px;display:grid;place-items:center;border-radius:50%;font-size:28px}.avatar.dark{background:var(--green);color:white}.avatar.light{background:#e6e4db;color:var(--green)}.player-tag{margin-left:auto;color:var(--muted);font-size:11px}.board-frame{padding:13px;background:#e6e2d6;border-radius:4px;box-shadow:0 10px 30px #28372a12}.board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1}.square{position:relative;border:0;border-radius:0;background:#ecebdc;padding:0;display:grid;place-items:center;aspect-ratio:1;min-width:0}.square.dark{background:#779384}.square.last{box-shadow:inset 0 0 0 100px #e6c95e44}.square.selected{box-shadow:inset 0 0 0 4px #e6b84c}.square.target:after{content:'';position:absolute;width:23%;height:23%;background:#183d3550;border-radius:50%}.square.capture:after{width:86%;height:86%;border:5px solid #284b4260;background:transparent}.square.check{background:#c77663}.piece{font-family:'Arial Unicode MS','DejaVu Sans',serif;font-size:clamp(23px,4.6vw,53px);line-height:1;z-index:1;pointer-events:none}.piece.white{color:#fffaf0;text-shadow:0 1px 2px #172b24,1px 0 #172b24,-1px 0 #172b24}.piece.black{color:#203e33;text-shadow:0 1px 1px #fff4}.coord{position:absolute;font-size:9px;font-weight:bold;color:#344f42}.dark .coord{color:#f3f1e7}.rank{left:4px;top:4px}.file{right:4px;bottom:3px}aside{padding-top:15px}.status-card{padding:20px 0 26px;border-bottom:1px solid var(--line)}h2{font-family:Georgia,serif;font-weight:normal;font-size:29px;margin:13px 0 8px}.status-card p{font-size:13px;color:var(--muted);min-height:42px}.actions{display:flex;gap:10px;margin-top:22px}.primary,.secondary{border-radius:4px;padding:13px 16px;font-size:12px}.primary{background:var(--green);border:1px solid var(--green);color:white}.primary span{margin-left:25px}.secondary{background:transparent;border:1px solid #c8cfc5;color:var(--ink)}.notice{padding:12px;background:#eee5d0;color:#705827;border-radius:4px;font-size:12px;line-height:1.6;margin:12px 0}.section-title{display:flex;justify-content:space-between;align-items:center;margin:25px 0 20px}h3{font-size:14px;margin:0}.section-title>span{font-size:11px;color:var(--muted)}.history-head,.history-row{display:grid;grid-template-columns:35px 1fr 1fr;padding:10px 12px}.history-head{font-size:9px;letter-spacing:1px;color:var(--muted);border-bottom:1px solid var(--line)}.history{height:220px;overflow:auto}.history-row{font-size:14px}.history-row:nth-child(even){background:#eeeee6}.history-row span:first-child{color:var(--muted);font-size:12px}.empty{font:italic 17px/1.8 Georgia,serif;text-align:center;color:#8b9289;padding-top:48px}.footnote{border-top:1px solid var(--line);padding-top:19px;font-size:11px;color:var(--muted)}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin:28px 0 0;padding:22px 0;font-size:10px;color:var(--muted);letter-spacing:1px}dialog{border:1px solid var(--line);border-radius:8px;padding:25px;background:var(--paper);color:var(--ink);max-width:95vw}dialog::backdrop{background:#16362b88}.promotion-options{display:flex;gap:10px}.promotion-options button{background:#e5e8dc;border:0;border-radius:5px;padding:12px;font-size:42px;color:var(--ink)}.promotion-options small{display:block;font:12px Arial} [hidden]{display:none!important}@media(max-width:760px){header{height:65px;padding:0 20px}.header-note{display:none}main{padding:0 16px}.intro{padding:28px 0 15px}.game-layout{grid-template-columns:1fr;gap:8px}.table{max-width:570px;width:100%;margin:auto}.piece{font-size:clamp(25px,8vw,48px)}aside{padding-top:0}.status-card{padding-top:16px}.history{height:160px}.player-tag{font-size:10px}.board-frame{padding:8px}footer{font-size:8px;gap:15px}.actions button{flex:1}}
/* Request inspector shares the board's desktop row and stacks on mobile. */
main{max-width:1320px}.game-layout{grid-template-columns:minmax(0,610px) minmax(0,1fr);gap:40px}aside{min-width:0}.trace-card{margin-top:22px;border-bottom:1px solid var(--line);padding-bottom:18px}.trace-card .section-title{margin:0 0 10px}.trace-note,.trace-label{font-size:11px;color:var(--muted)}.trace-note{margin:0 0 14px}.trace-label{display:block;margin-bottom:6px}#trace-turn{width:100%;padding:9px;background:var(--paper);border:1px solid #c8cfc5;border-radius:4px;color:var(--ink)}#trace-summary{font-size:12px;line-height:1.6;margin:12px 0}.trace-card details{border:1px solid var(--line);border-radius:4px;margin-top:10px;overflow:hidden}.trace-card summary{cursor:pointer;padding:11px;font-size:12px;font-weight:bold}.trace-card summary span{font-size:10px;color:var(--muted);font-weight:normal;margin-left:8px}.trace-card pre{font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;background:#eeeee6;padding:12px;margin:0;max-height:230px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.history{height:140px}@media(max-width:760px){.game-layout{grid-template-columns:1fr;gap:8px}.trace-card pre{max-height:260px}}

/* Move history sits left of the board on desktop. */
main{max-width:1540px}.game-layout{grid-template-columns:200px minmax(0,610px) minmax(280px,1fr);gap:28px}.game-layout>.history-card{min-width:0;padding-top:35px}.game-layout>.history-card .section-title{margin:0 0 20px;gap:8px}.game-layout>.history-card .history{height:450px}.table{min-width:0;container-type:inline-size}.piece{font-size:clamp(22px,9cqw,53px)}
@media(max-width:1100px) and (min-width:761px){.game-layout{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr)}.game-layout>.table{grid-column:1;grid-row:1}.game-layout>aside{grid-column:2;grid-row:1 / span 2}.game-layout>.history-card{grid-column:1;grid-row:2;padding-top:0}.game-layout>.history-card .history{height:180px}}
@media(max-width:760px){.game-layout{grid-template-columns:1fr;gap:8px}.game-layout>.table{grid-row:1}.game-layout>.history-card{grid-row:2;padding-top:20px}.game-layout>.history-card .history{height:160px}.game-layout>aside{grid-row:3}}
