*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:#548124;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}.background{position:absolute;inset:0;z-index:-2;pointer-events:none}.background img{width:100%;height:100%;object-fit:cover;display:block}.corner-button{position:absolute;z-index:20;cursor:pointer;display:block}.workspace{position:absolute;inset:0}.workspace.leaving{pointer-events:none}.basin{position:absolute;z-index:4;pointer-events:none;filter:drop-shadow(5px 12px 8px #283b1760)}.basin>svg{width:100%;height:100%;display:block;overflow:visible}.source{z-index:4}.neck{position:absolute;z-index:2;pointer-events:none}.neck svg{display:block;width:100%;height:100%}.pipe{position:absolute;padding:0;border:0;background:none;cursor:pointer;touch-action:manipulation;isolation:isolate;z-index:3}.pipe:disabled{cursor:default}.pipe:active .rotor{scale:.975}.pipe:focus-visible{outline:3px solid #fff4b2;outline-offset:3px;border-radius:50%}.pipe:before{content:'';position:absolute;inset:32%;border-radius:50%;background:radial-gradient(circle,#a9935f80,#a9935f18 65%,transparent 70%);z-index:-1}.rotor{position:absolute;left:50%;top:50%;width:114%;height:43%;transform:translate(-50%,-50%) rotate(var(--angle));transition:transform 420ms cubic-bezier(.22,.65,.32,1);filter:drop-shadow(3px 7px 4px #263c2270);pointer-events:none}.rotor>svg{display:block;width:100%;height:100%;overflow:visible}.pipe.turning{z-index:5}.pipe.matched{z-index:6}.pipe .fit-feedback{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.pipe .ma-match-glint{transform-box:fill-box;transform-origin:center}.fountain-water{opacity:0;transition:opacity 900ms ease}.fountain.filling .fountain-water{opacity:.88}.fountain .jet{opacity:0;transition:opacity 600ms ease;transform-origin:50% 48%}.fountain.spraying .jet{opacity:1}.fountain .jet-line{stroke-dasharray:4 7;animation:jet-dash 650ms linear infinite}.fountain .ripple{transform-origin:50% 55%;animation:ripple 1800ms ease-out infinite}.fountain .ripple.second{animation-delay:800ms}.source-ripple{opacity:.25;transform-origin:center;animation:ripple 3s ease-out infinite}#hint{position:absolute;z-index:10;width:65px;height:72px;pointer-events:none;opacity:0;transform:translate(0,10px);transform-origin:42.222222% 16%;transition:opacity 250ms}#hint.visible{opacity:1;animation:hint-tap 1600ms ease-in-out infinite}#hint svg{width:100%;height:100%;filter:drop-shadow(1px 4px 2px #30261750)}.hint-ring{position:absolute;inset:10%;border:3px solid #fff5b8;border-radius:50%;opacity:0;pointer-events:none}.pipe.hinting .hint-ring{animation:hint-ring 1600ms ease-out infinite}.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}@keyframes jet-dash{to{stroke-dashoffset:22}}@keyframes ripple{0%{scale:.55;opacity:0}25%{opacity:.35}100%{scale:1.05;opacity:0}}@keyframes hint-tap{0%,100%{transform:translate(0,10px)}35%,55%{transform:translate(0,0) scale(.92)}}@keyframes hint-ring{0%{scale:.5;opacity:0}35%{opacity:.7}100%{scale:1;opacity:0}}.basin>svg,.rotor>svg{overflow:hidden}.game-screen .pipe>.fit-feedback{rotate:var(--angle)}.pipe.hinting .rotor>svg{animation:hint-rotate 1600ms ease-in-out infinite}@keyframes hint-rotate{0%,55%,100%{rotate:0deg}30%{rotate:12deg}}@media(prefers-reduced-motion:reduce){.rotor{transition-duration:300ms}.source-ripple,.fountain .ripple{animation-duration:4s}#hint.visible{animation-duration:2400ms}}/* P-PZ06REV02: eight clock positions, full-bore water and complementary butt joints. */.basin,.source{z-index:9}.rotor{width:100%;height:var(--pipe-thickness,60px);transition:transform 420ms cubic-bezier(.22,.65,.32,1)}.rotor>svg{overflow:visible}.pipe .fit-feedback{inset:auto;left:0;top:calc(50% - var(--pipe-thickness,60px)/2);width:100%;height:var(--pipe-thickness,60px)}.game-screen .pipe>.fit-feedback{rotate:var(--angle)}.game-screen[data-state=mixing] .rotor{transition:transform 1750ms cubic-bezier(.25,.08,.2,1)}.pipe.hinting .rotor>svg{animation:none}.source-water{opacity:1}.source .jet{opacity:1}.source .jet-line{stroke-dasharray:8 12;animation:jet-dash 900ms linear infinite}.source .ripple{transform-origin:50% 55%;animation:ripple 2300ms ease-out infinite}.fountain.filling .fountain-water{opacity:1}.game-screen.intro-full .fountain-water{opacity:1;transition:none}@media(prefers-reduced-motion:reduce){.rotor{transition-duration:350ms}.game-screen[data-state=mixing] .rotor{transition-duration:1750ms}}/* REV03: one opaque joined pipe; the water remains inside, invisible. */.connected-pipe{position:absolute;z-index:4;pointer-events:none;opacity:0;transition:opacity 240ms;filter:drop-shadow(3px 7px 4px #263c2270)}.connected-pipe>svg{display:block;width:100%;height:100%;overflow:visible}.pipes-joined .connected-pipe{opacity:1}.pipes-joined .pipe .rotor{opacity:0}.pipe .rotor{transition:transform 420ms cubic-bezier(.22,.65,.32,1),opacity 240ms}.game-screen[data-state=mixing] .rotor{transition:transform 1750ms cubic-bezier(.25,.08,.2,1),opacity 240ms}.game-screen[data-state=joining] .connected-pipe{animation:kitchen-completion-glow 850ms ease-in-out both}.game-screen.intro-full .fountain .jet{opacity:1;transition:none}.game-screen.intro-full .fountain-water{opacity:1;transition:none}.fountain .jet{transition:opacity 300ms ease}.fountain.spraying .jet{opacity:1}/* Page ownership: used by the shared session readiness gate. */#game{--ma-game-style:water-fountain}/* 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}
