*{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;background:#f5c97b;color:#2e2940}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button:disabled{cursor:default}img,svg{user-select:none;-webkit-user-select:none}#game{position:relative;width:100%;height:100dvh;min-height:200px;overflow:hidden;isolation:isolate;--s:300px}.background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2;pointer-events:none}.corner{position:absolute;z-index:30;top:max(10px,env(safe-area-inset-top));width:80px;height:80px;padding:0;border:0;background:none;display:block;border-radius:22px;cursor:pointer}.corner img{display:block;width:100%;height:100%;pointer-events:none}#back{left:max(10px,env(safe-area-inset-left))}#sound{right:max(10px,env(safe-area-inset-right))}#workspace{position:absolute;inset:0;transition:opacity .45s}#workspace.leaving{opacity:0}#egg-stage{position:absolute;width:var(--s);height:var(--s);isolation:isolate}#slots{position:absolute;inset:0}#nest-stage{position:absolute;pointer-events:none;z-index:0}#nest-stage img{width:100%;height:100%;object-fit:contain}#pieces{position:absolute;inset:0;pointer-events:none}.piece,.slot{position:absolute;padding:0;border:0;background:none;cursor:pointer;touch-action:none;border-radius:14px}.piece{pointer-events:auto;z-index:5;filter:drop-shadow(0 3px 1px #733d3066) drop-shadow(0 9px 8px #6b451c30);transition:filter .16s;transform-origin:center}.piece svg,.slot svg{display:block;width:100%;height:100%;overflow:visible;pointer-events:none}.piece[aria-pressed=true]{filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 6px #fef9b9) drop-shadow(0 8px 7px #6b451c66)}.piece.dragging{z-index:20;transition:none;filter:drop-shadow(0 10px 5px #6b451c55)}.slot{z-index:2}.slot .guide-base{fill:#f4dbad;opacity:.94}.slot .guide{opacity:.24}.slot .guide-edge{fill:none;stroke:#fff8dc;stroke-width:7;stroke-dasharray:13 11;opacity:.92;pointer-events:none}.slot .assembled{display:none}.slot.matched{pointer-events:none;cursor:default}.slot.matched .guide-base,.slot.matched .guide,.slot.matched .guide-edge{display:none}.slot.matched .assembled{display:block}.slot.fresh .assembled{animation:fit .8s ease-out}.slot .shine{opacity:0;fill:white;pointer-events:none}.slot.fresh .shine{animation:shine .8s ease-out}.slot .glint{opacity:0;fill:#fff7ad;stroke:#fff;stroke-width:2;pointer-events:none}.slot.fresh .glint{animation:glint .85s ease-out both;transform-box:fill-box;transform-origin:center}.slot.fresh .glint:nth-last-child(2){animation-delay:.08s}.slot.fresh .glint:last-child{animation-delay:.16s}.slot.reject{animation:nope .28s ease-in-out}.piece.returning{transition:left .24s ease-out,top .24s ease-out}#dino{position:absolute;width:100%;height:100%;object-fit:contain;z-index:1;opacity:0;transform:translateY(25%) scale(.65);pointer-events:none}#egg-stage.hatching #dino{animation:hatch 1s cubic-bezier(.2,.8,.2,1) forwards}#egg-stage.hatching .slot{transition:transform .85s ease-in-out,opacity .7s;pointer-events:none}#egg-stage.hatching .slot[data-id="0"]{transform:translate(-38%,-22%) rotate(-34deg);opacity:.0}#egg-stage.hatching .slot[data-id="1"]{transform:translate(38%,-22%) rotate(34deg);opacity:.0}#egg-stage.hatching .slot[data-id="2"]{transform:translate(-18%,18%) rotate(-18deg);z-index:3}#egg-stage.hatching .slot[data-id="3"]{transform:translate(18%,18%) rotate(18deg);z-index:3}#egg-stage.complete:not(.hatching){animation:whole-glow .85s ease-in-out}#finale{position:absolute;inset:80px 12px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;z-index:10}#finale[hidden]{display:none}.celebration{position:relative;width:min(600px,95vw);height:min(42dvh,370px);min-height:0;flex-shrink:1;display:grid;place-items:center}.mascots{position:relative;z-index:1;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;pointer-events:none}#confetti{position:absolute;width:140%;height:140%;left:-20%;top:-20%;pointer-events:none}.finish-actions{flex-shrink:0;display:flex;flex-direction:column;width:min(440px,calc(100vw - 36px));gap:12px}.finish-actions button,.finish-actions a{display:block;background:none;border:0;padding:0;cursor:pointer;min-height:58px;aspect-ratio:22/5;border-radius:18px}.finish-actions img{display:block;width:100%;height:100%;object-fit:contain;pointer-events: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;align-items:center;justify-content:center;gap:16px;background:#f8d995e8;font-size:20px;font-weight:800}#load-state[hidden]{display:none}.loader{width:52px;height:66px;background:#ff8a4f;border:5px solid #fcf2cf;border-radius:55% 55% 48% 48%;box-shadow:0 6px 0 #80523b2b;animation:load 1s ease-in-out infinite}#retry{padding:12px 20px;border:0;border-radius:16px;background:#7423c9;color:white;font-weight:800}@keyframes fit{0%{filter:brightness(1.5)}50%{filter:brightness(1.17)}100%{filter:none}}@keyframes shine{0%,100%{opacity:0}35%{opacity:.3}65%{opacity:.06}}@keyframes glint{0%,100%{opacity:0;transform:scale(.45) rotate(-15deg)}35%{opacity:1;transform:scale(1.1) rotate(15deg)}}@keyframes whole-glow{50%{filter:drop-shadow(0 0 18px #fff7bf) brightness(1.18)}}@keyframes hatch{to{opacity:1;transform:translateY(-7%) scale(.94)}}@keyframes nope{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@keyframes load{50%{transform:translateY(-8px) rotate(5deg)}}@media(max-height:500px){.corner{width:72px;height:72px;top:max(6px,env(safe-area-inset-top))}#finale{inset:60px 12px 8px;gap:4px}.celebration{height:min(44dvh,180px)}.finish-actions{width:min(350px,calc((100dvh - 100px)*1.25));gap:5px}.finish-actions button,.finish-actions a{min-height:48px}}@media(prefers-reduced-motion:reduce){:where(#game,#game *):not(.ma-match-shine):not(.ma-match-glint):not(#egg-stage):not(#hatch-egg):not(#hatch-egg *):not(#dino):not(#opened-shells),:where(#game,#game *)::before,:where(#game,#game *)::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}.loader{animation:none}}/* Page ownership: used by the shared session readiness gate. */#game{--ma-game-style:dino-egg}/* 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}}/* P-PZ03: approved composition. Shared controls/feedback remain imported. */.background{display:block}.background img{width:100%;height:100%;object-fit:cover;display:block}#egg-stage{z-index:1}#nest-stage{z-index:0}#nest-front{position:absolute;z-index:3;pointer-events:none}#nest-front img{width:100%;height:100%;object-fit:contain;clip-path:polygon(0 55%,100% 55%,100% 100%,0 100%)}.piece{isolation:isolate;filter:drop-shadow(2px 8px 3px #74341255) drop-shadow(4px 14px 8px #88562b26)}.piece::before{content:"";position:absolute;left:6%;right:0;bottom:-5%;height:11%;z-index:-1;background:radial-gradient(ellipse,#6b3d2360,transparent 70%);pointer-events:none}.piece[aria-pressed=true]{filter:drop-shadow(0 0 2px #fff5ca) drop-shadow(2px 9px 4px #74341260)}.piece.dragging{filter:drop-shadow(4px 17px 9px #74341250);transform:translateY(-24px)}.piece.dragging::before{opacity:.25}/* Same pre-drop glow as the approved Kitchen matching target. No success FX. */.game-screen[data-feedback=brand] .slot.drop-over:not(.matched)>svg{filter:drop-shadow(0 0 5px #fff5c6) brightness(1.12)}.slot .guide-base{fill:#d1baaa;opacity:.98}.slot .guide{opacity:.4}.slot .guide-edge{stroke:#fff4e1;stroke-width:7;stroke-dasharray:13 11;opacity:1}.slot.matched .guide-group{display:none}.slot.fresh .assembled{animation:none}.slot[data-prefilled]>svg,.slot[data-prefilled] .ma-match-shine,.slot[data-prefilled] .ma-match-glint{animation:none!important}.slot[data-prefilled] .ma-match-shine,.slot[data-prefilled] .ma-match-glint{opacity:0!important}.game-screen[data-feedback=brand].is-brand-complete .slot>svg{animation:none!important}#egg-stage.complete:not(.hatching){animation:kitchen-completion-glow 850ms ease-in-out both}#finale{inset:0;display:grid;place-items:center;z-index:20;background:transparent;gap:0}#finale[hidden]{display:none}.game-screen[data-feedback=brand] #finale .celebration-content{position:relative;isolation:isolate}#confetti{inset:0;width:100%;height:100%;z-index:0}.mascots{position:relative;z-index:1;min-width:0;min-height:0;pointer-events:none}.finish-actions{position:relative;z-index:2;flex-shrink:0}#finale .finish-button{position:relative}.corner{cursor:pointer}@media(max-height:500px){#finale{inset:0;gap:0}}@media(prefers-reduced-motion:reduce){.piece,.slot{transition-duration:.01ms}.game-screen.has-brand-finale .brand-final-mascots,.game-screen.has-brand-finale .finish-actions{animation:none!important}}/* The round reward is causal: anticipate, crack, open, emerge, settle. */#hatch-egg{display:none;position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:2;pointer-events:none;transform-origin:50% 90%}.hatch-sequence #hatch-egg{display:block}.hatch-sequence #slots{visibility:hidden}.shell,.shell-cap{transform-box:view-box;transition:transform 1.2s cubic-bezier(.24,.75,.25,1),opacity .25s ease-out;filter:drop-shadow(2px 7px 3px #74341255)}.shell-left,.cap-left{transform-origin:25% 90%}.shell-right,.cap-right{transform-origin:75% 90%}.shell-edge{opacity:0;transition:opacity .2s}.egg-crack path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .7s ease-in-out}[data-hatch-phase=rock] #hatch-egg{animation:egg-anticipation .85s ease-in-out both}[data-hatch-phase=crack] .egg-crack path{stroke-dashoffset:0}[data-hatch-phase=open] .egg-crack,[data-hatch-phase=settle] .egg-crack{opacity:0}[data-hatch-phase=open] .shell-left,[data-hatch-phase=settle] .shell-left{transform:translate(-5%,8%) rotate(-12deg)}[data-hatch-phase=open] .shell-right,[data-hatch-phase=settle] .shell-right{transform:translate(5%,8%) rotate(12deg)}[data-hatch-phase=open] .shell-cap,[data-hatch-phase=settle] .shell-cap{opacity:0;transform:translateY(-10%) scale(.96)}[data-hatch-phase=open] .shell-edge,[data-hatch-phase=settle] .shell-edge{opacity:1}#egg-stage.hatch-sequence.hatching #dino{animation:dino-emerge 1.35s .3s cubic-bezier(.2,.7,.25,1) both}#egg-stage.hatch-sequence[data-hatch-phase=settle] #dino{animation:dino-settle 1.25s ease-in-out 2 both}@keyframes egg-anticipation{0%,100%{transform:rotate(0)}18%{transform:rotate(-2deg)}40%{transform:rotate(2deg)}62%{transform:rotate(-1.4deg)}80%{transform:rotate(.8deg)}}@keyframes dino-emerge{0%{opacity:0;transform:translateY(32%) scale(.67)}20%{opacity:1}75%{opacity:1;transform:translateY(-4%) scale(.81)}100%{opacity:1;transform:translateY(-2%) scale(.78)}}@keyframes dino-settle{0%,100%{opacity:1;transform:translateY(-2%) scale(.78)}50%{opacity:1;transform:translateY(-3%) scale(.79)}}/* P-PZ05: true painted toy volume; no synthetic striped extrusion. */#nest-front svg{display:block;width:100%;height:100%;overflow:visible}#opened-shells{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2;opacity:0;pointer-events:none;transform:translateY(2%) scale(.84);transform-origin:50% 90%;filter:drop-shadow(1px 4px 2px #74341240)}[data-hatch-phase=open] #opened-shells,[data-hatch-phase=settle] #opened-shells{opacity:1;transform:translateY(2%) scale(.96);transition:opacity .45s .2s ease-out,transform 1.1s .2s ease-out}[data-hatch-phase=open] .shell,[data-hatch-phase=settle] .shell{opacity:0;transition:transform 1.2s ease-out,opacity .4s ease-out}#assembled-surface{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.hatch-sequence #assembled-surface{visibility:hidden}
