*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:#efd8b2;font-family:system-ui,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}img,svg{user-select:none;-webkit-user-select:none}#game{position:relative;width:100%;height:100dvh;overflow:hidden;isolation:isolate}.tabletop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;pointer-events:none}.background,.scenery-prop{position:absolute;inset:0;z-index:-2;pointer-events:none}.background img,.scenery-prop img{width:100%;height:100%;object-fit:contain;display:block}.corner-button{position:absolute;z-index:20;cursor:pointer;display:block}.workspace{position:absolute;inset:0}.workspace.leaving{pointer-events:none}#scene{position:absolute}#slots,#pieces{position:absolute;inset:0;pointer-events:none}.tangram,.piece{position:absolute;border:0;background:none;padding:0;touch-action:none;pointer-events:auto;cursor:pointer}.tangram>svg,.piece>svg{display:block;width:100%;height:100%;overflow:visible;pointer-events:none}.tangram{cursor:default}.piece{z-index:3;filter:drop-shadow(2px 5px 3px #6a371b38);transition:filter 160ms}.piece.selected{filter:drop-shadow(0 0 5px #fff5c6) brightness(1.08);z-index:5}.piece.dragging{z-index:30;filter:drop-shadow(4px 9px 5px #6a371b60);cursor:grabbing}.piece.returning{z-index:25;transition:left 240ms ease,top 240ms ease}.piece[hidden]{display:none}.tangram:focus-visible,.piece:focus-visible{outline:3px solid #9159cf;outline-offset:4px;border-radius:16px}.target-shape{fill:#f0ddc3;fill-opacity:.5;stroke:#ac8b61;stroke-width:2.5;stroke-dasharray:8 7;vector-effect:non-scaling-stroke}.tangram.drop-over .target-shape{stroke:#f6be37;stroke-width:3.5;fill:#fff1c9;fill-opacity:.8;filter:drop-shadow(0 0 5px #fff5c6);stroke-dasharray:none}.tangram.drop-over .target-art{filter:brightness(1.12)}.fit-feedback{pointer-events:none}.ma-match-glint{transform-box:fill-box;transform-origin:center}.celebration-screen{position:absolute;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;overflow:hidden;isolation:isolate}.celebration-screen[hidden]{display:none}.celebration-content{position:relative;min-height:0}.mascots{position:relative;z-index:1;min-height:0;pointer-events:none}.finish-actions{position:relative;z-index:2;display:flex;flex-direction:column;flex:none}.finish-button{position:relative;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}/* Keep narrow halves easy to touch without scaling their approved texture. */.piece::before{content:'';position:absolute;left:50%;top:0;transform:translateX(-50%);width:max(100%,44px);height:max(100%,44px);pointer-events:auto}.surface{position:absolute;pointer-events:none;overflow:hidden;border-radius:28px;z-index:-1}.surface svg{display:block;width:100%;height:100%}.target-shape{fill:#c89855;fill-opacity:.17;stroke:#98652e;stroke-width:1.8;stroke-dasharray:none}.piece::before{display:none}.slot{clip-path:var(--polygon)}.is-brand-clearing .surface{animation:kitchen-completion-out 400ms ease-in-out both}.has-brand-finale .surface{opacity:0}.piece>svg{filter:drop-shadow(1px 3px 1px #5a361c30)}#props{border-radius:0}#mat{border:5px solid #5b92a8;outline:1px solid #3d6d85;box-shadow:inset 0 0 8px #183d59,0 4px 5px #63391f55}#board{box-shadow:0 4px 6px #5e371b40}.show-house .piece,.shuffle-house .piece{pointer-events:none;z-index:6}.show-house .piece{filter:none}.shuffle-house .piece{will-change:transform}/* Hit the visible wood, not the empty corners of neighboring triangle boxes. */.piece{pointer-events:none}.piece>svg>path{pointer-events:visiblePainted}#game{--ma-game-style:tangram-house}/* Generated verbatim from approved keyframes. Run sync-shared-motion.cjs; do not edit. */
@keyframes kitchen-glint{0%,100%{opacity:0}40%{opacity:.9}}
@keyframes kitchen-soft-shine{0%,100%{opacity:0}40%{opacity:.38}}
@keyframes kitchen-completion-glow{0%, 100% { filter:brightness(1) drop-shadow(0 0 0 #FFF3B000)}45%{filter:brightness(1.12) drop-shadow(0 0 12px #FFF3B099)}}
@keyframes kitchen-completion-out{from { opacity:1}to{opacity:0}}
@keyframes kitchen-finale-in{from { opacity:0}to{opacity:1}
