:root{--paper:#f6f4ef;--paper-2:#ebe7df;--ink:#262320;--ink-soft:#5c5750;--muted:#8b857c;--line:#2623201a;--line-strong:#26232033;--card:#2d2a27;--yellow:#ffd84d;--yellow-deep:#d9b12a;--coral:#ff6b4a;--coral-deep:#d9502f;--cream:#fff4e4;--violet:#6b4ee6;--mint:#2fa87c;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--serif:"Instrument Serif", "Iowan Old Style", Georgia, serif;--sans:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{background:var(--paper);min-width:320px;min-height:100svh;color:var(--ink);flex-direction:column;margin:0;display:flex;overflow-x:hidden}.header,main,footer{width:100%}main{flex-direction:column;flex:1 0 auto;justify-content:center;display:flex}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.4}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--ink);outline-offset:4px}h1,h2,h3,p{margin:0}[hidden]{display:none!important}.yellow{color:var(--yellow-deep)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mini-label{font:600 11px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.live-dot{background:var(--violet);border-radius:50%;flex:none;width:7px;height:7px;display:inline-block;box-shadow:0 0 0 4px #6b4ee61a}.header{justify-content:space-between;align-items:center;gap:14px 24px;max-width:1400px;margin:auto;padding:26px 40px;display:flex}.brand{font:400 34px/1 var(--serif);letter-spacing:-.01em;color:var(--ink);align-items:center;gap:12px;display:flex}.brand-mark{width:30px;height:36px;position:relative;transform:rotate(-14deg)}.brand-mark i{background:linear-gradient(150deg,#ff906b,#f46647);border:1px solid #ffa27d;border-radius:50%;width:30px;height:21px;position:absolute;bottom:2px;box-shadow:0 4px #ce4c32,0 6px #a83928}.brand-mark i+i{background:linear-gradient(150deg,#fff6dd,#e5ccb1);border-color:#fff6dd;bottom:13px;box-shadow:0 4px #b69d87,0 6px #90735e}.header-actions{align-items:center;gap:8px;display:flex}.icon-button{border:1px solid var(--line-strong);width:42px;height:42px;color:var(--ink);transition:background-color .18s ease, color .18s ease, transform .18s var(--ease-out);background:0 0;border-radius:50%;place-items:center;display:inline-grid}.icon-button svg{display:block}@media (hover:hover) and (pointer:fine){.icon-button:hover:not(:disabled){background:var(--ink);color:var(--paper);transform:translateY(-1px)}}.button{border:1px solid var(--ink);min-height:52px;font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:background-color .18s ease, color .18s ease, transform .18s var(--ease-out), box-shadow .18s ease;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:12px;padding:0 26px;display:flex;position:relative;transform:skew(-9deg)}.button>*{transform:skew(9deg)}.button svg{flex:none}.button.coral{background:var(--yellow);border-color:var(--yellow);box-shadow:0 6px 18px -8px #d9b12a99}.button.cream{background:0 0}.button:active:not(:disabled){transform:skew(-9deg)translateY(1px)}@media (hover:hover) and (pointer:fine){.button:hover:not(:disabled){transform:skew(-9deg)translateY(-2px)}.button.cream:hover:not(:disabled){background:var(--ink);color:var(--paper)}.button.coral:hover:not(:disabled){box-shadow:0 10px 24px -10px #d9b12acc}}.button-icon,.button-trail{display:inline-flex}.text-button{font:600 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.text-button:hover{color:var(--ink)}.difficulty{justify-content:space-between;align-items:center;gap:12px;display:flex}.difficulty>span{font:600 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.difficulty>div{border:1px solid var(--line-strong);background:#fff;border-radius:999px;padding:3px;display:flex}.difficulty button{color:var(--ink-soft);font:600 11px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;background:0 0;border:0;border-radius:999px;padding:7px 12px;transition:background-color .18s,color .18s}.difficulty button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.avatar{border-radius:12px;place-items:center;width:40px;height:40px;display:grid;transform:rotate(-4deg)}.avatar.dark{background:var(--coral);color:var(--cream);box-shadow:0 3px 0 var(--coral-deep)}.avatar.light{background:var(--cream);color:#977451;border:1px solid #e9dcc8;box-shadow:0 3px #cdb9a3}.piece-count{font:400 24px/1 var(--serif);font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin-left:auto;display:flex}.mini-piece{background:var(--cream);border:1px solid #d9c4ad;border-radius:50%;width:15px;height:15px;display:inline-block;box-shadow:0 2px #b5a18d}.mini-piece.dark{background:var(--coral);border-color:#e15133;box-shadow:0 2px #aa3929}footer{background:var(--card);color:#c9c2b7;justify-content:center;align-items:center;gap:15px;margin-top:auto;padding:18px 40px;display:flex}footer>span{font:500 12px/1.6 var(--sans);letter-spacing:.01em;text-align:center}footer a{text-underline-offset:3px;color:var(--paper);text-decoration:underline}.loader{z-index:200;background:var(--paper);place-content:center;justify-items:center;gap:22px;transition:opacity .45s,visibility .45s;animation:.4s 4s forwards loader-fallback;display:grid;position:fixed;inset:0}.loader.is-done{opacity:0;visibility:hidden;pointer-events:none}.loader-mark{width:30px;height:36px;transform:rotate(-14deg)scale(1.8)}.loader-mark i{animation:1.1s cubic-bezier(.34,1.2,.64,1) infinite loader-hop}.loader-mark i+i{animation-delay:.18s}.loader-name{font:400 40px/1 var(--serif);letter-spacing:-.01em;color:var(--ink);margin-top:10px}.loader-bar{background:var(--line-strong);border-radius:999px;width:120px;height:2px;overflow:hidden}.loader-bar i{border-radius:inherit;background:var(--ink);width:45%;height:100%;animation:1.2s ease-in-out infinite loader-slide;display:block}@keyframes loader-hop{0%,to{transform:translateY(0)}40%,60%{transform:translateY(-8px)}}@keyframes loader-slide{0%{transform:translate(-120%)}to{transform:translate(260%)}}@keyframes loader-fallback{to{opacity:0;visibility:hidden;pointer-events:none}}.toast{z-index:20;background:var(--ink);width:max-content;max-width:90vw;color:var(--paper);font:500 13px/1.4 var(--sans);border-radius:10px;padding:14px 20px;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px -12px #26232066}dialog{border:1px solid var(--line);width:min(460px,100vw - 30px);max-height:90svh;color:var(--ink);background:#fff;border-radius:20px;padding:38px;box-shadow:0 40px 100px -30px #26232066}dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#26232080}.modal-close{width:34px;height:34px;position:absolute;top:14px;right:14px}dialog h2{font:400 40px/1.02 var(--serif);letter-spacing:-.02em;margin-bottom:14px}dialog p{color:var(--ink-soft);margin-bottom:20px;font-size:14px;line-height:1.65}dialog label{font:600 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:20px 0 8px;display:block}dialog input{border:1px solid var(--line-strong);background:var(--paper);width:100%;color:var(--ink);font:14px var(--sans);border-radius:10px;padding:13px}dialog .button{width:100%;margin-top:16px}dialog .modal-icon{color:var(--yellow-deep);margin-bottom:16px;display:block}dialog .modal-icon svg{display:block}dialog .qr{background:#fff;border-radius:14px;width:190px;height:190px;margin:20px auto;display:block}dialog a{text-underline-offset:3px;color:var(--violet);text-decoration:underline}dialog .text-button{color:var(--violet);text-underline-offset:3px;text-transform:none;letter-spacing:0;margin:0;font-size:11px;text-decoration:underline;display:inline}.copy-row{gap:8px;display:flex}.copy-row input{min-width:0;font-size:11px}.copy-row button{border:1px solid var(--ink);background:var(--ink);color:var(--paper);font:600 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;border-radius:10px;flex:none;align-items:center;gap:6px;padding:0 13px;display:inline-flex}.lobby-status{border:1px solid var(--line);background:var(--paper);border-radius:12px;align-items:center;gap:12px;margin-top:20px;padding:13px 15px;display:flex}.lobby-status b{font-size:13px;display:block}.lobby-status small{color:var(--muted);margin-top:3px;font-size:11px;display:block}.lobby-note{color:var(--muted)!important;margin:16px 0 0!important;font-size:11px!important}.rules{color:var(--ink-soft);padding-left:20px;font-size:14px;line-height:1.7}.rules li{padding:4px 0}.choice-list{flex-direction:column;gap:10px;display:flex}.choice-list .button{margin:0;font-size:11px}.notification-button{font:600 11px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--violet);text-underline-offset:3px;background:0 0;border:0;align-items:center;gap:6px;margin-top:16px;padding:0;text-decoration:underline;display:inline-flex}.share-scope{text-align:center;font:600 11px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--violet);margin-top:-8px;display:block}.ready-message{border:1px solid var(--line);background:var(--paper);text-align:center;font:400 34px/1.1 var(--serif);border-radius:14px;margin:18px 0;padding:24px}.ready-message small{font:12px var(--sans);color:var(--muted);margin-top:10px;display:block}.share-details{color:var(--muted);margin:18px 0;font-size:12px}.share-details summary{cursor:pointer;padding:8px 0}.confetti{pointer-events:none;z-index:25;border-radius:2px;width:10px;height:16px;position:fixed;top:-20px}.fireworks{z-index:30;pointer-events:none;position:fixed;inset:0;overflow:hidden}.firework-burst{width:10px;height:10px;position:absolute}.firework-burst:before{content:"";background:var(--yellow);border-radius:50%;animation:.8s ease-out both firework-core;position:absolute;inset:0;box-shadow:0 0 18px 5px #ffd84d66}.firework-spark{will-change:transform, opacity;border-radius:50%;width:7px;height:7px;position:absolute;top:2px;left:2px;box-shadow:0 0 10px}@keyframes firework-core{0%{opacity:0;transform:scale(.2)}25%{opacity:1;transform:scale(1.4)}to{opacity:0;transform:scale(.5)}}@media (max-width:1100px){.header{padding:22px 30px}footer{padding:16px 30px}}@media (max-width:680px){.header{padding:18px 20px}.brand{font-size:30px}.button{min-height:50px;padding:0 20px}footer{padding:16px 20px}dialog{padding:32px 22px}dialog h2{font-size:34px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.loader{animation:0s 2s forwards loader-fallback!important}}.layout{grid-template-columns:.9fr 1.1fr;align-items:center;gap:56px;max-width:1400px;min-height:calc(100svh - 180px);margin:auto;padding:10px 40px 30px;display:grid}.intro{padding-bottom:20px}.lede{max-width:30ch;font:400 20px/1.45 var(--sans);color:var(--ink-soft);margin-top:26px}.home-actions{flex-direction:column;gap:14px;max-width:320px;margin-top:34px;display:flex}.home-actions .button{justify-content:space-between}.home-actions .difficulty{max-width:340px}.intro .difficulty{max-width:340px;margin-top:30px}.table-area{justify-self:end;width:100%;max-width:620px}.board-stage{color:var(--ink)}.display{font-family:var(--serif);letter-spacing:-.025em;text-wrap:balance;color:var(--ink);font-weight:400;line-height:.9}.display .w{white-space:pre;transform-origin:50% 100%;display:inline-block}.display em{font-style:italic}#intro h1.display{margin:0 0 0 -.04em;font-size:clamp(72px,9.6vw,148px)}#intro h1.display .w:nth-child(2){margin-left:.45em}#intro h1.display .w:nth-child(3){display:block}@media (max-width:1100px){.layout{grid-template-columns:.95fr 1.05fr;gap:36px;padding:10px 30px 30px}}@media (max-width:680px){.layout{flex-direction:column;gap:22px;min-height:auto;padding:8px 20px 24px;display:flex}body[data-mode=home] #intro{display:contents}body[data-mode=home] #intro>*{text-align:center;width:100%;margin-left:auto;margin-right:auto}body[data-mode=home] #intro h1{order:-3;margin:0}body[data-mode=home] #intro .lede{order:-2;margin:0 auto}body[data-mode=home] .table-area{order:-1;width:100%;max-width:440px}body[data-mode=home] #intro .home-actions{order:0;max-width:360px;margin:6px auto 0}body[data-mode=home] #intro .difficulty{order:1;justify-content:center;max-width:360px;margin:0 auto}#intro h1.display{margin:0;font-size:clamp(64px,19vw,96px)}#intro h1.display .w:nth-child(2){margin-left:.4em}.lede{font-size:17px}}body:is([data-mode=ai],[data-mode=online]) .header{max-width:1600px;padding:18px 28px 12px}body:is([data-mode=ai],[data-mode=online]) footer{justify-content:center;padding:14px 24px}.back-pill{width:auto;font:600 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 16px 0 12px;display:inline-flex}.back-pill svg{display:block}.layout:has(#game-info:not([hidden])){--table-max:clamp(520px, calc((100svh - 200px) * 1.2), 1180px);grid-template-columns:minmax(0, var(--table-max)) minmax(240px, 300px);grid-template-areas:"table status""room room";justify-content:center;place-items:center;gap:8px 28px;width:100%;max-width:1600px;min-height:0;margin:0 auto;padding:4px 28px 8px;display:grid}#game-info:not([hidden]){text-align:center;display:contents}.layout:has(#game-info:not([hidden]))>.table-area{grid-area:table;place-self:start center;width:100%;min-width:0;max-width:none;margin:0}#game-info #show-room{grid-area:room;margin:0;font-size:11px}#game-info .match-status{border:1px solid var(--line);text-align:left;background:#fff;border-radius:20px;grid-area:status;place-self:center start;gap:8px;width:100%;max-width:300px;padding:12px;display:grid;box-shadow:0 30px 60px -40px #26232066}.status-result{border-bottom:1px solid var(--line);text-align:center;gap:6px;padding:8px 8px 14px;display:grid}.status-result-title{font:400 30px/1 var(--serif);letter-spacing:-.02em;margin:0}.status-result-detail{color:var(--ink-soft);margin:0;font-size:12px;line-height:1.5}.status-history{border-bottom:1px solid var(--line);gap:6px;padding:4px 6px 10px;display:grid}.status-history #history{font:500 12px/1.8 var(--mono);letter-spacing:-.01em;color:var(--ink-soft);white-space:pre-line;margin:0}.status-history #history.has-moves{column-count:2;column-gap:12px}.status-player{border:1px solid #0000;border-radius:14px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;transition:border-color .2s,background-color .2s;display:grid}.status-player.is-turn{border-color:var(--yellow);background:#ffd84d2e}.status-player>.avatar{border-radius:12px;width:36px;height:36px}.status-player>.avatar svg{display:block}.status-player>div{min-width:0}.status-player b,.status-player small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.status-player b{font-size:14px;font-weight:600}.status-player small{font:600 10px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:2px}.status-player .piece-count{gap:6px;margin:0;font-size:22px}.status-player .mini-piece{width:13px;height:13px}.status-flip{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:2px 8px;display:grid}.status-flip i{background:var(--line);height:1px}.status-flip .icon-button{width:34px;height:34px}.status-stats{border-top:1px solid var(--line);justify-content:space-around;gap:8px;padding:10px 4px 4px;display:flex}.status-stats div{justify-items:center;gap:3px;display:grid}.status-stats b{font:400 28px/1 var(--serif);font-variant-numeric:tabular-nums}.status-stats span{font:600 9px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}#match-status .status-level{border-top:1px solid var(--line);padding:8px 4px 4px}#match-status .status-level>span{font-size:9px}#match-status .status-level>div{padding:2px}#match-status .status-level button{letter-spacing:.04em;padding:6px 8px;font-size:9.5px}.status-undo{border:1px solid var(--ink);width:100%;color:var(--ink);font:600 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;transition:background-color .18s ease, color .18s ease, transform .18s var(--ease-out);background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px;display:flex;transform:skew(-9deg)}.status-undo>*{transform:skew(9deg)}.status-undo svg{display:block}.status-undo:hover:not(:disabled){background:var(--ink);color:var(--paper)}.status-score{border-top:1px solid var(--line);text-align:center;justify-items:center;gap:4px;padding:10px 4px 4px;display:grid}.status-score b{font:400 18px/1.1 var(--serif)}.coach-mark{z-index:6;border:1px solid var(--line);color:var(--ink);font:500 12px/1.35 var(--sans);white-space:nowrap;pointer-events:none;animation:coach-in .45s var(--ease-out) both;background:#fff;border-radius:8px;align-items:center;gap:12px;padding:9px 9px 9px 13px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-100%);box-shadow:0 14px 30px -12px #26232055}.coach-mark:after{content:"";border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;border-radius:3px;width:14px;height:14px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.coach-dismiss{pointer-events:auto;background:var(--yellow);color:var(--ink);font:600 10px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;border:0;border-radius:8px;flex:none;padding:7px 11px}.coach-dismiss:active{transform:translateY(1px)}@keyframes coach-in{0%{opacity:0;transform:translate(-50%,calc(10px - 100%))}to{opacity:1;transform:translate(-50%,-100%)}}.board-overlay{z-index:7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlay-in .35s var(--ease-out) both;background:#f6f4efb8;border-radius:20px;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.overlay-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:20px;justify-items:center;gap:10px;width:min(100%,380px);padding:26px 24px 18px;display:grid;box-shadow:0 30px 80px -30px #26232080}.overlay-eyebrow{font:600 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--yellow-deep)}#overlay-title{font:400 clamp(36px, 4.6vw, 52px)/1 var(--serif);letter-spacing:-.02em;margin:0}#overlay-detail{max-width:34ch;color:var(--ink-soft);margin:0;font-size:13px;line-height:1.55}.overlay-actions{gap:10px;width:100%;margin-top:8px;display:grid}.overlay-actions .button{justify-content:center;width:100%;margin:0;padding:13px 18px;font-size:15px}.overlay-home{margin:8px 0 0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@media (max-width:680px){body:is([data-mode=ai],[data-mode=online]) .header{padding:16px 20px 12px}.layout:has(#game-info:not([hidden])){grid-template-columns:minmax(0,1fr);grid-template-areas:"room""table""status";gap:9px 12px;padding:6px 20px 20px}.layout:has(#game-info:not([hidden]))>.table-area{max-width:560px}#game-info .match-status{justify-self:stretch;max-width:none}#game-info #show-room{justify-self:end}.status-history #history.has-moves{column-count:3}.layout:has(#game-info:not([hidden])) .board-stage:not(.has-solid-board){margin-bottom:16px}}@media (max-width:520px){.back-pill{width:42px;padding:0}.back-pill .back-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (max-width:480px){.layout:has(#game-info:not([hidden])){gap:8px 12px;padding-inline:14px}.coach-mark{white-space:normal;width:max-content;max-width:260px;font-size:11px}.overlay-card{padding:20px 16px 14px}#overlay-title{font-size:26px}}.board-stage{isolation:isolate;padding-bottom:10px;position:relative}.board-stage:after{content:"";filter:blur(18px);z-index:-1;background:#150b2c55;width:95%;height:40px;position:absolute;bottom:-32px;left:5%}.board-frame{transform-origin:50% 100%;background:#b98d73;border:1px solid #ecc4a2;border-radius:19px;padding:16px 16px 24px;transform:perspective(1000px)rotateX(5deg);box-shadow:0 3px #c69b7e,0 10px #76523f,0 14px #5d3f36,0 30px 45px -10px #160c2e99}.board{aspect-ratio:1;background:#e3c7a5;border:2px solid #775642;border-radius:7px;grid-template-columns:repeat(8,1fr);display:grid;position:relative;overflow:hidden;box-shadow:0 2px 4px #28142288}.coordinates{text-align:center;color:#5c413a;grid-template-columns:repeat(8,1fr);font-size:8px;font-weight:800;display:grid;position:absolute;bottom:5px;left:16px;right:16px}.square{aspect-ratio:1;background:#edd4ae;border:0;border-radius:0;place-items:center;min-width:0;padding:0;transition:background .15s;display:grid;position:relative}.square.dark-square{background:#745357}.square.dark-square:nth-child(16n+1),.square.dark-square:nth-child(16n+3),.square.dark-square:nth-child(16n+5),.square.dark-square:nth-child(16n+7){background:#79565a}.square:disabled{opacity:1;cursor:default}.square:focus-visible{outline-offset:-4px;z-index:2;outline:3px solid #ffc531}.square.selected{box-shadow:inset 0 0 0 3px #ffc531;background:#b98c50!important}.square.last-move{box-shadow:inset 0 0 0 2px #ffc53155}.square.movable{cursor:grab;touch-action:none}.square.movable:active{cursor:grabbing}.square.blocked{cursor:not-allowed}.square.destination-square:hover{background:#9a7b56!important}.square .destination{pointer-events:none;background:#ffc531;border-radius:50%;width:25%;height:25%;box-shadow:0 0 0 6px #ffc53122}.piece{background:linear-gradient(150deg, var(--top), var(--bottom));border:1px solid var(--rim);width:75%;height:75%;box-shadow:0 5px 0 var(--edge), 0 7px 0 var(--base), 0 10px 6px #27152466;border-radius:50%;place-items:center;transition:transform .15s;display:grid;position:relative;transform:translateY(-4px)}.piece:before{content:"";border:2px solid var(--ring);border-radius:50%;position:absolute;inset:12%;box-shadow:inset 0 2px 2px #ffffff26,0 1px 1px #ffffff40}.piece:after{content:"";border:1px solid var(--ring);opacity:.4;border-radius:50%;position:absolute;inset:23%}.piece.dark{--top:#ff906b;--bottom:#f46647;--edge:#ce4c32;--base:#a83928;--rim:#ffa27d;--ring:#d85335;color:#fff0c9}.piece.light{--top:#fff6dd;--bottom:#e5ccb1;--edge:#b69d87;--base:#90735e;--rim:#fff6dd;--ring:#c2a68a;color:#977451}.piece.king svg{z-index:1;filter:drop-shadow(0 1px #0003);width:46%;height:46%}.square.movable:hover .piece{transform:translateY(-7px)}.square.selected .piece{filter:drop-shadow(0 0 5px #ffc53188);transform:translateY(-8px)}.square.blocked .piece{filter:saturate(.75)brightness(.92)}.square.hint .piece{box-shadow:0 0 0 4px #ffc531aa, 0 5px 0 var(--edge), 0 7px 0 var(--base), 0 10px 6px #27152466;animation:.8s ease-in-out 2 hint-pulse}@keyframes hint-pulse{0%,to{transform:translateY(-4px)}50%{transform:translateY(-10px)scale(1.05)}}@media (max-width:900px){.board-frame{border-radius:15px;padding:11px 11px 21px}.coordinates{left:11px;right:11px}.piece{box-shadow:0 3px 0 var(--edge), 0 5px 0 var(--base), 0 7px 5px #27152466;transform:translateY(-3px)}.piece:before{border-width:1.5px}}.piece.carried-piece{z-index:100;pointer-events:none;filter:drop-shadow(0 13px 9px #160c2e70);will-change:left,top;contain:layout style;margin:0;transition:none;position:fixed;transform:translateY(-8px)scale(1.07)}.square.pickup-origin>.piece{visibility:hidden}.square.pickup-origin{box-shadow:inset 0 0 0 2px var(--yellow);background:#ab8253!important}.holding-piece,.holding-piece *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}.square.drop-hover{box-shadow:inset 0 0 0 3px var(--yellow);background:#bca16b!important}.board .piece{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none}.board-frame:has(.board.holding-piece){transition:none!important}.board[data-preview=true]{pointer-events:none;-webkit-user-select:none;user-select:none}.board[data-preview=true] .piece{will-change:transform;transition:none;animation:none!important}.board[data-preview=true] .preview-origin{z-index:4;background:#976c51!important}.board[data-preview=true] .preview-destination{background:#92734f!important}.board[data-preview=true] .preview-destination:after{content:"";background:var(--yellow);pointer-events:none;border-radius:50%;width:27%;height:27%;position:absolute;box-shadow:0 0 0 5px #ffc53124}.board[data-preview=true] .preview-landed{box-shadow:inset 0 0 0 2px #ffc53166}.preview-caption{max-width:100%;color:var(--muted);margin:10px auto 0;padding:0 8px;font-size:11px;line-height:1.5}.preview-caption>div{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.preview-label{font:600 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.preview-turn{color:var(--ink);font:600 10px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:7px;display:inline-flex}.preview-turn:before{content:"";background:var(--coral);border-radius:50%;width:9px;height:9px;display:block;box-shadow:0 2px #af3928}.preview-turn[data-color=light]:before{background:var(--cream);box-shadow:0 2px #a78d74}body:not([data-mode=home]) .preview-caption{display:none}@media (prefers-reduced-motion:reduce){.board[data-preview=true] .piece{will-change:auto}}
