*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:Nunito,system-ui,sans-serif;color:#30283f;background:#bd9158}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}img,svg{user-select:none;-webkit-user-select:none}#game{position:relative;width:100%;height:100dvh;overflow:hidden;isolation:isolate}.background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;z-index:-2}.corner-button{position:absolute;z-index:20;display:block;cursor:pointer}.workspace{position:absolute;inset:0}.workspace.leaving{pointer-events:none}#stage{position:absolute;width:1440px;height:810px;transform-origin:top left}.activity{position:absolute;left:305px;top:125px;width:845px;height:545px;display:flex;align-items:flex-end;justify-content:flex-start;gap:120px}.puzzle-wrap{position:relative;isolation:isolate;flex:none}.puzzle-wrap:after{content:'';position:absolute;z-index:-1;left:-40px;right:-40px;bottom:-30px;height:45px;border-radius:50%;background:radial-gradient(ellipse,#40250d75,transparent 70%)}.board{display:grid;grid-template-columns:repeat(2,244px);grid-template-rows:repeat(2,244px);gap:5px;position:relative;padding:8px;border:3px solid #bb8650;border-radius:15px;background:#af7848;box-shadow:0 12px 0 #976039,0 20px 25px #36200e60;perspective:1200px}.tile{position:relative;width:244px;height:244px;border:0;padding:0;background:none;perspective:1080px;cursor:pointer;touch-action:manipulation;overflow:visible;z-index:1}.tile.turning{z-index:4}.tile:disabled{cursor:default}/* Filters, opacity and clipping on .cube flatten preserve-3d. Keep FX on sibling SVG. */.cube{display:block;position:absolute;inset:0;transform-style:preserve-3d;transform:translateZ(-122px) rotateY(calc(var(--turn)*-90deg));transition:transform .85s cubic-bezier(.25,.65,.3,1)}.face{position:absolute;inset:0;display:block;overflow:hidden;border-radius:5px;backface-visibility:hidden;background:#fff1d7;box-shadow:inset 0 0 0 2px #fff2d2;transform:rotateY(calc(var(--face)*90deg)) translateZ(122px)}.face:after{content:'';position:absolute;inset:0;border:2px solid #ffefc9a0;border-radius:5px;box-shadow:inset 0 -5px 6px #98692a12;pointer-events:none}.face img{position:absolute;width:200%;height:200%;max-width:none;left:calc(var(--col)*-100%);top:calc(var(--row)*-100%);object-fit:fill;pointer-events:none}.fit-feedback{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:7;overflow:visible}.game-screen[data-feedback=brand] .slot.matched>.fit-feedback{animation:none}.tile.matched{z-index:6;scale:1.012;animation:cube-fit-expand 520ms cubic-bezier(.22,.75,.3,1) both}.tile.matched .face{border-radius:0;box-shadow:none}.tile.matched .face:after{border-color:transparent;box-shadow:none}.introducing .cube{transition-duration:var(--intro-duration,2200ms);transition-timing-function:cubic-bezier(.42,0,.58,1)}.board>.whole-portrait{position:absolute;inset:8px;width:493px;height:493px;object-fit:fill;opacity:0;pointer-events:none;z-index:8;border-radius:5px;transition:opacity .5s ease}.complete .whole-portrait{opacity:1}.complete .tile{visibility:hidden}.complete .board{animation:kitchen-completion-glow 850ms ease-in-out both}.reference{position:relative;flex:none;width:220px;margin:0 0 55px;align-self:flex-end;display:grid;justify-items:center}.reference-image{width:220px;height:220px;overflow:hidden;transform:rotate(3deg);border:9px solid #fff8e7;border-bottom-width:20px;border-radius:8px;box-shadow:5px 9px 0 #b97f45,8px 20px 20px #43270940;z-index:1}.reference img{display:block;width:100%;height:100%;object-fit:cover}.reference:before{content:'';position:absolute;width:110px;height:75px;border-left:14px solid #bd8149;border-right:14px solid #bd8149;transform:perspective(100px) rotateX(22deg);top:205px;box-shadow:0 10px 15px -8px #40230680}.reference:after{content:'';position:absolute;width:255px;height:30px;background:radial-gradient(ellipse,#42270d55,transparent 70%);top:267px}[data-layout=portrait] .activity{inset:0;width:100%;height:100%;display:block}[data-layout=portrait] .puzzle-wrap,[data-layout=portrait] .reference{position:absolute;transform-origin:top left;margin:0}/* Portrait keeps the same reference picture above the board, suspended from the atelier beam. */[data-layout=portrait] .reference:before{top:-350px;width:2px;height:365px;left:110px;background:#79552e;border:0;transform:none;box-shadow:none}[data-layout=portrait] .reference:after{display:none}.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}#load-state{position:absolute;inset:0;z-index:25;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;background:#fff2d9;font-size:22px;font-weight:900}#load-state[hidden]{display:none}#retry{padding:12px 22px;background:#7132c4;color:white;border:0;border-radius:16px;cursor:pointer}@keyframes cube-fit-expand{0%{scale:1}45%{scale:1.045}100%{scale:1.012}}@media(prefers-reduced-motion:reduce){.tile.matched{animation:none;scale:1.012}.introducing .cube{transition-duration:var(--intro-duration,900ms)}}/* Stable front plane at rest; the original 3D cube performs every rotation. */.rest-face{display:none;transform:none;backface-visibility:visible;pointer-events:none;z-index:5}.tile.resting>.rest-face{display:block}.tile.resting>.cube{visibility:hidden}/* Page ownership: used by the shared session readiness gate. */#game{--ma-game-style:portrait-cubes}/* 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}
