@keyframes woodpecker-board-success{0%{box-shadow:0 0 #14b8a600,0 20px 45px #00000073;transform:scale(1)}35%{box-shadow:0 0 0 3px #14b8a6a6,0 0 34px #fbbf246b,0 20px 45px #00000073;transform:scale(1.008)}to{box-shadow:0 0 #14b8a600,0 20px 45px #00000073;transform:scale(1)}}@keyframes woodpecker-board-enter{0%{opacity:.72;transform:translateY(.25rem) scale(.992);filter:saturate(.88) brightness(.88)}to{opacity:1;transform:translateY(0) scale(1);filter:saturate(1) brightness(1)}}@keyframes woodpecker-correct-burst{0%{opacity:0;transform:scale(.84) rotate(-4deg)}28%{opacity:.92}to{opacity:0;transform:scale(1.14) rotate(4deg)}}@keyframes woodpecker-square-selected{0%{box-shadow:inset 0 0 0 1px #10b9814d,inset 0 0 #10b98100}58%{box-shadow:inset 0 0 0 5px #34d399,inset 0 0 28px #10b98180}to{box-shadow:inset 0 0 0 4px #34d399,inset 0 0 22px #10b98173}}@keyframes woodpecker-puzzle-complete{0%{opacity:0;transform:translate(-50%,-42%) scale(.86)}24%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes woodpecker-solve-badge-pop{0%{opacity:0;transform:translateY(-.3rem) scale(.74);filter:brightness(1.4)}58%{opacity:1;transform:translateY(.06rem) scale(1.08);filter:brightness(1.18)}to{opacity:1;transform:translateY(0) scale(1);filter:brightness(1)}}@keyframes woodpecker-illegal-king-blink{0%,to{opacity:0;transform:scale(.92)}18%,58%{opacity:1;transform:scale(1)}}@keyframes woodpecker-board-wrong{0%{box-shadow:0 0 #f43f5e00,0 20px 45px #00000073}28%{box-shadow:0 0 0 4px #f43f5ef2,0 0 34px #f43f5e73,0 20px 45px #00000073}to{box-shadow:0 0 0 2px #f43f5ee6,0 0 28px #f43f5e52,0 20px 45px #00000073}}.woodpecker-board-success{animation:woodpecker-board-success .52s cubic-bezier(.22,1,.36,1)}.woodpecker-board-frame{transition:box-shadow .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1),filter .18s cubic-bezier(.22,1,.36,1)}.woodpecker-board-enter{animation:woodpecker-board-enter .24s cubic-bezier(.22,1,.36,1)}.woodpecker-board-wrong{box-shadow:0 0 0 2px #f43f5ee6,0 0 28px #f43f5e52,0 20px 45px #00000073;animation:woodpecker-board-wrong .36s cubic-bezier(.22,1,.36,1)}.woodpecker-correct-burst{position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgb(251 191 36 / .34),transparent 38%),conic-gradient(from .75turn,transparent,rgb(20 184 166 / .34),transparent,rgb(251 191 36 / .28),transparent);animation:woodpecker-correct-burst .62s cubic-bezier(.22,1,.36,1) forwards}.woodpecker-board-surface{overscroll-behavior:none;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:filter .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1),opacity .18s cubic-bezier(.22,1,.36,1)}.woodpecker-board-surface *{touch-action:none}.woodpecker-board-surface>div:nth-child(2)>div{transition:none!important}.woodpecker-board-surface.woodpecker-board-opponent-move>div:nth-child(2)>div{transition:all .12s ease-out!important}.woodpecker-board-advancing .woodpecker-board-surface{opacity:.72;filter:saturate(.88) brightness(.82);transform:scale(.994)}.woodpecker-next-overlay{position:absolute;left:50%;top:50%;z-index:24;display:inline-flex;align-items:center;gap:.45rem;min-height:2.25rem;border-radius:999px;border:1px solid rgb(255 255 255 / .22);background:#0a0a0ab8;color:#fff;padding:.45rem .72rem;font-size:.8rem;font-weight:700;pointer-events:none;transform:translate(-50%,-50%);box-shadow:0 14px 34px #00000061,inset 0 1px #ffffff2e;backdrop-filter:blur(8px)}.woodpecker-puzzle-complete{position:absolute;left:50%;top:50%;z-index:30;display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:.9rem 1rem;min-width:7rem;border-radius:.9rem;border:1px solid rgb(255 255 255 / .2);background:#082f49db;color:#fff;font-weight:800;letter-spacing:.02em;pointer-events:none;box-shadow:0 18px 44px #00000073,0 0 30px #2dd4bf47;animation:woodpecker-puzzle-complete .24s cubic-bezier(.22,1,.36,1) forwards}.woodpecker-puzzle-complete-icon{display:grid;place-items:center;width:3.2rem;height:3.2rem;border-radius:999px;background:linear-gradient(135deg,#14b8a6,#fbbf24);color:#061e1a;box-shadow:inset 0 1px #ffffff73}.woodpecker-solve-badges{display:flex;max-width:min(18rem,calc(100vw - 2rem));flex-wrap:wrap;justify-content:center;gap:.35rem}.woodpecker-solve-badge{display:inline-flex;align-items:center;gap:.28rem;min-height:1.65rem;border-radius:999px;padding:.25rem .55rem;border:1px solid rgb(255 255 255 / .32);font-size:.72rem;font-weight:850;line-height:1;letter-spacing:0;opacity:0;white-space:nowrap;box-shadow:0 10px 24px #0000003d,inset 0 1px #ffffff61;animation:woodpecker-solve-badge-pop .18s cubic-bezier(.2,1.2,.34,1) forwards;animation-delay:calc(var(--woodpecker-badge-index, 0) * 54ms + 90ms)}.woodpecker-solve-badge-automatic{background:linear-gradient(135deg,#7dd3fc,#2dd4bf);color:#082f49}.woodpecker-solve-badge-too-easy{background:linear-gradient(135deg,#fde047,#fb923c);color:#431407}.woodpecker-solve-badge-pattern{background:linear-gradient(135deg,#bef264,#34d399);color:#14532d}.woodpecker-solve-badge-streak{background:linear-gradient(135deg,#fca5a5,#fbbf24);color:#450a0a}.woodpecker-solve-badge-revenge{background:linear-gradient(135deg,#d8b4fe,#60a5fa);color:#1e1b4b}.woodpecker-solve-badge-tilt{background:linear-gradient(135deg,#fda4af,#fb7185);color:#4c0519}.woodpecker-solve-badge-still{background:linear-gradient(135deg,#a5b4fc,#67e8f9);color:#1e293b}.woodpecker-solve-badge-ahead{background:linear-gradient(135deg,#86efac,#2dd4bf);color:#14532d}.woodpecker-solve-badge-speedrun{background:linear-gradient(135deg,#facc15,#22c55e);color:#362805}.woodpecker-solve-badge-perfect{background:linear-gradient(135deg,#fde047,#f472b6);color:#500724}.woodpecker-solve-badge-slowdown{background:linear-gradient(135deg,#fb923c,#f87171);color:#450a0a}.woodpecker-solve-badge-sharper{background:linear-gradient(135deg,#5eead4,#3b82f6);color:#082f49}.woodpecker-solve-message{max-width:18rem;border-radius:.6rem;border:1px solid rgb(251 146 60 / .42);background:#7c2d128c;padding:.4rem .7rem;font-size:.78rem;font-weight:600;line-height:1.35;color:#fed7aa;text-align:center;box-shadow:inset 0 1px #ffffff1f}.woodpecker-solve-puzzle-time{border-radius:999px;border:1px solid rgb(255 255 255 / .26);background:#0f172aa3;padding:.28rem .65rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.78rem;font-weight:800;color:#fffffff0;box-shadow:0 10px 24px #0000002e,inset 0 1px #ffffff2e}.woodpecker-solve-pace{display:inline-flex;max-width:calc(100vw - 2rem);align-items:center;justify-content:center;gap:.35rem;border-radius:999px;border:1px solid rgb(255 255 255 / .28);padding:.3rem .7rem;font-size:.76rem;font-weight:800;line-height:1;box-shadow:0 12px 28px #00000038,inset 0 1px #ffffff3d;white-space:nowrap}.woodpecker-solve-pace-ahead{background:#10b98133;color:#d1fae5}.woodpecker-solve-pace-behind{background:#f43f5e33;color:#ffe4e6}.woodpecker-review-badges{display:inline-flex;min-width:0;flex-wrap:wrap;gap:.25rem}.woodpecker-review-badge{display:inline-flex;min-height:1.25rem;max-width:11rem;align-items:center;border-radius:999px;border:1px solid rgb(255 255 255 / .28);padding:.15rem .42rem;font-size:.66rem;font-weight:800;line-height:1;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:inset 0 1px #ffffff4d}.woodpecker-cycle-meter{position:relative;height:.875rem;overflow:visible;border-radius:999px;background:#ffffff1a}.woodpecker-cycle-meter:before{content:"";position:absolute;inset:0;width:var(--woodpecker-progress, 0%);border-radius:inherit;background:linear-gradient(90deg,#14b8a6db,#fbbf24eb);box-shadow:0 0 16px #14b8a647;transition:width .52s cubic-bezier(.22,1,.36,1)}.woodpecker-cycle-meter:after{content:"";position:absolute;inset:1px;border-radius:inherit;border:1px solid rgb(255 255 255 / .12)}.woodpecker-cycle-meter-spark{position:absolute;left:var(--woodpecker-progress, 0%);top:50%;z-index:1;width:.875rem;height:.875rem;border:2px solid rgb(255 255 255 / .9);border-radius:999px;background:#fbbf24;box-shadow:0 0 12px #fbbf2473;transform:translate(-50%,-50%);transition:left .52s cubic-bezier(.22,1,.36,1)}
