@font-face{font-family:"Baloo 2";src:url(../fonts/Baloo2.ttf) format("truetype-variations");font-weight:400 800;font-display:swap}:root{--cream: #fdf6e3;--ink: #5b4a3f;--peach: #ffb98a;--coral: #ff8f70;--green: #a8d5a2;--sky: #bfe0f5;--sun: #ffd97a;--shadow: 0 6px 0 rgba(91, 74, 63, .15)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}html,body,#app{width:100%;height:100%;overflow:hidden}body{font-family:"Baloo 2",system-ui,sans-serif;background:var(--cream);color:var(--ink)}button{font-family:inherit;color:inherit;border:none;background:none;cursor:pointer}.scene{position:relative;width:100%;height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#portrait-guard{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--cream);flex-direction:column;align-items:center;justify-content:center;gap:16px;font-size:26px;font-weight:600}#portrait-guard .rotate-icon{font-size:64px;animation:rotate-hint 1.6s ease-in-out infinite}@keyframes rotate-hint{0%,to{transform:rotate(0)}50%{transform:rotate(90deg)}}@media(orientation:portrait){#portrait-guard{display:flex}}.start-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:linear-gradient(180deg,#fff3d6,#ffe8c2 60%,#d9edcf);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;transition:opacity .4s ease}.start-overlay.fade-out{opacity:0;pointer-events:none}.start-title{font-size:clamp(42px,9vw,72px);font-weight:800;letter-spacing:.06em;color:var(--coral);text-shadow:0 4px 0 rgba(91,74,63,.12)}.btn-start{font-size:clamp(24px,5vw,36px);font-weight:700;padding:18px 44px;border-radius:999px;background:var(--sun);box-shadow:var(--shadow);animation:breathe 2s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.garden{background-size:cover;background-position:center bottom;background-color:var(--cream)}.garden-title{position:absolute;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);font-size:clamp(24px,5vw,40px);font-weight:800;letter-spacing:.08em;color:#fff;text-shadow:0 3px 0 rgba(91,74,63,.35)}.garden-buttons{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;gap:clamp(24px,6vw,64px)}.btn-game{width:clamp(110px,20vh,150px);height:clamp(110px,20vh,150px);border-radius:32px;background:#ffffffeb;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:transform .15s ease}.btn-game:active{transform:scale(.94)}.btn-icon{font-size:clamp(44px,9vh,64px);line-height:1}.btn-label{font-size:15px;font-weight:700}.cirmi-sticker{position:absolute;left:max(14px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));width:clamp(84px,18vh,120px);height:clamp(84px,18vh,120px);border-radius:50%;overflow:hidden;border:4px solid #fff;box-shadow:var(--shadow);transition:transform .15s ease}.cirmi-sticker:active{transform:scale(.94) rotate(-4deg)}.cirmi-sticker img{width:100%;height:100%;object-fit:cover}.gear{position:absolute;top:max(8px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));font-size:22px;opacity:.55;padding:8px}.ladybug{position:absolute;z-index:5;animation:bug-bob 2.4s ease-in-out infinite;filter:drop-shadow(0 3px 2px rgba(91,74,63,.25))}@keyframes bug-bob{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-6px) rotate(6deg)}}.ladybug.fly-away{animation:bug-fly 1.1s ease-in forwards}@keyframes bug-fly{to{transform:translate(40vw,-60vh) rotate(360deg) scale(.4);opacity:0}}.letter-garden{background:linear-gradient(180deg,#eaf6e2 0%,var(--cream) 100%);display:flex;align-items:center;justify-content:center}.leaf-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(8px,2vh,16px);padding:56px 70px 16px;width:100%;max-width:900px}.leaf{aspect-ratio:1;border-radius:40% 60% 55% 45%/55% 45% 60% 40%;font-size:clamp(30px,8vh,52px);font-weight:800;box-shadow:var(--shadow);position:relative;transition:transform .15s ease}.leaf:active{transform:scale(.92)}.leaf-green{background:#cdeac0}.leaf-pink{background:#ffd9e8}.leaf-yellow{background:#ffe9b3}.leaf-blue{background:#cfe6f5}.leaf-purple{background:#e6d7f5}.leaf-new{position:absolute;top:-6px;right:-4px;font-size:18px;animation:breathe 1.6s ease-in-out infinite}.letter-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;background:#5b4a3f59;display:flex;align-items:center;justify-content:center}.letter-card{background:#fff;border-radius:28px;box-shadow:var(--shadow);padding:20px 36px;display:flex;align-items:center;gap:36px;max-height:86%}.letter-card-char{font-size:clamp(90px,34vh,170px);font-weight:800;line-height:1;color:var(--coral)}.letter-card-word{display:flex;flex-direction:column;align-items:center;gap:6px;transition:opacity .3s ease,transform .3s ease}.letter-card-word.hidden{opacity:0;transform:scale(.8)}.letter-card-word img{width:clamp(110px,34vh,180px);height:clamp(110px,34vh,180px);object-fit:cover;border-radius:20px}.call-word{font-size:clamp(22px,5vh,32px);font-weight:700;letter-spacing:.12em}.btn-replay{font-size:28px;padding:8px}.letter-hunt{background:linear-gradient(180deg,#fdefd8 0%,var(--cream) 100%);display:flex;flex-direction:column}.hunt-topbar{display:flex;align-items:center;justify-content:space-between;padding:max(8px,env(safe-area-inset-top)) 16px 0}.hunt-dots{display:flex;gap:10px}.dot{width:14px;height:14px;border-radius:50%;background:#5b4a3f33}.dot.done{background:var(--green)}.dot.current{background:var(--sun);animation:breathe 1.4s ease-in-out infinite}.hunt-options{flex:1;display:flex;align-items:center;justify-content:center;gap:clamp(16px,4vw,40px);padding-bottom:24px}.hunt-card{width:clamp(110px,28vh,170px);height:clamp(110px,28vh,170px);border-radius:28px;background:#fff;box-shadow:var(--shadow);font-size:clamp(56px,16vh,100px);font-weight:800;position:relative;transition:transform .15s ease,opacity .3s ease,background .3s ease}.hunt-card:active{transform:scale(.94)}.hunt-card.correct{background:var(--green);color:#fff}.hunt-card.dimmed{opacity:.35;pointer-events:none}.hunt-card.shake{animation:shake .45s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px) rotate(-2deg)}75%{transform:translate(8px) rotate(2deg)}}.hunt-card.hint{animation:hint-pulse 1s ease-in-out infinite}@keyframes hint-pulse{0%,to{box-shadow:var(--shadow)}50%{box-shadow:0 0 0 10px #ffd97abf}}.sparkle{position:absolute;top:50%;left:50%;font-size:22px;pointer-events:none;animation:sparkle-fly .9s ease-out forwards}@keyframes sparkle-fly{0%{transform:translate(-50%,-50%) rotate(var(--angle)) translate(0);opacity:1}to{transform:translate(-50%,-50%) rotate(var(--angle)) translate(90px);opacity:0}}.celebration-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:#fdf6e3f0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}.celebration-text{font-size:clamp(34px,8vh,56px);font-weight:800;color:var(--coral)}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.confetti span{position:absolute;top:-40px;left:calc(var(--i) * 8.3%);font-size:26px;animation:confetti-fall 2.4s linear infinite;animation-delay:calc(var(--i) * .18s)}@keyframes confetti-fall{to{transform:translateY(110vh) rotate(320deg)}}.btn-home{position:relative;z-index:10;font-size:26px;padding:8px}.letter-garden .btn-home{position:absolute;top:max(8px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left))}.btn-big{font-size:clamp(22px,5vh,32px);font-weight:700;padding:14px 36px;border-radius:999px;background:var(--sun);box-shadow:var(--shadow)}.btn-quiet{font-size:16px;opacity:.65;text-decoration:underline}.btn-danger{font-size:17px;font-weight:700;padding:10px 20px;border-radius:14px;background:#f6c7c7;color:#8c3030}.evening-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;background:linear-gradient(180deg,#2b2d54eb,#1e1e3cf2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#fff8e7}.moon{font-size:64px;animation:breathe 3s ease-in-out infinite}.evening-text{font-size:clamp(22px,5vh,32px);font-weight:700}.parents{background:var(--cream);overflow-y:auto}.gate{height:100%;display:flex;align-items:center;justify-content:center}.gate .btn-home{position:absolute;top:max(8px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left))}.gate-box{text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}.gate-title{font-size:20px;font-weight:700;opacity:.7}.gate-question{font-size:28px;font-weight:800}.gate-display{min-height:34px;font-size:26px;font-weight:700;letter-spacing:.2em}.gate-pad{display:grid;grid-template-columns:repeat(6,52px);gap:8px}.gate-pad button{height:44px;border-radius:12px;background:#fff;box-shadow:var(--shadow);font-size:20px;font-weight:700}.gate-msg{min-height:22px;font-size:15px;color:#8c3030}.parent-panel{max-width:700px;margin:0 auto;padding:0 max(20px,env(safe-area-inset-left)) 40px max(20px,env(safe-area-inset-right))}.panel-header{position:sticky;top:0;z-index:5;background:var(--cream);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:max(10px,env(safe-area-inset-top)) 0 10px}.btn-close{font-size:17px;font-weight:700;padding:10px 18px;border-radius:999px;background:var(--sun);box-shadow:var(--shadow)}.panel-header h2{font-size:24px;font-weight:800}.panel-body section{margin-top:20px}.panel-body h3{font-size:18px;font-weight:700;margin-bottom:6px}.note{font-size:14px;opacity:.75;margin-bottom:8px}#child-name{font-family:inherit;font-size:18px;padding:8px 14px;border:2px solid rgba(91,74,63,.25);border-radius:12px;background:#fff;color:inherit;width:220px}.known-grid{display:flex;flex-wrap:wrap;gap:8px}.known-chip{width:46px;height:46px;border-radius:12px;background:#fff;box-shadow:var(--shadow);font-size:20px;font-weight:800;opacity:.45}.known-chip.on{background:var(--green);color:#fff;opacity:1}.progress-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 18px}.progress-row{display:flex;justify-content:space-between;font-size:17px}.p-char{font-weight:800}.p-stars{color:#e0a52e;letter-spacing:.1em}.segmented{display:inline-flex;gap:8px}.segmented button{padding:8px 16px;border-radius:12px;background:#fff;box-shadow:var(--shadow);font-size:16px;font-weight:700;opacity:.5}.segmented button.on{background:var(--sun);opacity:1}
