: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-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%)}.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-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}}
