:root{--site-focus:#502b84}:root[data-theme="dark"]{--site-focus:#e4c7ff}html[data-focus-input="pointer"] :focus{outline:none !important}html[data-focus-input="keyboard"] :where(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"]),[contenteditable]:not([contenteditable="false"]),[role="button"]):focus-visible{outline:3px solid var(--ma-focus,var(--site-focus));outline-offset:4px}.adaptive-picture{display:contents}/* Shared inactivity help, deliberately available in both motion modes. */.ma-idle-hand{display:block!important;position:fixed;left:0;top:0;z-index:60;width:42px;height:54px;pointer-events:none;filter:drop-shadow(0 3px 2px #22475535)}.ma-idle-hand svg{width:100%;height:100%}.ma-idle-target{filter:drop-shadow(0 0 5px #fff5c6)}@media(prefers-reduced-motion:reduce){.hint-hand{display:block!important}}/* P-LOADING04: approved orbit, near-opaque backdrop, no local game overrides. */#ma-game-loading{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;isolation:isolate;opacity:1;transition:opacity 180ms ease-out!important;pointer-events:none}#ma-game-loading[hidden]{display:none!important}#ma-game-loading::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 45%,rgb(255 255 255 / .97) 0%,rgb(246 240 255 / .97) 52%,rgb(229 248 246 / .97) 100%)}#ma-game-loading .ma-loading-field{position:relative;width:min(380px,calc(100vw - 24px),calc(100dvh - 24px));aspect-ratio:1;display:grid;place-items:center}#ma-game-loading .ma-loading-logo{position:relative;display:block;width:65%;height:auto;z-index:2;pointer-events:none}#ma-game-loading .ma-loading-orbit{position:absolute;inset:0;animation:ma-loading-orbit 16s linear infinite!important;animation-duration:16s!important;animation-delay:0s!important}#ma-game-loading .ma-loading-anchor{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);transform:translate(-50%,-50%);filter:drop-shadow(0 4px 3px #6c497826);pointer-events:none}#ma-game-loading .ma-loading-bob{display:block;width:100%;height:100%;animation:ma-loading-bob 3s ease-in-out var(--delay) infinite!important;animation-duration:3s!important;animation-delay:var(--delay) !important}#ma-game-loading .ma-loading-form{display:block;width:100%;height:100%;background:radial-gradient(ellipse at 32% 20%,#ffffffbd 0%,#ffffff20 34%,transparent 52%),linear-gradient(160deg,#ffffff20,transparent 52%,#43215d26),var(--color);box-shadow:inset 0 -3px 3px #45235c20,inset 0 2px 2px #ffffff80;animation:ma-loading-spin 6s linear var(--delay) infinite!important;animation-duration:6s!important;animation-delay:var(--delay) !important}#ma-game-loading .ma-loading-circle{border-radius:50%}#ma-game-loading .ma-loading-square{border-radius:6px}#ma-game-loading .ma-loading-triangle{clip-path:polygon(50% 0,100% 94%,0 94%)}#ma-game-loading .ma-loading-diamond{border-radius:4px;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}#ma-game-loading .ma-loading-hexagon{clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%)}#ma-game-loading .ma-loading-pentagon{clip-path:polygon(50% 0,98% 36%,80% 96%,20% 96%,2% 36%)}#ma-game-loading.ma-loading-out{opacity:0;transition-duration:180ms!important}#ma-game-loading[data-hidden=true] *,#ma-game-loading[data-error=true] *{animation-play-state:paused!important}#ma-game-loading .ma-loading-error{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;color:#422365;font:600 16px/1.4 system-ui;text-align:center;padding:12px}#ma-game-loading .ma-loading-error p{flex-basis:100%;margin:0}#ma-game-loading .ma-loading-error button,#ma-game-loading .ma-loading-error a{font:inherit;min-height:44px;padding:10px 16px;border-radius:14px;border:0;background:#7423c9;color:#fff;text-decoration:none}@keyframes ma-loading-orbit{to{transform:rotate(360deg)}}@keyframes ma-loading-spin{to{transform:rotate(-360deg)}}@keyframes ma-loading-bob{0%,100%{transform:translateY(3px)}50%{transform:translateY(-3px)}}@media(max-width:400px),(max-height:400px){#ma-game-loading .ma-loading-anchor{width:calc(var(--size)*.87);height:calc(var(--size)*.87)}}@media(prefers-reduced-motion:reduce){#ma-game-loading .ma-loading-orbit{animation-duration:28s!important}#ma-game-loading .ma-loading-form{animation-duration:14s!important}#ma-game-loading .ma-loading-bob{animation:none!important}}/* P-LOADING05: logo and shapes enter together after the small logo decodes. */#ma-game-loading .ma-loading-field:not(.ma-loading-ready){visibility:hidden}#ma-game-loading .ma-loading-field:not(.ma-loading-ready) *{animation-play-state:paused!important}/* P-FINALRECS01: approved V4 finale; applies only when two recommendations exist. */.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .celebration-screen{padding:16px max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left))}.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .celebration-screen .celebration-content{gap:16px;max-width:780px}.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .brand-final-mascots{width:min(540px,92vw);height:min(42dvh,380px);object-fit:contain}.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .finish-actions{width:min(760px,calc(100vw - 16px));align-items:center;gap:12px}.ma-has-recommendations .ma-final-recommendations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:min(100%,calc(61dvh + 16px))}.ma-final-recommendations .game-card{position:relative;display:block;aspect-ratio:1;min-width:0;border-radius:24px;text-decoration:none;transition:transform 160ms ease}.ma-final-recommendations .game-card:hover{transform:translateY(-3px)}.ma-final-recommendations .game-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.ma-final-recommendations .game-card .game-cta{inset:auto;top:72%;left:16%;width:68%;height:auto;aspect-ratio:3/1;z-index:1}.ma-final-recommendations .game-card:focus-visible{outline:3px solid #6834c9;outline-offset:3px}@media(max-height:500px){.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .celebration-screen{padding-top:10px;padding-bottom:10px}.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .celebration-screen .celebration-content{gap:8px}.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .brand-final-mascots{height:clamp(76px,27dvh,120px)}.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .finish-actions{width:min(760px,calc(100vw - 16px));gap:8px}.ma-has-recommendations .ma-final-recommendations{width:min(100%,calc(44dvh + 16px))}.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .finish-button.has-finale-image{min-height:48px}}/* V2: prioritize the recommendations; keep action art proportions intact. */.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .finish-actions > .finish-button{width:min(320px,76vw);min-height:0}.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .finish-actions > a.finish-button{width:min(320px,76vw);min-height:0}@media(max-height:650px) and (min-height:501px){.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .brand-final-mascots{height:31dvh}.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .celebration-screen .celebration-content,.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .finish-actions{gap:8px}}@media(max-height:500px){.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .finish-actions > .finish-button{width:min(232px,calc((100dvh - 80px)*.62),76vw);min-height:48px}.game-screen:is([data-feedback=brand],[data-theme=kitchen]).ma-has-recommendations .finish-actions > a.finish-button{width:min(232px,calc((100dvh - 80px)*.62),76vw)}}/* V4: mascots lead; recommendations keep two columns with a quieter scale. */@media(max-width:560px) and (min-height:501px){.ma-has-recommendations .ma-final-recommendations{width:90%}}.ma-final-recommendations .game-card{border:0;box-shadow:none;background:transparent;overflow:visible;color:inherit}.ma-final-recommendations .game-art{position:relative;display:block;aspect-ratio:1;min-height:0;background:transparent}.ma-final-recommendations .game-art::after{display:none}.ma-final-recommendations picture{display:contents}.ma-final-recommendations .game-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.ma-final-recommendations .game-art .game-cta{inset:auto;top:72%;left:16%;width:68%;height:auto;aspect-ratio:3/1;z-index:1}/* Legacy pilot cards have a home-only max-height; clear it in the finale. */.ma-final-recommendations .game-card{width:100%;height:auto;max-height:none;padding:0}/* Approved shared celebration, shared by the four progressive games. */.game-screen[data-feedback=brand].has-brand-finale > .corner-button{display:none}.game-screen[data-feedback=brand] .celebration-screen{background:transparent;padding:max(24px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left))}.game-screen[data-feedback=brand] .celebration-screen .confetti,.game-screen[data-feedback=brand] .celebration-screen h2,.game-screen[data-feedback=brand] .celebration-art{display:none}.game-screen[data-feedback=brand] .brand-final-only{display:block}.game-screen[data-feedback=brand] #brand-final-confetti{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.game-screen[data-feedback=brand] .celebration-screen .celebration-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;max-width:650px;max-height:none;z-index:1}.game-screen[data-feedback=brand] .brand-final-mascots{width:min(500px, 85vw);height:min(57dvh, 85vw, 500px);object-fit:contain;flex:none}.game-screen[data-feedback=brand] .finish-actions{padding:0;animation:none}.game-screen[data-feedback=brand].is-brand-complete .slot > svg{animation:kitchen-completion-glow 850ms ease-in-out both !important}.game-screen[data-feedback=brand].is-brand-clearing .workspace{animation:kitchen-completion-out 400ms ease-in-out both !important}.game-screen[data-feedback=brand].has-brand-finale .brand-final-mascots{animation:kitchen-finale-in 600ms ease-out both !important}.game-screen[data-feedback=brand].has-brand-finale .finish-actions{animation:kitchen-finale-in 450ms 300ms ease-out both !important}@media(max-height: 500px){.game-screen[data-feedback=brand] .celebration-screen{padding-top:max(12px, env(safe-area-inset-top));padding-bottom:max(12px, env(safe-area-inset-bottom))}.game-screen[data-feedback=brand] .celebration-screen .celebration-content{gap:12px}}.game-screen[data-feedback=brand] .ma-match-shine,.game-screen[data-feedback=brand] .ma-match-glint{opacity:0}.game-screen[data-feedback=brand] .slot.matched > svg{animation:ma-match-seat 340ms ease-in-out;transform-origin:center}.game-screen[data-feedback=brand] .slot.matched .ma-match-shine{animation:ma-match-shine 900ms 120ms ease-in-out both}.game-screen[data-feedback=brand] .slot.matched .ma-match-glint{animation:kitchen-glint 730ms ease-in-out both;animation-delay:var(--spark-delay)}.game-screen[data-feedback=brand] .workspace.leaving{animation:kitchen-completion-out 400ms ease-in-out both}@keyframes ma-match-seat{35%{scale:.965}}@keyframes ma-match-shine{0%{transform:translateX(0);opacity:0}25%{opacity:.95}100%{transform:translateX(var(--shine-travel, 400px));opacity:0}}@media(prefers-reduced-motion:reduce){.game-screen[data-feedback=brand] .slot.matched > svg{animation:none}.game-screen[data-feedback=brand] .slot.matched .ma-match-shine{transform:translateX(var(--shine-mid, 200px));animation:kitchen-soft-shine 900ms 120ms ease-in-out both !important}.game-screen[data-feedback=brand] .slot.matched .ma-match-glint{animation:kitchen-glint 730ms ease-in-out both !important;animation-delay:var(--spark-delay) !important}.game-screen[data-feedback=brand] .workspace.leaving{animation:kitchen-completion-out 400ms ease-in-out both !important}}/* P-FARM03: the completed animals stay in the left field across all three pairs. */.game-screen[data-theme=farm] .workspace{flex-direction:row;gap:12px}.game-screen[data-theme=farm] .slots{flex:2}.game-screen[data-theme=farm] .pieces{flex:1}.game-screen[data-theme=farm].farm-next-pair .workspace.entering .slot > svg{animation:none !important}.game-screen[data-theme=farm]:not(.has-brand-finale):not(.is-brand-clearing) .workspace.leaving{animation:none !important}.game-screen[data-theme=farm] .workspace.leaving .pieces{animation:kitchen-completion-out 400ms ease-in-out both}.game-screen[data-theme=farm] .farm-zone-portrait{display:none}.game-screen[data-theme=farm] .farm-zone-landscape{display:block;transform:translateX(16.667%)}/* P-BUTTERFLY02: retain completed targets while only the wing bank changes. */.game-screen[data-theme=butterflies]:not(.is-brand-clearing) .workspace.leaving{animation:none !important}.game-screen[data-theme=butterflies] .workspace.leaving .pieces{animation:kitchen-completion-out 400ms ease-in-out both}.game-screen[data-theme=butterflies]:not(.is-brand-complete) .slot.butterfly-retained > svg{animation:none !important}/* Shared effects retain their approved historical names across every game.
   These definitions belong to feedback, even when the prefix is kitchen-. */@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}}/* The shared completion glow also applies to Dino before its thematic hatching. */body[data-game-module=dino-egg] #egg-stage.complete:not(.hatching){animation:kitchen-completion-glow 850ms ease-in-out both !important}/* Mobile WebKit can leave drop-shadow pixels behind when an uncomposited
   piece moves via left/top or changes filter. Keep the moving surface in a
   stable compositing layer before selection, drag and return. Preserve filter
   values, overflow and the engines' inline/animated transforms. Do not use
   will-change:filter: it has separate cross-browser shadow defects.
   WebKit-only capabilities keep Chromium rasterization unchanged.
   P-DRAGSHADOW01; investigation: platform/build/drag-shadow-fix-20261022/. */@supports (-webkit-touch-callout: none) or (-webkit-backdrop-filter: none){#game .piece{transform:translateZ(0);will-change:transform}.drag-ghost,.fly-piece{will-change:transform}}/* Approved Kitchen and Cosmos finales; preserve native button events. */.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .finish-actions{width:min(440px, calc(100vw - 32px));max-width:none;gap:12px}.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .finish-button.has-finale-image{display:block;width:100%;min-height:64px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;aspect-ratio:22/5;cursor:pointer}.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .finish-button.has-finale-image::before,.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .finish-button.has-finale-image::after,.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .finish-button.has-finale-image > .finish-icon-zone,.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .finish-button.has-finale-image > svg{display:none}.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .has-finale-image .ma-button-label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .finish-button .finale-button-art{display:block;width:100%;height:auto;aspect-ratio:22/5;pointer-events:none;user-select:none}.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .finish-button .finale-button-art[hidden]{display:none}.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .finish-button.has-finale-image:focus-visible{outline:3px solid #6834c9;outline-offset:3px;border-radius:22px}@media (max-height: 500px){.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .brand-final-mascots{height:clamp(64px, calc(100dvh - 240px), 180px)}.game-screen:is([data-theme=kitchen],[data-feedback=brand]) .finish-actions{width:min(396px, calc((100dvh - 120px) * 1.76), calc(100vw - 24px))}}/* Existing semantic buttons and sound state remain owned by the game engine. */.game-screen.has-corner-images #home-button,.game-screen.has-corner-images #audio-button{width:80px;height:80px;top:max(0px, env(safe-area-inset-top));padding:0;border:0;border-radius:20px;box-shadow:none}.game-screen.has-corner-images #home-button{left:max(0px, env(safe-area-inset-left));background:transparent url('corner-controls/back.webp') center/contain no-repeat}.game-screen.has-corner-images #audio-button[aria-pressed="true"]{right:max(0px, env(safe-area-inset-right));background:transparent url('corner-controls/sound-on.webp') center/contain no-repeat;box-shadow:none}.game-screen.has-corner-images #audio-button[aria-pressed="false"]{right:max(0px, env(safe-area-inset-right));background:transparent url('corner-controls/sound-off.webp') center/contain no-repeat;box-shadow:none}.game-screen.has-corner-images .corner-button > svg{display:none}.game-screen.has-corner-images .corner-button:focus-visible{outline:3px solid #7132c4;outline-offset:1px}@media (max-height: 500px){.game-screen.has-corner-images #home-button,.game-screen.has-corner-images #audio-button{width:72px;height:72px}}.direct-game #home{display:none !important}#game-entry-error,.direct-game noscript{position:fixed;inset:0;z-index:100;display:grid;place-content:center;gap:20px;padding:24px;text-align:center;background:#faf7f2;color:#302940;font:700 18px/1.5 Nunito,sans-serif}#game-entry-error[hidden]{display:none}#game-entry-error a,.direct-game noscript a{color:#7936cb;padding:12px}
