:root{--haus-bg: #fbe3b9;--haus-bg-deep: #f6cf8f;--plop-color: #f7a072}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body{background:radial-gradient(ellipse at 50% 30%,var(--haus-bg) 0%,var(--haus-bg-deep) 100%);font-family:system-ui,sans-serif}#stage{position:fixed;inset:0}.screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;animation:fadein .35s ease}@keyframes fadein{0%{opacity:0}to{opacity:1}}.house{display:flex;flex-direction:column;align-items:center}.roof{width:0;height:0;border-left:40vmin solid transparent;border-right:40vmin solid transparent;border-bottom:20vmin solid #d96b47}.facade{width:72vmin;padding:4vmin;background:#f28f6b;border-radius:0 0 3vmin 3vmin;display:grid;grid-template-columns:1fr 1fr;gap:4vmin}.door{position:relative;min-width:80px;min-height:80px;height:22vmin;padding:0;display:flex;align-items:center;justify-content:center;background:#fff5ea;border:.9vmin solid #d96b47;border-radius:3vmin 3vmin 1.5vmin 1.5vmin;font:inherit;cursor:pointer;transform-origin:left center;touch-action:none}.door-icon{font-size:10vmin;line-height:1;pointer-events:none}.door.enabled{animation:breathe 2.2s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.door.locked:after{content:"🔒";position:absolute;right:1.2vmin;bottom:1.2vmin;font-size:4vmin;line-height:1}.door.wiggle{animation:wiggle .4s ease;border-color:#e03b2f;box-shadow:0 0 0 .9vmin #e03b2f73}@keyframes wiggle{0%,to{transform:translate(0)}20%{transform:translate(-2vmin)}40%{transform:translate(2vmin)}60%{transform:translate(-1.2vmin)}80%{transform:translate(1.2vmin)}}.door.opening{animation:none;transition:transform .5s ease-in;transform:perspective(70vmin) rotateY(-85deg)}.room-screen{background:linear-gradient(#fdf3e0 0% 65%,#ecd9ae 65%,#e2c893)}.back-btn{position:absolute;top:2.5vmin;left:2.5vmin;width:max(13vmin,80px);height:max(13vmin,80px);display:flex;align-items:center;justify-content:center;background:#fff5ea;border:.9vmin solid #d96b47;border-radius:50%;font-size:7vmin;cursor:pointer;touch-action:none}.back-btn:active{transform:scale(.92)}.picker-screen{background:radial-gradient(ellipse at 50% 30%,#fdf3e0,#f2ddb4)}.animal-row{display:flex;gap:4vmin;align-items:flex-end;justify-content:center;flex-wrap:wrap;padding:0 4vmin}.animal-btn{min-width:80px;min-height:80px;padding:2vmin;background:#fff5ea;border:.9vmin solid #d96b47;border-radius:4vmin;cursor:pointer;touch-action:none;transition:transform .25s ease,opacity .4s ease}.animal-btn img{height:22vmin;display:block;pointer-events:none}.animal-btn:active{transform:scale(.94)}.animal-btn.picked{animation:picked-bounce .7s ease infinite;border-color:#f2a24b;box-shadow:0 0 0 1.2vmin #f2a24b73}@keyframes picked-bounce{0%,to{transform:translateY(0) scale(1.06)}50%{transform:translateY(-2.5vmin) scale(1.1)}}.picked-one .animal-btn:not(.picked){opacity:.35}.game-screen{background:#f6ead2}.scene-box{position:relative;width:min(96vw,calc(92vh * 16 / 9));aspect-ratio:16 / 9;border-radius:2vmin;overflow:visible;background:linear-gradient(#faf2e0 0% 64%,#dcc492 64%,#d2b57c);background-size:cover;background-position:center}.spot{position:absolute;min-width:80px;min-height:80px}.spot-fg{position:absolute;inset:0;width:100%;height:100%;z-index:2;transition:transform .4s ease;transform-origin:bottom center}.spot-fg.placeholder{display:flex;align-items:center;justify-content:center;border:.6vmin solid rgba(0,0,0,.15);border-radius:1.5vmin;font-size:7vmin}.spot-fg span{pointer-events:none}.spot-fg.open{transform:rotate(-14deg) translateY(-10%)}.spot-fg[data-reveal=curtain-slide].open{transform-origin:left center;transform:scaleX(.25)}.spot-fg[data-reveal=tilt].open{transform:rotate(-13deg) translateY(-9%)}.spot-fg[data-reveal=lid-open].open{transform-origin:bottom left;transform:rotate(-18deg)}.spot-fg[data-reveal=bush-shake].open{transform-origin:bottom center;transform:rotate(15deg) translate(18%)}.peek{position:absolute;height:78%;z-index:1;opacity:0;transform:translate(-50%);transition:opacity .25s;pointer-events:none}.peek.peeking{opacity:1;animation:peek-wiggle 1.6s ease-in-out infinite;pointer-events:auto;touch-action:none}@keyframes peek-wiggle{0%,to{transform:translate(-50%) rotate(-3deg)}50%{transform:translate(-50%) rotate(3deg)}}.peek.excited{animation:peek-wiggle-strong .6s ease-in-out infinite}@keyframes peek-wiggle-strong{0%,to{transform:translate(-50%) rotate(-8deg)}50%{transform:translate(-50%) rotate(8deg)}}.peek.jump{opacity:1;z-index:3;animation:jump .8s cubic-bezier(.3,1.4,.5,1) forwards}@keyframes jump{0%{transform:translate(-50%) translateY(15%) scale(.85)}55%{transform:translate(-50%) translateY(-55%) scale(1.35)}to{transform:translate(-50%) translateY(-25%) scale(1.25)}}.runner{position:absolute;height:28%;z-index:4;transform:translate(-50%,-50%);transition:left 1.8s ease-in-out,top 1.8s ease-in-out;pointer-events:none}.runner.wave{animation:wave 1s ease-in-out infinite}@keyframes wave{0%,to{transform:translate(-50%,-50%) rotate(-5deg)}50%{transform:translate(-50%,-50%) rotate(5deg)}}.dark-overlay{position:absolute;inset:0;z-index:5;border-radius:inherit;background:#2b2350;opacity:0;transition:opacity .5s;pointer-events:none}.dark-overlay.on{opacity:.45}.dark-overlay.full.on{opacity:.98}.confetti-piece{position:absolute;top:-4vmin;left:var(--x);width:2vmin;height:3vmin;z-index:6;border-radius:.5vmin;background:var(--c);opacity:0;animation:confetti-fall var(--dur) ease-in var(--delay) forwards;pointer-events:none}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:.9;transform:translateY(105vh) rotate(540deg)}}.celebrate{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5vmin;background:#fbe3b9f0;animation:fadein .4s ease}.cuddle{display:flex;align-items:flex-end}.cuddle img{height:34vmin}.cuddle-a{animation:cuddle-left 2.2s ease forwards}.cuddle-b{animation:cuddle-right 2.2s ease forwards}@keyframes cuddle-left{0%{transform:translate(-16vmin) rotate(0)}60%{transform:translate(1vmin) rotate(0)}to{transform:translate(2.5vmin) rotate(9deg)}}@keyframes cuddle-right{0%{transform:translate(16vmin) rotate(0)}60%{transform:translate(-1vmin) rotate(0)}to{transform:translate(-2.5vmin) rotate(-9deg)}}.hearts span{position:absolute;bottom:30vmin;font-size:6vmin;animation:float-up 2.6s ease-in infinite;pointer-events:none}@keyframes float-up{0%{transform:translateY(0);opacity:0}20%{opacity:1}to{transform:translateY(-42vmin);opacity:0}}.btn-row{display:flex;gap:8vmin}.big-btn{width:max(16vmin,80px);height:max(16vmin,80px);display:flex;align-items:center;justify-content:center;background:#fff5ea;border:.9vmin solid #d96b47;border-radius:50%;font-size:8vmin;cursor:pointer;touch-action:none}.big-btn:active{transform:scale(.92)}.parent-hotspot{position:fixed;top:0;right:0;width:140px;height:140px;z-index:50;touch-action:none}.parent-hold-ring{position:fixed;top:24px;right:24px;width:64px;height:64px;border:7px solid rgba(217,107,71,.35);border-radius:50%;z-index:55;opacity:0;pointer-events:none}.parent-hold-ring.active{opacity:1;animation:hold-fill 3s linear forwards}@keyframes hold-fill{0%{transform:scale(.35);border-color:#d96b4759}to{transform:scale(1);border-color:#d96b47}}.parent-panel{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#2b23508c;animation:fadein .25s ease;touch-action:none}.parent-card{position:relative;width:min(88vw,560px);max-height:88vh;overflow-y:auto;padding:28px 32px;background:#fff5ea;border:4px solid #d96b47;border-radius:24px;font-family:system-ui,sans-serif;color:#3a2b1e;user-select:none}.parent-card h2{margin:0 0 18px;font-size:22px}.parent-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid #ecd9c0;font-size:16px}.parent-toggle{min-height:44px;padding:8px 16px;background:#fdf3e0;border:2px solid #d96b47;border-radius:12px;font:inherit;cursor:pointer}.parent-row input[type=range]{width:50%}.parent-levels{display:flex;gap:8px}.parent-level{width:48px;height:44px;background:#fdf3e0;border:2px solid #d96b47;border-radius:12px;font:inherit;font-size:18px;cursor:pointer}.parent-level.active{background:#f2a24b;border-color:#c96f28}.parent-animals{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.parent-animal{width:56px;height:56px;padding:6px;background:#fdf3e0;border:2px solid #d96b47;border-radius:12px;cursor:pointer}.parent-animal img{width:100%;height:100%;object-fit:contain;pointer-events:none}.parent-animal.off{opacity:.3;border-style:dashed}.parent-close{position:absolute;top:12px;right:12px;width:44px;height:44px;background:#fdf3e0;border:2px solid #d96b47;border-radius:50%;font-size:18px;cursor:pointer}.editor-screen{flex-direction:column;gap:12px;background:#efe3cd;user-select:text}.editor-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:center;padding:8px 12px;font-family:system-ui,sans-serif;font-size:14px}.editor-bar input,.editor-bar select,.editor-bar button{min-height:40px;padding:6px 10px;background:#fff5ea;border:2px solid #d96b47;border-radius:10px;font:inherit;cursor:pointer}.editor-bar input[type=text]{cursor:text;min-width:150px}.editor-box{width:min(92vw,calc(74vh * 16 / 9));background-color:#faf2e0;outline:2px dashed #c9a97c}.edit-spot{position:absolute;border:2px dashed #d96b47;border-radius:6px;background:#d96b471f;touch-action:none;cursor:move}.edit-spot.selected{border-color:#2b6cb0;background:#2b6cb026;z-index:3}.edit-fg{position:absolute;inset:0;width:100%;height:100%;opacity:.55;pointer-events:none}.edit-label{position:absolute;top:2px;left:4px;font-family:system-ui,sans-serif;font-size:12px;background:#fff5eae6;padding:1px 5px;border-radius:6px;pointer-events:none}.edit-handle{position:absolute;right:-14px;bottom:-14px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#d96b47;color:#fff;border-radius:50%;font-size:15px;touch-action:none;cursor:nwse-resize;z-index:4}.edit-peek{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;background:#f2a24b;border:3px solid #fff;border-radius:50%;touch-action:none;cursor:grab;z-index:4}.editor-json{position:absolute;inset:12% 10%;z-index:10;font-family:monospace;font-size:12px}.ripple{z-index:10;position:absolute;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;background:radial-gradient(circle,var(--plop-color) 0%,rgba(247,160,114,0) 70%);pointer-events:none;animation:plop .45s ease-out forwards}@keyframes plop{0%{transform:scale(.2);opacity:.9}to{transform:scale(1.5);opacity:0}}
