*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:system-ui,sans-serif;background:#45b6f0}#game{--ma-game-style:size-train;position:relative;width:100%;height:100dvh;overflow:hidden;isolation:isolate}button,a{-webkit-tap-highlight-color:transparent}.station{position:absolute;inset:0;z-index:-1;pointer-events:none}.station img{width:100%;height:100%;object-fit:cover}.corner-button{position:absolute;z-index:20;cursor:pointer;display:block}.corner-button:active{transform:scale(.94)}.workspace{position:absolute;inset:0}.has-brand-finale .workspace{visibility:hidden}#train,#bears{position:absolute;inset:0;pointer-events:none}#train{z-index:2}#bears{z-index:3}.slot,.piece,.engine{position:absolute;padding:0;border:0;background:transparent;overflow:visible;touch-action:none;user-select:none;-webkit-user-select:none}.slot,.piece{cursor:pointer;pointer-events:auto}.slot>svg,.piece>svg,.engine>svg{width:100%;height:100%;overflow:visible;display:block;pointer-events:none}.piece{filter:drop-shadow(0 5px 3px #56310840);transform-origin:50% 85%}.piece.selected{filter:drop-shadow(0 0 5px #fff5c6) brightness(1.08);scale:1.03}.piece.dragging{z-index:12;filter:drop-shadow(0 10px 6px #56310855)}.piece.returning{transition:left 240ms ease,top 240ms ease;pointer-events:none}.piece[hidden]{display:none}.slot.drop-over{filter:drop-shadow(0 0 5px #fff5c6) brightness(1.12)}.slot:focus-visible,.piece:focus-visible{outline:3px solid #7132c4;outline-offset:3px;border-radius:15px}.slot:disabled{cursor:default}.cargo{opacity:0}.slot.matched .cargo{opacity:1}.ma-match-glint{transform-box:fill-box;transform-origin:center}#train.completed{animation:kitchen-completion-glow 850ms ease-in-out both}.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}/* Preserve raster geometry while providing a48px touch region on short wagons. */.slot>svg{position:absolute;left:0;bottom:0;height:var(--art-height);width:100%}/* Three small compositor animations; no canvas, blur, sprites or idle loop. */.steam{display:none;position:absolute;left:72%;top:7%;width:29%;aspect-ratio:1;transform:translate(-50%,-70%);pointer-events:none;z-index:2}.steaming .steam{display:block}.steam i{position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse at 45% 60%,#fffdf5e6 12%,#eef2f4bb 55%,#edf2f300 72%);opacity:0;animation:train-steam 1400ms linear infinite;will-change:transform,opacity}.steam i:nth-child(2){animation-delay:-460ms}.steam i:nth-child(3){animation-delay:-920ms}@keyframes train-steam{0%{transform:translate(0,0) scale(.28);opacity:0}18%{opacity:.8}65%{opacity:.5}100%{transform:translate(-75%,-130%) scale(1.3);opacity:0}}
