:root{color-scheme:light;--ink:#34362b;--muted:#75776b;--paper:#f4f1e9;--accent:#626c48}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 system-ui,sans-serif}header,footer{max-width:1280px;margin:auto;padding:26px 44px;display:flex;justify-content:space-between;align-items:center}header{border-bottom:1px solid #d8d6cb}a{color:inherit;text-decoration:none}.brand{font-weight:800;font-size:22px;letter-spacing:-1px}.brand span{display:block;font-size:9px;letter-spacing:2.1px;font-weight:500}.edition,.eyebrow,.caption{font-size:10px;letter-spacing:2px;font-weight:650}.edition{color:var(--muted)}main{max-width:1192px;margin:auto;padding:44px 32px 70px}.intro{margin-bottom:34px}.eyebrow{color:var(--accent);margin:0 0 8px}h1{font:normal clamp(52px,7vw,80px)/1.1 Georgia,serif;letter-spacing:-3px;margin:0}h1 i{font-weight:normal;color:#8b775b}.dek{color:var(--muted);margin:13px 0}.layout{display:grid;grid-template-columns:minmax(0,760px) 245px;gap:58px}.tabletop{padding:25px;background:#e6e1d5;border-radius:5px;box-shadow:inset 0 1px 1px #fff9}.board{position:relative;aspect-ratio:5/4;background:repeating-linear-gradient(1deg,#48322055 0 1px,transparent 1px 5px),linear-gradient(95deg,#684a32,#79573b 40%,#58402e);border:17px solid #443025;border-radius:7px;box-shadow:0 15px 22px #30231635,inset 0 0 13px #160c09,0 2px 0 #b49772;border-image:none;touch-action:none}.piece{position:absolute;left:calc(var(--x)*100%/var(--columns,5));top:calc(var(--y)*100%/var(--rows,4));width:calc(var(--w)*100%/var(--columns,5));height:calc(var(--h)*100%/var(--rows,4));padding:3px;transition:left .15s ease,top .15s ease;border:0;background:none;cursor:grab;touch-action:none;color:#f0dab5;font:600 12px Georgia,serif;box-shadow:none;min-height:0}.wood{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:7px;background-color:var(--wood);background-image:var(--grain),linear-gradient(105deg,#fff2,transparent 50%,#0002);border:5px solid #633e25;border-top-color:#b08a5d;border-left-color:#947048;border-right-color:#4c301e;border-bottom-color:#3e291c;box-shadow:inset 0 0 12px #25150855,0 2px 3px #100903aa;position:relative;overflow:hidden}.wood:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#ffe2aa12 4px,transparent 5px 8px);pointer-events:none}.piece span.letter{position:relative;z-index:1;text-shadow:0 1px 1px #291809;opacity:.8;border:1px solid #f5d4a050;border-radius:50%;width:24px;height:24px;line-height:22px}.piece[aria-pressed=true] .wood{outline:2px solid #eddfa4;outline-offset:-8px}.piece:focus-visible{outline:3px solid #f9eeaa;z-index:2}.piece:active{cursor:grabbing}.hide-labels .letter{visibility:hidden}.readout{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d7d4c8;padding:18px 0 12px;font-size:10px;letter-spacing:1.5px;color:var(--muted)}.readout b{font-size:21px;letter-spacing:0;color:var(--ink);margin-right:6px}#time{font-variant-numeric:tabular-nums;font-size:15px}#state{font-size:9px}#message{font-size:13px;min-height:23px}.actions{display:flex;gap:10px}button{font:inherit;border:1px solid #cbcbbd;border-radius:4px;padding:10px 17px;background:transparent;color:var(--ink);cursor:pointer}button:hover:enabled{filter:brightness(1.1);background-color:#e5e2d6}button:focus-visible,a:focus-visible{outline:3px solid #737b54;outline-offset:3px}button:disabled{opacity:.4;cursor:default}.primary{background:var(--accent);color:#fff;border-color:var(--accent);flex:1}.primary:hover:enabled{background:var(--accent)}.primary span{float:right}aside{padding-top:12px}h2{font:normal 31px/1.2 Georgia,serif;margin:10px 0 25px;letter-spacing:-.5px}.miniature{border-width:7px;border-radius:3px;box-shadow:0 5px 10px #30231625;pointer-events:none}.miniature .piece{padding:1px}.miniature .wood{border-width:2px;border-radius:3px}.miniature .letter{font-size:8px!important;width:15px!important;height:15px!important;line-height:13px!important}.caption{font-size:8px;color:var(--muted);text-align:center;margin:12px 0 25px}aside>p:not(.eyebrow):not(.caption){font-size:13px;color:var(--muted)}.rule{display:flex;gap:14px;border-top:1px solid #d7d4c8;padding-top:13px;margin-top:16px;font-size:12px}.rule>span{font:italic 18px Georgia,serif;color:#969784}.rule p{margin:0}.directions{display:flex;gap:7px;margin:18px 0}.directions button{padding:6px 14px}.labels{font-size:12px;display:flex;gap:8px;align-items:center}.labels input{accent-color:var(--accent)}.note{font:italic 15px/1.5 Georgia,serif!important;margin-top:24px}footer{border-top:1px solid #d8d6cb;font-size:10px;letter-spacing:1px}footer span{letter-spacing:0;color:var(--muted)}@media(max-width:850px){.layout{gap:28px;grid-template-columns:minmax(0,1fr) 200px}.tabletop{padding:14px}.board{border-width:11px}}@media(max-width:650px){header,footer{padding:20px}.edition{display:none}main{padding:30px 16px 40px}.layout{display:flex;flex-direction:column;gap:30px}.intro{margin-bottom:25px}.tabletop{padding:12px}.board{border-width:11px}.wood{border-width:3px}.piece{padding:2px}aside{display:grid;grid-template-columns:1fr 1fr;column-gap:22px}aside>.eyebrow,aside>h2{grid-column:1}aside>h2{font-size:28px;margin-bottom:15px}.miniature{grid-column:2;grid-row:1/4;align-self:start;border-width:6px}.caption{grid-column:2;margin:8px 0}.rule,.directions,.labels,.note,aside>p:not(.caption):not(.eyebrow){grid-column:1/-1}footer span{display:none}.actions button{padding:10px 12px}}@media(prefers-reduced-motion:reduce){.piece{transition:none}}

.board-ready{position:absolute;inset:0;z-index:3;border:0;background:transparent;display:grid;place-items:center;border-radius:0;padding:0;cursor:pointer;touch-action:manipulation}.board-ready span{padding:12px 20px;border:1px solid #d8cfb8;border-radius:999px;background:#f4f1e9ed;color:#454e32;box-shadow:0 4px 15px #0003;font-size:13px}.board-ready:hover:enabled{background:#ffffff08}.board-ready[hidden]{display:none}.play-style-control{display:flex;gap:12px;align-items:center;width:100%;margin:20px 0 8px;font-size:12px;color:var(--muted)}.play-style-control select{flex:1;min-width:0;font:inherit;color:var(--ink);background:var(--paper);border:1px solid #cbcbbd;border-radius:4px;padding:10px 36px 10px 10px;min-height:44px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%2375776b' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.piece{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}html[data-play-style=tapping] .piece{cursor:pointer}@media(max-width:650px){.play-style-control{grid-column:1/-1;margin-top:18px}}

/* Keep direction controls as real buttons beside the block's face button. */
.piece-body{display:block;width:100%;height:100%;padding:0;border:0;background:none;color:inherit;font:inherit;touch-action:none;cursor:inherit}.piece-body:hover:enabled{background:none;filter:none}.piece-body:focus-visible{outline:3px solid #eddfa4;outline-offset:-6px}.piece:has(.piece-body[aria-pressed=true]) .wood{outline:2px solid #eddfa4;outline-offset:-8px}.piece-arrows{position:absolute;inset:4px;z-index:2;display:grid;grid-template-columns:repeat(var(--choices),minmax(0,1fr));align-items:stretch;border-radius:5px;overflow:hidden;background:#25170b88}.piece-arrow{display:grid;place-items:center;min-width:0;min-height:44px;padding:0;border:0;border-right:1px solid #f5deb870;border-radius:0;background:#25170b22;color:#fff3d6;font:700 clamp(28px,4vw,42px)/1 Arial,sans-serif;text-shadow:0 2px 2px #000;touch-action:manipulation}.piece-arrow:last-child{border-right:0}.piece-arrow:hover:enabled,.piece-arrow:active{background:#ead3a94d}.piece-arrow:focus-visible{outline:3px solid #fff1bf;outline-offset:-4px}.piece:has(.piece-arrows) .letter{visibility:hidden}

/* Expand only the selected block's choices so every arrow has a large touch target. */
.piece:has(.piece-arrows){z-index:4}.piece-arrows{inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,96px);height:max(100%,96px);min-width:96px;min-height:96px;grid-template-columns:repeat(2,minmax(44px,1fr));grid-auto-rows:minmax(44px,1fr);background:#4f3826f5;border:2px solid #dfc69b;border-radius:8px;box-shadow:0 4px 14px #140b0866}.piece-arrow{font-size:36px;min-height:44px;min-width:44px;border:1px solid #f5deb844}.piece-arrow:nth-child(3):last-child{grid-column:1/-1}.piece-arrows:has(.piece-arrow:only-child){grid-template-columns:1fr}

.win-dialog{color-scheme:light;width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box;margin:auto;padding:36px;border:1px solid #c8baa1;border-top:7px solid #72543b;border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:0 24px 70px #21180c55;text-align:center}.win-dialog::backdrop{background:#28251cd1;backdrop-filter:blur(4px)}.win-dialog h2{font:normal clamp(34px,7vw,44px)/1.15 Georgia,serif;letter-spacing:-1px;margin:12px 0 16px}.win-dialog .eyebrow{font-size:9px;margin-top:22px}.win-dialog p{font-size:14px;line-height:1.7;color:var(--muted)}.win-dialog .eyebrow{color:var(--accent)}.win-inlay{display:flex;justify-content:center;align-items:center;gap:5px}.win-inlay span{width:22px;height:22px;border-radius:3px;background:repeating-linear-gradient(0deg,#d0a56f22 0 2px,#0001 3px 4px),#9c754b;box-shadow:inset 1px 1px 1px #e4c69d, inset -2px -2px 2px #4f3424}.win-inlay span:nth-child(2){width:46px;background-color:#806d4f}.win-inlay span:last-child{background-color:#b58a54}.win-stats{display:grid;grid-template-columns:1fr 1fr;margin:26px 0 18px;padding:20px 0;border-top:1px solid #d7d4c8;border-bottom:1px solid #d7d4c8}.win-stats div+div{border-left:1px solid #d7d4c8}.win-stats dt{font-size:10px;letter-spacing:2px;color:var(--muted)}.win-stats dd{margin:8px 0 0;font:normal 34px/1.2 Georgia,serif;font-variant-numeric:tabular-nums;color:var(--ink)}.win-dialog .win-note{font:italic 16px/1.5 Georgia,serif;margin:20px 0 28px}.win-actions{display:flex;gap:10px}.win-actions button{flex:1;min-height:44px;padding:11px 12px;font-size:13px}.win-actions .primary{flex:1.1}@media(max-width:440px){.win-dialog{padding:28px 20px}.win-actions{flex-direction:column}.win-actions .primary{order:-1}}

.challenge-banner{font-size:12px;color:var(--accent);border-bottom:1px solid #d7d4c8;padding:12px 0;margin:0;overflow-wrap:anywhere}.challenge-create{text-align:left;border-top:1px solid #d7d4c8;border-bottom:1px solid #d7d4c8;padding:18px 0;margin-top:24px}.challenge-create h3{font:normal 24px/1.2 Georgia,serif;margin:0 0 6px}.win-dialog .challenge-create p{font-size:12px;margin:8px 0 12px}.challenge-create label{display:block;font-size:12px;color:var(--muted);margin:12px 0 8px}.challenge-name-row,.challenge-link-row{display:flex;gap:8px}.challenge-create input{min-width:0;flex:1;width:100%;border:1px solid #cbcbbd;border-radius:4px;background:#fffcf5;color:var(--ink);font:inherit;padding:11px 10px;font-size:13px}.challenge-create button{flex:none;padding:10px 12px;font-size:12px}.challenge-create .primary{width:auto}.challenge-create input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.challenge-target{border-block:1px solid #d7d4c8;padding:22px;margin:24px 0}.challenge-target span{display:block;font-size:10px;letter-spacing:2px;color:var(--muted)}.challenge-target strong{display:block;margin-top:8px;font:normal 52px/1.2 Georgia,serif;color:var(--accent)}#challengerDisplay{color:var(--ink);font-size:20px;overflow-wrap:anywhere}#challengeSaveStatus:empty{display:none}.win-dialog #challengeSaveStatus{color:var(--accent);overflow-wrap:anywhere}.win-dialog [hidden]{display:none!important}
@media(max-width:440px){.challenge-name-row,.challenge-link-row{flex-direction:column}.challenge-create button{min-height:44px}}
