*,:before,:after{box-sizing:border-box}html,body,#root{background:#3a2518 url(/assets/walnut-DAp1xma2.png) 50%/cover no-repeat;width:100%;height:100%;margin:0;font-family:system-ui,sans-serif;overflow:hidden}.app{width:100%;height:100%;position:relative}.canvas-shell{position:absolute;inset:0}.canvas-loading{color:#ffffffb3;place-items:center;font-size:.9rem;display:grid;position:absolute;inset:0}.chess-experience{flex-direction:column;width:100%;height:100%;display:flex}.top-bar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#ffffffc7;z-index:3;background:#14100cd1;border-bottom:1px solid #ffffff1a;flex:none;align-items:center;gap:.45rem;padding:.3rem .75rem;font-size:.72rem;line-height:1.2;display:flex}.top-bar-main{white-space:nowrap;flex:1;align-items:center;gap:.45rem;min-width:0;display:flex;overflow-x:auto}.top-bar-title{color:#ffffffeb;flex:none;font-weight:600}.top-bar-sep{color:#ffffff4d;-webkit-user-select:none;user-select:none;flex:none}.top-bar-status{color:#ffffffb8;flex:none}.top-bar-result{color:#ffe6a0f2;flex:none;font-weight:600}.top-bar-message{color:#ffb4b4e6;flex:none}.top-bar-button{color:#ffffffe0;font:inherit;font-size:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff38;border-radius:.25rem;flex:none;padding:.15rem .4rem}.top-bar-button:hover{background:#ffffff24}.top-bar-engine-ms{color:#ffffffc7;flex:none;align-items:center;gap:.3rem;display:inline-flex}.top-bar-engine-ms input{color:#ffffffe6;width:3.25rem;font:inherit;font-size:inherit;background:#ffffff14;border:1px solid #ffffff38;border-radius:.25rem;padding:.12rem .3rem}.top-bar-actions{flex:none;align-items:center;gap:.35rem;padding-left:.35rem;display:flex}.game-viewport{flex:1;min-height:0;position:relative}.view-toggle{border:1px solid #ffffff40;border-radius:.4rem;width:100%;display:inline-flex;overflow:hidden}.view-toggle button{color:#ffffffbf;font:inherit;cursor:pointer;background:#ffffff14;border:0;flex:1;padding:.45rem .75rem;font-size:.85rem}.view-toggle button.is-active{color:#fffffff2;background:#ffffff38}.view-toggle button:hover{background:#ffffff24}.board-2d-shell{place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.board-2d{aspect-ratio:1;border:.35rem solid #5c4033;border-radius:.2rem;flex-direction:column;width:min(92vmin,720px);display:flex;box-shadow:0 1.5rem 3rem #00000059}.board-2d-row{flex:1;grid-template-columns:repeat(8,1fr);display:grid}.board-2d-cell{position:relative}.chess-square{cursor:pointer;border:0;padding:0;position:absolute;inset:0}.chess-piece{z-index:1;cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:6%}.chess-piece img{object-fit:contain;pointer-events:none;width:100%;height:100%}.chess-piece.is-selected img{filter:drop-shadow(0 0 .35rem #ffd54f)}.chess-piece-drag-ghost{z-index:10;pointer-events:none;position:fixed}.chess-piece-drag-ghost img{object-fit:contain;filter:drop-shadow(0 .35rem .75rem #00000073);width:100%;height:100%}.legal-move-highlight{pointer-events:none;background:#5a9e4a80;position:absolute;inset:0}.moves-panel{color:#ffffffe0;flex-direction:column;flex:none;align-items:flex-end;display:flex;position:relative}.moves-button{color:#ffffffe6;cursor:pointer;background:#ffffff14;border:1px solid #ffffff38;border-radius:.25rem;place-items:center;width:1.5rem;height:1.5rem;padding:0;display:grid}.moves-button:hover{background:#ffffff24}.moves-button svg{width:.9rem;height:.9rem}.move-list-body-wrapper{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;background:#14100ce0;border:1px solid #ffffff2e;border-radius:.5rem;flex-direction:column;width:min(14rem,100vw - 1.5rem);max-height:min(40vh,100vh - 3rem);padding:.65rem .75rem;display:flex;position:absolute;top:calc(100% + .35rem);right:0}.move-list-title{margin-bottom:.35rem;font-size:.82rem;font-weight:600}.move-list-body{color:#ffffffb8;flex:1;min-height:0;margin:0;padding:0;font:.72rem/1.35 ui-monospace,Menlo,Consolas,monospace;list-style:none;overflow-y:auto}.move-entry{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.25rem;gap:.4rem;padding:.12rem .3rem;display:flex}.move-entry:hover{background:#ffffff14}.move-entry.is-active{color:#fff;background:#ffffff29}.move-number{color:#ffffff73;flex:none;min-width:2.2rem}.promotion-overlay{z-index:20;background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.promotion-dialog{color:#ffffffe6;text-align:center;background:#14100cf0;border:1px solid #fff3;border-radius:.55rem;padding:1rem 1.1rem}.promotion-title{margin:0 0 .75rem;font-size:.95rem;font-weight:600}.promotion-options{justify-content:center;gap:.5rem;display:flex}.promotion-option{cursor:pointer;background:#ffffff14;border:1px solid #ffffff40;border-radius:.4rem;width:3.25rem;height:3.25rem;padding:.35rem}.promotion-option img{object-fit:contain;width:100%;height:100%}.promotion-option:hover{background:#ffffff29}.promotion-cancel{color:#fffc;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:.4rem;margin-top:.75rem;padding:.4rem .75rem;font-size:.82rem}.settings-panel{color:#ffffffe0;flex-direction:column;flex:none;align-items:flex-end;display:flex;position:relative}.settings-button,.settings-panel-body,.settings-action-button,.view-toggle button{pointer-events:auto}.settings-button{color:#ffffffe6;cursor:pointer;background:#ffffff14;border:1px solid #ffffff38;border-radius:.25rem;place-items:center;width:1.5rem;height:1.5rem;padding:0;display:grid}.settings-button svg{width:.9rem;height:.9rem}.settings-panel-body{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#14100ce0;border:1px solid #ffffff2e;border-radius:.5rem;width:min(18rem,100vw - 1.5rem);max-height:min(100vh - 3rem,80vh);margin-top:0;padding:.75rem;position:absolute;top:calc(100% + .35rem);right:0;overflow-y:auto}.settings-title{margin:0 0 .75rem;font-size:.95rem;font-weight:600}.settings-note{color:#ffffff8c;margin:0;font-size:.82rem}.settings-group{border:1px solid #ffffff1a;border-radius:.4rem;margin:0 0 .75rem;padding:.55rem .65rem .7rem}.settings-group legend{letter-spacing:.04em;text-transform:uppercase;color:#ffffff8c;padding:0 .25rem;font-size:.78rem;font-weight:600}.settings-row{grid-template-columns:4.5rem 1fr 2.5rem;align-items:center;gap:.45rem;margin-top:.45rem;font-size:.82rem;display:grid}.settings-row-label{color:#ffffffb8}.settings-row-value{text-align:right;font-variant-numeric:tabular-nums;color:#ffffff8c;font-size:.75rem}.settings-row input[type=range]{width:100%}.settings-row input[type=color]{cursor:pointer;background:0 0;border:0;grid-column:2/-1;width:100%;height:1.75rem;padding:0}.settings-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.settings-action-button{color:#ffffffe6;font:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff40;border-radius:.4rem;padding:.4rem .65rem;font-size:.82rem}.settings-action-button:hover,.settings-button:hover{background:#ffffff24}.settings-copy-status{color:#b4e6b4e6;font-size:.78rem}.settings-import{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.settings-import-input{resize:vertical;color:#ffffffe0;width:100%;min-height:7rem;font:inherit;background:#00000040;border:1px solid #ffffff2e;border-radius:.4rem;padding:.55rem .65rem;font-size:.78rem;line-height:1.4}
