@layer playground{.pg-tabletop{position:relative;width:100%;min-height:320px;border-radius:16px;overflow:hidden;background:radial-gradient(ellipse 80% 65% at 50% 35%,#1d6334,#0e3b1f 60%,#06200f);box-shadow:inset 0 0 60px #0000008c,inset 0 1px #ffffff14,0 12px 32px #00000073;touch-action:none}.pg-tabletop.compact{min-height:220px}.pg-card{--pg-card-w: 88px;--pg-card-h: 128px;--pg-card-tz: 1.5px;--pg-card-radius: 9px;position:relative;width:var(--pg-card-w);height:var(--pg-card-h);perspective:900px;perspective-origin:50% 30%;-webkit-user-select:none;user-select:none;cursor:pointer;transition:transform .22s ease,filter .18s ease}.pg-card.disabled{pointer-events:none;filter:grayscale(.4) brightness(.7)}.pg-card.hovered{transform:translateY(-10px)}.pg-card.selected{transform:translateY(-22px)}.pg-card.dragging{z-index:999;transform:scale(1.04);transition:none;filter:drop-shadow(0 14px 22px rgba(0,0,0,.55))}.pg-card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .46s cubic-bezier(.32,.04,.18,1);transform:rotateY(0)}.pg-card.face-down .pg-card-inner{transform:rotateY(180deg)}.pg-card.hovered .pg-card-inner{transform:rotateX(-3deg)}.pg-card.hovered.face-down .pg-card-inner{transform:rotateX(-3deg) rotateY(180deg)}.pg-card.selected .pg-card-inner{transform:rotateX(-4deg)}.pg-card.selected.face-down .pg-card-inner{transform:rotateX(-4deg) rotateY(180deg)}.pg-card.dragging .pg-card-inner{transition:none;transform:rotateY(0)}.pg-card.dragging.face-down .pg-card-inner{transform:rotateY(180deg)}@keyframes pg-card-flip-lift{0%{transform:translateY(0) scale(1) rotate(0);filter:drop-shadow(0 3px 6px rgba(0,0,0,.4))}35%{transform:translateY(-18px) scale(1.04) rotate(-1.5deg);filter:drop-shadow(0 22px 18px rgba(0,0,0,.55))}65%{transform:translateY(-12px) scale(1.03) rotate(1deg);filter:drop-shadow(0 16px 14px rgba(0,0,0,.5))}to{transform:translateY(0) scale(1) rotate(0);filter:drop-shadow(0 3px 6px rgba(0,0,0,.4))}}@keyframes pg-card-flip-to-down-inner{0%{transform:rotateY(0) rotateX(0)}35%{transform:rotateY(75deg) rotateX(-6deg)}55%{transform:rotateY(135deg) rotateX(-3deg)}78%{transform:rotateY(188deg) rotateX(1deg)}to{transform:rotateY(180deg) rotateX(0)}}@keyframes pg-card-flip-to-up-inner{0%{transform:rotateY(180deg) rotateX(0)}35%{transform:rotateY(105deg) rotateX(-6deg)}55%{transform:rotateY(45deg) rotateX(-3deg)}78%{transform:rotateY(-8deg) rotateX(1deg)}to{transform:rotateY(0) rotateX(0)}}.pg-card.flipping{animation:pg-card-flip-lift .56s cubic-bezier(.34,1.18,.45,1) both;z-index:20}.pg-card.flipping .pg-card-inner{transition:none;animation:pg-card-flip-to-down-inner .56s cubic-bezier(.34,1.18,.45,1) both}.pg-card.flipping.to-up .pg-card-inner{animation-name:pg-card-flip-to-up-inner}.pg-card.rotated .pg-card-inner{transform:rotate(var(--pg-card-rot, 0deg))}.pg-card.rotated.face-down .pg-card-inner{transform:rotate(var(--pg-card-rot, 0deg)) rotateY(180deg)}@keyframes pg-card-rotate{0%{transform:rotate(var(--pg-card-rot-from, 0deg))}to{transform:rotate(var(--pg-card-rot, 0deg))}}.pg-card.peeking:after{content:"👁";position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:#fbbf24eb;color:#1f2937;font-size:11px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #00000080;z-index:30;pointer-events:none}.pg-face,.pg-back{position:absolute;inset:0;border-radius:var(--pg-card-radius);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:0 1px #ffffff73 inset,0 -1px #0000004d inset,0 8px 14px #00000073}.pg-face{transform:translateZ(var(--pg-card-tz))}.pg-back{transform:translateZ(calc(var(--pg-card-tz) * -1)) rotateY(180deg)}.pg-face img,.pg-back img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;filter:drop-shadow(0 0 0 transparent)}.pg-face .pg-label,.pg-back .pg-label{font-family:Georgia,Times New Roman,serif;font-weight:700;line-height:1}.pg-pip{position:absolute;font-family:Arial,sans-serif;font-weight:800;font-size:calc(var(--pg-card-w) * .18);line-height:1}.pg-pip.tl{top:6px;left:8px}.pg-pip.br{bottom:6px;right:8px;transform:rotate(180deg)}.pg-edge{position:absolute;background:linear-gradient(180deg,#e4e4e7,#a1a1aa,#52525b);backface-visibility:hidden;-webkit-backface-visibility:hidden}.pg-edge-top{left:0;right:0;top:0;height:calc(var(--pg-card-tz) * 2);transform-origin:center top;transform:rotateX(-90deg) translateZ(0)}.pg-edge-bottom{left:0;right:0;bottom:0;height:calc(var(--pg-card-tz) * 2);transform-origin:center bottom;transform:rotateX(90deg) translateZ(0)}.pg-edge-left{top:0;bottom:0;left:0;width:calc(var(--pg-card-tz) * 2);transform-origin:left center;transform:rotateY(90deg) translateZ(0)}.pg-edge-right{top:0;bottom:0;right:0;width:calc(var(--pg-card-tz) * 2);transform-origin:right center;transform:rotateY(-90deg) translateZ(0)}.pg-card.selected:after{content:"";position:absolute;inset:-4px;border-radius:calc(var(--pg-card-radius) + 4px);box-shadow:0 0 0 2px #fbbf24d9,0 0 24px #fbbf248c;pointer-events:none}.pg-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:8px;border:1px solid #334155;background:linear-gradient(180deg,#1e293b,#0f172a);color:#e2e8f0;font-size:13px;font-weight:600;cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease}.pg-btn:hover:not(:disabled){border-color:#475569;transform:translateY(-1px)}.pg-btn:disabled{opacity:.4;cursor:not-allowed}.pg-btn.primary{background:linear-gradient(180deg,#f59e0b,#b45309);border-color:#fbbf24;color:#1f2937}.pg-btn.danger{background:linear-gradient(180deg,#dc2626,#7f1d1d);border-color:#ef4444;color:#fef2f2}.pg-btn.success{background:linear-gradient(180deg,#16a34a,#14532d);border-color:#22c55e;color:#f0fdf4}.pg-section{background:linear-gradient(180deg,#0f172a,#020617);border:1px solid #1e293b;border-radius:14px;padding:18px 18px 22px;margin-bottom:22px;box-shadow:0 4px 14px #00000059}.pg-section h2{color:#fbbf24;font-size:15px;font-weight:700;margin:0 0 4px;letter-spacing:.05em;text-transform:uppercase}.pg-section p.subtitle{color:#94a3b8;font-size:13px;margin:0 0 14px}.pg-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.pg-pile-menu{position:absolute;z-index:60;background:#0f172a;border:1px solid #334155;border-radius:8px;padding:6px;display:flex;flex-direction:column;gap:4px;box-shadow:0 6px 20px #00000080}.pg-pile-menu button{background:transparent;border:0;color:#e2e8f0;font-size:13px;padding:6px 12px;text-align:left;border-radius:5px;cursor:pointer}.pg-pile-menu button:hover{background:#1e293b}.pg-seat{position:absolute;display:flex;flex-direction:column;align-items:center;gap:6px}.pg-seat-name{background:#0f172ad9;border:1px solid #334155;color:#f8fafc;font-size:12px;padding:3px 10px;border-radius:999px;white-space:nowrap}.pg-seat-name.current{background:#fbbf24eb;color:#1f2937;border-color:#fbbf24}.pg-seat-score{display:inline-flex;align-items:baseline;gap:3px;background:linear-gradient(180deg,#fde68a,#f59e0b);border:1px solid #b45309;color:#1f2937;font-size:11px;padding:2px 8px;border-radius:999px;box-shadow:0 1px 3px #00000059;margin-left:4px}.pg-seat-score strong{font-size:13px;font-weight:800}.pg-seat .pg-reveal-btn{font-size:11px;padding:3px 9px}.pg-seat-row{display:flex;gap:4px}.pg-seat-row.col{flex-direction:column}@keyframes pg-popup-in{0%{transform:scale(.15) rotate(-10deg);opacity:0}55%{transform:scale(1.18) rotate(3deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes pg-popup-out{0%{transform:scale(1) rotate(0);opacity:1}to{transform:scale(.85) rotate(0);opacity:0}}@keyframes pg-popup-pulse{0%,to{text-shadow:0 0 16px rgba(251,191,36,.8),0 0 32px rgba(220,38,38,.55)}50%{text-shadow:0 0 22px rgba(251,191,36,1),0 0 48px rgba(220,38,38,.85)}}.pg-popup-layer{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;pointer-events:none}.pg-popup-card{font-family:STKaiti,KaiTi,Songti SC,SimSun,serif;font-size:clamp(72px,14vw,168px);font-weight:900;color:#fbbf24;background:linear-gradient(135deg,#7f1d1df5,#431407f5);border:4px double #fbbf24;border-radius:18px;padding:18px 56px;line-height:1.1;animation:pg-popup-in .42s cubic-bezier(.34,1.56,.64,1) both,pg-popup-pulse .95s ease-in-out .42s infinite}.pg-popup-layer.exiting .pg-popup-card{animation:pg-popup-out .3s ease-in forwards}.pg-hand{display:flex;align-items:flex-end;justify-content:center;gap:6px;min-height:160px;padding:18px 12px 12px}.pg-hand .pg-card{transition:transform .22s ease}@keyframes pg-pile-shuffle{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-7px,-2px) rotate(-3deg)}40%{transform:translate(6px,-3px) rotate(3deg)}60%{transform:translate(-5px,1px) rotate(-2deg)}80%{transform:translate(4px,-1px) rotate(2deg)}}.pg-pile.shuffling .pg-pile-card{animation:pg-pile-shuffle .5s ease-in-out}.pg-pile.shuffling .pg-pile-card:nth-child(2n){animation-delay:40ms}.pg-pile.shuffling .pg-pile-card:nth-child(3n){animation-delay:80ms}@keyframes pg-pile-shake-flip{0%{transform:translate(0) rotate(0) scale(1)}14%{transform:translate(-1.5px,.5px) rotate(-.9deg) scale(1.005)}28%{transform:translate(1.8px,-1px) rotate(1.1deg) scale(1.01)}44%{transform:translateY(-1.5px) rotate(0) scale(1.02)}54%{transform:translateY(-1.5px) rotate(0) scale(1.02)}70%{transform:translate(1.3px,.5px) rotate(.8deg) scale(1.008)}86%{transform:translate(-1px,.3px) rotate(-.5deg) scale(1.003)}to{transform:translate(0) rotate(0) scale(1)}}.pg-pile.flipping{transform-origin:center center;animation:pg-pile-shake-flip .62s cubic-bezier(.42,0,.25,1) both;z-index:100;will-change:transform}.pg-pile.flipping .pg-pile-card{transition:none;animation:none}.pg-pile.dragging{transition:none;z-index:1000;filter:drop-shadow(0 18px 28px rgba(0,0,0,.55));cursor:grabbing}.pg-pile.selected:after{content:"";position:absolute;inset:-6px;border-radius:calc(var(--pg-card-radius, 9px) + 4px);box-shadow:0 0 0 2px #fbbf24eb,0 0 24px #fbbf248c;pointer-events:none;z-index:50}.pg-select-rect{position:absolute;background:#fbbf241f;border:1.5px dashed rgba(251,191,36,.85);pointer-events:none;z-index:950;border-radius:4px}.pg-die-host{--die-size: 64px;position:relative;width:var(--die-size);height:var(--die-size);background:transparent;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;perspective:700px;perspective-origin:50% 30%;margin-top:calc(var(--die-size) * .55);contain:layout style}.pg-die-host:focus-visible{outline:2px solid #fbbf24;outline-offset:4px;border-radius:8px}.pg-die-host:hover:not(.rolling) .pg-die-lifter{transform:translateY(-3px)}.pg-die-lifter{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .18s ease-out}@keyframes pg-die-bounce{0%{transform:translateY(0) scale(1)}12%{transform:translateY(calc(var(--die-size) * -.55)) scale(1.04,.96)}38%{transform:translateY(calc(var(--die-size) * -.08)) scale(.98,1.02)}55%{transform:translateY(calc(var(--die-size) * -.25)) scale(1.02,.98)}78%{transform:translateY(0) scale(1.05,.92)}88%{transform:translateY(calc(var(--die-size) * -.05)) scale(.99,1.01)}to{transform:translateY(0) scale(1)}}.pg-die-host.rolling .pg-die-lifter{animation:pg-die-bounce .85s cubic-bezier(.16,1,.3,1) both}.pg-die-cube{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.16,1,.3,1);will-change:transform}.pg-die-face{position:absolute;inset:0;background:linear-gradient(160deg,#fef3c7,#fbbf24 60%,#d97706);border:2px solid #78350f;border-radius:calc(var(--die-size) * .14);display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;padding:12%;gap:4%;box-sizing:border-box;box-shadow:inset 0 1px #ffffff8c,inset 0 -1px #0000004d,inset 0 0 calc(var(--die-size) * .18) #d9770659;backface-visibility:hidden}.pg-die-face-1{transform:translateZ(calc(var(--die-size) / 2))}.pg-die-face-6{transform:rotateY(180deg) translateZ(calc(var(--die-size) / 2))}.pg-die-face-2{transform:rotateY(90deg) translateZ(calc(var(--die-size) / 2))}.pg-die-face-5{transform:rotateY(-90deg) translateZ(calc(var(--die-size) / 2))}.pg-die-face-3{transform:rotateX(90deg) translateZ(calc(var(--die-size) / 2))}.pg-die-face-4{transform:rotateX(-90deg) translateZ(calc(var(--die-size) / 2))}.pg-die-pip{width:100%;height:100%;border-radius:50%;background:transparent}.pg-die-pip.on{background:radial-gradient(circle at 30% 30%,#1f2937,#0f172a 60%,#020617);box-shadow:inset 0 1px 1px #ffffff40}.pg-die-host.locked{filter:saturate(.55) brightness(.78)}.pg-die-lock-chip{position:absolute;top:-6px;right:-6px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:#dc2626f2;color:#fef2f2;font-size:10px;border-radius:50%;border:1px solid #7f1d1d;box-shadow:0 1px 3px #00000080;pointer-events:none;z-index:4}.pg-die-history{position:absolute;left:50%;bottom:-22px;transform:translate(-50%);display:flex;gap:2px;pointer-events:none}.pg-die-history-tick{background:#0f172ad9;color:#fbbf24;font-size:9px;font-weight:700;line-height:1;padding:2px 4px;border-radius:3px;border:1px solid #334155}.pg-poly-die-spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform .85s cubic-bezier(.16,1,.3,1);will-change:transform;filter:drop-shadow(0 4px 8px rgba(0,0,0,.45))}.pg-poly-die-spinner svg,.pg-poly-die-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none}.pg-poly-die-value{position:relative;z-index:1;font-family:Georgia,Times New Roman,serif;font-weight:800;font-size:calc(var(--die-size) * .36);line-height:1;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.65),0 0 8px rgba(0,0,0,.45);pointer-events:none}.pg-die-host.has-art .pg-poly-die-value{background:radial-gradient(circle,rgba(15,23,42,.85) 32%,rgba(15,23,42,.4) 60%,transparent 80%);padding:.12em .45em;border-radius:999px}.pg-poly-die-label{position:absolute;bottom:10%;left:50%;transform:translate(-50%);font-size:calc(var(--die-size) * .13);font-weight:600;color:#ffffffd9;letter-spacing:.05em;text-shadow:0 1px 0 rgba(0,0,0,.55);pointer-events:none}.pg-die-host.rolling .pg-poly-die-value{animation:pg-poly-die-pulse .18s ease-in-out infinite alternate}@keyframes pg-poly-die-pulse{0%{transform:scale(.92);opacity:.75}to{transform:scale(1.12);opacity:1}}@keyframes pg-poly-die-settle{0%{transform:scale(1.3);opacity:.8}60%{transform:scale(.95);opacity:1}to{transform:scale(1);opacity:1}}.pg-die-host:not(.rolling) .pg-poly-die-value{animation:pg-poly-die-settle .32s cubic-bezier(.34,1.56,.64,1)}.pg-board-host{display:flex;flex-direction:column;gap:14px;width:100%}.pg-board{position:relative;width:100%;background-size:cover;background-position:center;border-radius:14px;border:1px solid #1e293b;box-shadow:0 8px 24px #0000008c;cursor:default;overflow:hidden}.pg-board.has-pick{cursor:crosshair}.pg-board-slot{position:absolute;width:6.2%;aspect-ratio:1;transform:translate(-50%,-50%);background:transparent;border:0;padding:0;cursor:default;opacity:0;transition:opacity .18s ease,transform .18s ease;pointer-events:none}.pg-board-slot.available{opacity:1;pointer-events:auto;cursor:pointer;animation:pg-board-slot-pulse 1.6s ease-in-out infinite}.pg-board-slot.available:hover{animation:none;transform:translate(-50%,-50%) scale(1.18)}.pg-board-slot.shape-circle{background:radial-gradient(circle,rgba(251,191,36,.55) 0%,rgba(251,191,36,.18) 60%,transparent 75%);border-radius:50%;box-shadow:inset 0 0 0 2.5px #fbbf24e6}.pg-board-slot.shape-square{background:linear-gradient(180deg,#fbbf2473,#fbbf242e);box-shadow:inset 0 0 0 2.5px #fbbf24e6;border-radius:4px}.pg-board-slot.shape-hex{background:#fbbf2466;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);filter:drop-shadow(0 0 0 rgba(251,191,36,.9))}.pg-board-slot.shape-pentagon{background:#fbbf2466;clip-path:polygon(50% 0%,100% 38%,82% 100%,18% 100%,0% 38%);filter:drop-shadow(0 0 0 rgba(251,191,36,.9))}@keyframes pg-board-slot-pulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.92}50%{transform:translate(-50%,-50%) scale(1.08);opacity:1}}.pg-board-piece-anchor{position:absolute;transform:translate(-50%,-78%);z-index:3;pointer-events:auto}.pg-board-tray{display:flex;align-items:flex-end;gap:16px;padding:14px 18px;background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #1e293b;border-radius:12px;min-height:130px;flex-wrap:wrap}.pg-board-tray-label{color:#94a3b8;font-size:12px;letter-spacing:.06em;align-self:center;padding:4px 10px;border-right:1px dashed #334155;margin-right:6px}.pg-board-pick-hint{align-self:center;color:#94a3b8;font-size:13px;margin-left:auto}.pg-board-pick-hint strong{color:#fbbf24}.pg-calib-mark{position:absolute;transform:translate(-50%,-50%);min-width:22px;height:22px;padding:0 6px;background:#22c55ef2;border:1.5px solid #14532d;color:#f0fdf4;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:999px;box-shadow:0 1px 4px #0009;z-index:6;pointer-events:none}.pg-calib-mark.shape-square{border-radius:4px}.pg-calib-mark.shape-hex,.pg-calib-mark.shape-pentagon{background:#f59e0bf2;border-color:#78350f}.pg-calib-panel{background:#0f172af2;border:1px solid #334155;border-radius:10px;padding:10px 14px;color:#e2e8f0;font-size:13px;display:flex;flex-direction:column;gap:8px}.pg-calib-title{color:#22c55e;font-weight:600;font-size:12px;letter-spacing:.04em}.pg-calib-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.pg-calib-row label{display:flex;align-items:center;gap:6px;color:#cbd5e1;font-size:12px}.pg-calib-row select,.pg-calib-row input[type=text]{background:#0f172a;border:1px solid #334155;color:#e2e8f0;border-radius:6px;padding:4px 8px;font-size:12px}.pg-calib-error{background:#7f1d1db3;border:1px solid #b91c1c;color:#fecaca;padding:6px 10px;border-radius:6px;font-size:12px}.pg-calib-preview pre{max-height:220px;overflow:auto;background:#020617;border:1px solid #334155;border-radius:6px;padding:10px;font-size:11px;color:#94a3b8;margin:4px 0 0}.pg-piece{--piece-size: 88px;--piece-glow: #fbbf24;position:relative;width:var(--piece-size);height:var(--piece-size);background:transparent;border:0;padding:0;margin:0;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .2s cubic-bezier(.34,1.4,.5,1)}.pg-piece:focus-visible{outline:2px solid var(--piece-glow);outline-offset:6px;border-radius:8px}.pg-piece-art{position:relative;display:block;width:100%;height:100%;transform-origin:50% 90%;transition:transform .2s cubic-bezier(.34,1.4,.5,1),filter .18s ease;filter:drop-shadow(0 5px 6px rgba(0,0,0,.45))}.pg-piece-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom;display:block;pointer-events:none}.pg-piece-shadow{position:absolute;left:12%;right:12%;bottom:-4px;height:14%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(0,0,0,.55) 0%,rgba(0,0,0,.12) 55%,transparent 80%);pointer-events:none;transition:transform .2s ease,opacity .2s ease}.pg-piece.hovered .pg-piece-art{transform:translateY(-4px) rotateX(2deg);filter:drop-shadow(0 8px 10px rgba(0,0,0,.5))}.pg-piece.hovered .pg-piece-shadow{transform:scaleX(1.1);opacity:.85}.pg-piece.picked .pg-piece-art{transform:translateY(-12px) rotateX(4deg) rotate(-2deg);filter:drop-shadow(0 14px 18px rgba(0,0,0,.6)) drop-shadow(0 0 12px var(--piece-glow))}.pg-piece.picked .pg-piece-shadow{background:radial-gradient(ellipse at center,var(--piece-glow) 0%,rgba(251,191,36,.15) 50%,transparent 80%);transform:scaleX(1.35) scaleY(.7);animation:pg-piece-glow-pulse 1.3s ease-in-out infinite;opacity:.7}@keyframes pg-piece-glow-pulse{0%,to{opacity:.55;transform:scaleX(1.25) scaleY(.65)}50%{opacity:.95;transform:scaleX(1.45) scaleY(.8)}}.pg-piece-floating{will-change:transform,left,top}.pg-piece.placing{animation:pg-piece-place .42s cubic-bezier(.34,1.5,.64,1)}@keyframes pg-piece-place{0%{transform:translateY(-22px) scale(1.05)}45%{transform:translateY(2px) scale(1.06,.94)}70%{transform:translateY(-3px) scale(.98,1.02)}to{transform:translateY(0) scale(1)}}.cb-host{display:flex;flex-direction:column;gap:14px;width:100%}.cb-board{position:relative;width:100%;background-size:cover;background-position:center;border-radius:14px;border:1px solid #1e293b;box-shadow:0 8px 24px #0000008c;overflow:hidden}.cb-slot{position:absolute;width:14%;aspect-ratio:2 / 2.7;transform:translate(-50%,-50%);background:transparent;border:0;padding:0;cursor:default;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.cb-slot.available{opacity:1;pointer-events:auto;cursor:pointer;background:radial-gradient(ellipse at center,rgba(251,191,36,.32) 0%,rgba(251,191,36,.14) 65%,transparent 85%);border:2.5px solid rgba(251,191,36,.92);box-shadow:0 0 14px #fbbf2473,inset 0 0 14px #fbbf2440;animation:cb-slot-pulse 1.5s ease-in-out infinite}.cb-slot.available:hover{animation:none;transform:translate(-50%,-50%) scale(1.06);background:radial-gradient(ellipse at center,rgba(251,191,36,.45) 0%,rgba(251,191,36,.2) 70%,transparent 90%)}@keyframes cb-slot-pulse{0%,to{transform:translate(-50%,-50%) scale(1);box-shadow:0 0 12px #fbbf2466,inset 0 0 10px #fbbf242e}50%{transform:translate(-50%,-50%) scale(1.035);box-shadow:0 0 22px #fbbf24a6,inset 0 0 18px #fbbf2452}}.cb-placed-anchor{position:absolute;transform:translate(-50%,-50%);width:14%;aspect-ratio:2 / 2.7;z-index:3}.cb-placed{width:100%;height:100%;background:transparent;border:0;padding:0;cursor:pointer;filter:drop-shadow(0 6px 10px rgba(0,0,0,.55));transition:transform .2s cubic-bezier(.34,1.5,.5,1),filter .18s ease;transform-origin:center bottom}.cb-placed img{width:100%;height:100%;object-fit:contain;pointer-events:none}.cb-placed:hover{transform:translateY(-4px) scale(1.03)}.cb-placed.selected{transform:translateY(-10px) scale(1.07);filter:drop-shadow(0 8px 14px rgba(0,0,0,.55)) drop-shadow(0 0 14px #fbbf24)}.cb-placed.placing{animation:cb-card-land .6s cubic-bezier(.34,1.55,.55,1)}@keyframes cb-card-land{0%{transform:translateY(-140%) scale(.5) rotate(-12deg);opacity:0;filter:drop-shadow(0 0 0 rgba(251,191,36,0))}55%{transform:translateY(-12%) scale(1.12) rotate(2deg);opacity:1;filter:drop-shadow(0 14px 18px rgba(0,0,0,.5)) drop-shadow(0 0 24px rgba(251,191,36,.7))}78%{transform:translateY(2%) scale(.96) rotate(-1deg)}to{transform:translateY(0) scale(1) rotate(0);opacity:1;filter:drop-shadow(0 6px 10px rgba(0,0,0,.55))}}.cb-hand{display:flex;align-items:flex-end;gap:14px;padding:18px 18px 14px;background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #1e293b;border-radius:12px;min-height:200px;flex-wrap:wrap}.cb-hand-label{color:#fbbf24;font-size:13px;letter-spacing:.06em;align-self:center;padding:4px 12px;border-right:1px dashed #334155;margin-right:6px}.cb-card{--cb-card-w: 124px;width:var(--cb-card-w);aspect-ratio:2 / 2.7;background:transparent;border:0;padding:0;cursor:pointer;filter:drop-shadow(0 3px 6px rgba(0,0,0,.4));transition:transform .2s cubic-bezier(.34,1.5,.5,1),filter .18s ease}.cb-card img{width:100%;height:100%;object-fit:contain;pointer-events:none}.cb-card.hovered{transform:translateY(-10px) rotate(-1.5deg)}.cb-card.selected{transform:translateY(-22px) scale(1.05);filter:drop-shadow(0 8px 12px rgba(0,0,0,.5)) drop-shadow(0 0 16px #fbbf24)}.cb-hint{align-self:center;color:#94a3b8;font-size:13px;flex:1;text-align:right;min-width:200px}.cb-hint strong{color:#fbbf24}@keyframes pg-flyto{0%{transform:translate(0) scale(1)}60%{transform:translate(var(--fx, 40px),var(--fy, -80px)) scale(1.1)}to{transform:translate(var(--fx, 40px),var(--fy, -80px)) scale(1);opacity:0}}.pg-flyto{animation:pg-flyto .6s ease-out forwards;pointer-events:none}}@media(prefers-reduced-motion:reduce){.pg-card,.pg-card *,.pg-board,.pg-board *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
