:root{color:#0f172a;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f1f5f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{width:100%;min-height:100%}html,body{overflow:hidden}body{-webkit-user-select:none;user-select:none;touch-action:manipulation;min-width:320px;margin:0}button,a,input{font:inherit}.app-shell{width:100%;min-height:100dvh}.play-page{width:100%;min-height:100dvh;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);background:radial-gradient(circle at 50% 40%,#fef9c3 0%,#e0f2fe 40%,#e9d5ff 100%);transition:background .22s;position:relative}.play-page.mode-bubble{background:radial-gradient(circle at 50% 40%,#fef9c3 0%,#dbeafe 42%,#e9d5ff 100%)}.play-page.mode-ripple{background:radial-gradient(circle at 45% 45%,#e0f2fe 0%,#bae6fd 40%,#c4b5fd 100%)}.play-page.mode-star{background:radial-gradient(circle at 50% 40%,#fef08a 0%,#fde68a 35%,#f5d0fe 100%)}.play-page.mode-fireworks{background:radial-gradient(circle at 50% 35%,#fce7f3 0%,#ddd6fe 42%,#c7d2fe 100%)}.play-page.mode-animal{background:radial-gradient(circle at 50% 40%,#dcfce7 0%,#bfdbfe 42%,#e9d5ff 100%)}.play-page.mode-animal-avatar{background:radial-gradient(circle at 50% 40%,#d9f99d 0%,#bae6fd 42%,#ddd6fe 100%)}.play-page.mode-canvas{background:radial-gradient(circle at 50% 40%,#fee2e2 0%,#fef3c7 35%,#dbeafe 100%)}.play-page.mode-mixed{background:linear-gradient(130deg,#fee2e2 0%,#fef3c7 25%,#dcfce7 50%,#dbeafe 75%,#f5d0fe 100%)}.play-stage{touch-action:manipulation;width:100%;min-height:100dvh;position:relative;overflow:hidden}.effect-layer{pointer-events:none;position:absolute;inset:0}.current-mode{right:12px;top:calc(12px + env(safe-area-inset-top));z-index:11;color:#334155;text-transform:capitalize;pointer-events:none;background:#ffffffb3;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;position:absolute}.touch-effect{opacity:.72;border-radius:999px;animation:1.2s ease-out forwards pop-effect;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #fff9}.touch-effect.surprise-bubble{filter:saturate(1.1)}.touch-effect.surprise-rainbow{box-shadow:0 0 0 4px #ffffffb3,0 0 0 10px #7dd3fc66,0 0 0 16px #f9a8d44d}.touch-effect.surprise-animal:after{content:attr(data-animal);place-items:center;font-size:24px;animation:.48s ease-out animal-pop,.9s ease-in-out 2 animal-sway;display:grid;position:absolute;inset:0}.touch-effect.mode-bubble{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border:2px solid #ffffffbf}.touch-effect.mode-ripple{box-shadow:0 0 0 4px #ffffffa6,0 0 0 10px #38bdf84d,0 0 0 18px #7dd3fc33}.touch-effect.mode-star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);transform-origin:50%}.touch-effect.mode-fireworks{filter:saturate(1.2)brightness(1.05);animation-duration:.9s}.touch-effect.mode-fireworks .touch-particle{box-shadow:0 0 10px #fffc}.touch-effect.mode-animal:before{content:"🦊";font-size:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-effect.mode-canvas{mix-blend-mode:multiply;border-radius:16px}.touch-particle{background:#ffffffe6;border-radius:999px;width:8px;height:8px;position:absolute;top:50%;left:50%}.touch-particle.animal-trail{animation:.48s ease-out animal-trail-flicker;overflow:visible}.animal-trail-streak{opacity:.9;filter:blur(.4px);border-radius:999px;width:18px;height:4px;animation:.48s ease-out trail-streak-fade;position:absolute;top:50%;left:calc(100% - 1px);transform:translateY(-50%)}.animal-avatar{--animal-move-duration:.7s;--animal-trail-angle:0deg;--animal-trail-length:0px;z-index:3;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:120px;height:120px;transition:left var(--animal-move-duration) cubic-bezier(.22, 1, .36, 1), top var(--animal-move-duration) cubic-bezier(.22, 1, .36, 1), opacity 1.2s ease, transform 1.2s ease;background:#fffc;border:0;border-radius:999px;place-items:center;font-size:64px;line-height:1;animation:1.2s ease-in-out animal-avatar-wiggle;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 16px 30px #0f172a29}.animal-avatar.is-moving:before{content:"";width:max(var(--animal-trail-length), 170px);height:120px;transform:translate(-100%, -50%) rotate(var(--animal-trail-angle));transform-origin:100%;clip-path:ellipse(100% 50% at 100%);opacity:.64;filter:blur(1.35px);pointer-events:none;z-index:-2;animation:animal-avatar-trail-fade var(--animal-move-duration) ease-out forwards;background:radial-gradient(circle at 98%,#ffffff7a 0 26%,#0000 60%),radial-gradient(circle at 96% 24%,#bfdbfe3d 0 18%,#0000 45%),radial-gradient(circle at 96% 76%,#bfdbfe3d 0 18%,#0000 45%),linear-gradient(90deg,#ffffff4d 0%,#fde0fc33 30%,#bfdbfe29 60%,#bfdbfe00 100%);position:absolute;top:50%;left:50%}.animal-avatar.is-moving:after{content:"";width:max(var(--animal-trail-length), 170px);height:120px;transform:translate(-100%, -50%) rotate(var(--animal-trail-angle));transform-origin:100%;clip-path:ellipse(100% 50% at 100%);opacity:.98;filter:blur(.14px)brightness(1.1);mix-blend-mode:screen;pointer-events:none;z-index:-1;animation:animal-avatar-star-fade var(--animal-move-duration) ease-out forwards, animal-avatar-star-twinkle .28s ease-in-out 0s 4 both;background:radial-gradient(circle at 96%,#fff 0 7.2%,#0000 13%),radial-gradient(circle at 91% 35%,#facc15eb 0 5%,#0000 10.8%),radial-gradient(circle at 91% 65%,#f472b6db 0 4.9%,#0000 10.8%),radial-gradient(circle at 86% 44%,#7dd3fce6 0 4.8%,#0000 10.4%),radial-gradient(circle at 86% 58%,#a78bfad6 0 4.7%,#0000 10.4%),radial-gradient(circle at 82% 31%,#fde68acc 0 4.5%,#0000 10%),radial-gradient(circle at 82% 69%,#bae6fdc7 0 4.4%,#0000 10%),radial-gradient(circle at 78% 42%,#f472b6c2 0 4.2%,#0000 9.7%),radial-gradient(circle at 78% 58%,#7dd3fcbd 0 4.1%,#0000 9.7%),radial-gradient(circle at 74% 33%,#a78bfab8 0 3.9%,#0000 9.3%),radial-gradient(circle at 74% 67%,#facc15b3 0 3.8%,#0000 9.3%),radial-gradient(circle at 68%,#ffffffb8 0 3.6%,#0000 8.9%);position:absolute;top:50%;left:50%}.animal-avatar.is-idle-reminder{animation:.86s ease-in-out infinite animal-avatar-idle-sway}.animal-avatar.is-fading{opacity:0;pointer-events:none;animation:none;transform:translate(-50%,-50%)scale(.64)}.idle-guide{color:#334155;pointer-events:none;background:#ffffffb8;border-radius:20px;padding:10px 16px;font-size:28px;font-weight:700;animation:1.2s ease-in-out infinite breathe;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.parent-entry-hotspot{z-index:10;background:0 0;width:64px;height:64px;position:absolute;top:0;left:0}.parent-settings{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));background:#f8fafc}.parent-settings h2{margin:0;font-size:28px}.setting-item{flex-direction:column;gap:8px;margin-top:16px;display:flex}.setting-item select,.setting-item input{background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;font-size:16px}.card-description{color:#475569;margin:10px 0 0}.btn{background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:10px 14px;font-size:16px}.btn-link{color:#1d4ed8;margin-top:20px;font-size:16px;text-decoration:none;display:inline-block}@keyframes pop-effect{0%{opacity:.9;transform:translate(-50%,-50%)scale(.4)}to{opacity:0;transform:translate(-50%,-50%)scale(1.8)}}@keyframes breathe{0%{opacity:.8;transform:translate(-50%,-50%)scale(1)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.06)}to{opacity:.8;transform:translate(-50%,-50%)scale(1)}}@keyframes animal-pop{0%{opacity:0;transform:translateY(6px)scale(.8)}50%{opacity:1;transform:translateY(-2px)scale(1.08)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes animal-sway{0%{transform:translate(0)rotate(0)}25%{transform:translate(-3px)rotate(-8deg)}50%{transform:translate(3px)rotate(7deg)}75%{transform:translate(-2px)rotate(-5deg)}to{transform:translate(0)rotate(0)}}@keyframes animal-avatar-wiggle{0%{transform:translate(-50%,-50%)translate(0)rotate(0)scale(1)}25%{transform:translate(-50%,-50%)translate(-8px)rotate(-8deg)scale(1.06)}50%{transform:translate(-50%,-50%)translate(8px)rotate(7deg)scale(1.12)}75%{transform:translate(-50%,-50%)translate(-6px)rotate(-6deg)scale(1.06)}to{transform:translate(-50%,-50%)translate(0)rotate(0)scale(1)}}@keyframes animal-avatar-trail-fade{0%{opacity:.92;filter:blur(1px)}58%{opacity:.7;filter:blur(1.45px)}to{opacity:0;filter:blur(2.2px)}}@keyframes animal-avatar-star-fade{0%{opacity:1;filter:blur(.06px)}54%{opacity:.92;filter:blur(.24px)}to{opacity:0;filter:blur(1.08px)}}@keyframes animal-avatar-star-twinkle{0%{transform:translate(-100%, -50%) rotate(var(--animal-trail-angle)) scale(.95);opacity:.72}25%{transform:translate(-100%, -50%) rotate(var(--animal-trail-angle)) scale(1.02);opacity:.98}50%{transform:translate(-100%, -50%) rotate(var(--animal-trail-angle)) scale(.97);opacity:.78}75%{transform:translate(-100%, -50%) rotate(var(--animal-trail-angle)) scale(1.04);opacity:1}to{transform:translate(-100%, -50%) rotate(var(--animal-trail-angle)) scale(.98);opacity:.82}}@keyframes animal-avatar-idle-sway{0%{transform:translate(-50%,-50%)translate(0)rotate(0)scale(1)}25%{transform:translate(-50%,-50%)translate(-5px)rotate(-4deg)scale(1.02)}50%{transform:translate(-50%,-50%)translate(5px)rotate(4deg)scale(1.04)}75%{transform:translate(-50%,-50%)translate(-4px)rotate(-3deg)scale(1.02)}to{transform:translate(-50%,-50%)translate(0)rotate(0)scale(1)}}@keyframes animal-trail-flicker{0%{opacity:1}60%{opacity:.95}to{opacity:.7}}@keyframes trail-streak-fade{0%{opacity:.9;width:18px}to{opacity:0;width:28px}}
