:root{--bg-primary: #FAF8F5;--bg-card: #FFFFFF;--text-primary: #2C2623;--text-secondary: #7A726E;--accent-sunshine: #FFD23F;--accent-coral: #FF5A5F;--accent-sky: #A8DADC;--shadow-sm: 0 2px 8px rgba(44, 38, 35, .04);--shadow-md: 0 8px 24px rgba(44, 38, 35, .08);--font-main: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--bg-primary);color:var(--text-primary);min-height:100dvh;display:flex;flex-direction:column;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);overflow:hidden;-webkit-tap-highlight-color:transparent}body,html,#app,.game-stage,.mascot-container,domo-mascot,.domo-svg,.controls-area,.snack-tray,.snack-item,button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input{-webkit-user-select:text!important;user-select:text!important}#app{display:flex;flex-direction:column;flex-grow:1;width:100%;max-width:500px;margin:0 auto;padding:16px;justify-content:space-between}.app-header{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.logo{font-weight:800;font-size:1.25rem;letter-spacing:-.5px;color:var(--text-primary)}.logo span{color:var(--accent-coral)}.icon-btn{background:var(--bg-card);border:1px solid rgba(44,38,35,.08);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .2s ease,background-color .2s ease}.icon-btn:active{transform:scale(.92);background-color:#f3f1ed}.game-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;width:100%;position:relative;gap:12px}.speech-bubble-container{width:100%;display:flex;justify-content:center;align-items:center;margin-bottom:2px;z-index:10}.speech-bubble{background:var(--bg-card);border-radius:20px;padding:14px 20px;box-shadow:var(--shadow-md);position:relative;text-align:center;font-size:.95rem;font-weight:600;line-height:1.4;color:var(--text-primary);max-width:90%;border:2px solid rgba(44,38,35,.04)}.speech-bubble:after{content:"";position:absolute;bottom:-10px;left:50%;transform:translate(-50%);border-width:10px 10px 0;border-style:solid;border-color:var(--bg-card) transparent;display:block;width:0}.speech-bubble:before{content:"";position:absolute;bottom:-13px;left:50%;transform:translate(-50%);border-width:11px 11px 0;border-style:solid;border-color:rgba(44,38,35,.04) transparent;display:block;width:0;z-index:-1}.mascot-container{width:100%;display:flex;justify-content:center;align-items:center;touch-action:none;flex-grow:0;margin:4px 0}domo-mascot{display:block;width:clamp(180px,45vw,260px);aspect-ratio:1 / 1;cursor:grab;transition:transform .1s ease-out}domo-mascot:active{cursor:grabbing}.domo-svg{width:100%;height:100%;overflow:visible}.domo-body-group{transform-origin:100px 160px}.domo-idle-group{transform-origin:100px 140px;animation:idle-bob 4s ease-in-out infinite}.domo-shadow{transform-origin:100px 170px;animation:shadow-pulse 4s ease-in-out infinite}@keyframes idle-bob{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(4px) scale(1.02,.98)}}@keyframes shadow-pulse{0%,to{transform:scale(1);opacity:.25}50%{transform:scale(1.08);opacity:.35}}.state-excited-anticipation .domo-idle-group{animation:excited-bounce .42s cubic-bezier(.36,0,.66,-.56) infinite alternate!important}@keyframes excited-bounce{0%{transform:translateY(0) scale(1.08,.92)}to{transform:translateY(-24px) scale(.92,1.08)}}.state-excited-anticipation .domo-shadow{animation:excited-shadow .42s cubic-bezier(.36,0,.66,-.56) infinite alternate!important}@keyframes excited-shadow{0%{transform:scale(1.18);opacity:.38}to{transform:scale(.72);opacity:.12}}.hidden-layer{display:none!important}.delivery-container{position:relative;margin-top:8px;display:flex;flex-direction:column;align-items:center;z-index:25;transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .35s ease}.envelope-btn{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;outline:none;padding:0;animation:float-envelope 2.6s ease-in-out infinite}.envelope-svg{width:150px;height:112px;overflow:visible}.envelope-group{transform-origin:80px 70px;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.envelope-btn:hover .envelope-group{transform:scale(1.06) rotate(-2deg)}.envelope-btn:active .envelope-group{transform:scale(.94)}.envelope-flap{transform-origin:80px 30px;transition:transform .4s cubic-bezier(.4,0,.2,1)}.letter-slip{transform-origin:80px 50px;transition:transform .4s .12s cubic-bezier(.34,1.56,.64,1)}.delivery-container.is-opening .envelope-flap{transform:rotateX(180deg)}.delivery-container.is-opening .letter-slip{transform:translateY(-26px) scale(1.08)}.delivery-container.is-opening{animation:envelope-unwrap-pop .65s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes float-envelope{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes envelope-unwrap-pop{0%{transform:scale(1);opacity:1}45%{transform:scale(1.15) translateY(-10px);opacity:1}to{transform:scale(.7) translateY(20px);opacity:0;pointer-events:none}}.envelope-label{background:var(--bg-card);border:2px solid var(--text-primary);color:var(--text-primary);padding:8px 16px;border-radius:999px;font-size:.88rem;font-weight:800;letter-spacing:-.2px;box-shadow:0 6px 16px #2c26231f;animation:pulse-envelope-label 2.2s ease-in-out infinite;pointer-events:none;white-space:nowrap}@keyframes pulse-envelope-label{0%,to{transform:scale(1);box-shadow:0 4px 12px #2c26231a}50%{transform:scale(1.04);box-shadow:0 8px 20px #ff5a5f40}}.message-controls{position:relative;margin-top:8px;display:flex;justify-content:center;align-items:center;gap:12px;z-index:15;animation:fade-slide-up .45s cubic-bezier(.34,1.56,.64,1) forwards}.action-btn{background:var(--bg-card);color:var(--text-primary);border:2px solid rgba(44,38,35,.12);border-radius:999px;padding:10px 18px;font-family:var(--font-main);font-size:.88rem;font-weight:700;display:inline-flex;align-items:center;gap:6px;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .2s cubic-bezier(.34,1.56,.64,1),background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.action-btn:hover{background-color:#faf8f5;border-color:var(--accent-coral);transform:scale(1.05) translateY(-2px);box-shadow:var(--shadow-md)}.action-btn:active{transform:scale(.94)}.reply-btn{background-color:var(--accent-coral);color:#fff;border-color:var(--accent-coral)}.reply-btn:hover{background-color:#e04e53;border-color:#e04e53;color:#fff}.btn-icon{font-size:1rem;display:inline-block;transition:transform .3s ease}.replay-btn:hover .btn-icon{transform:rotate(180deg)}.reply-btn:hover .btn-icon{transform:scale(1.2) rotate(-8deg)}@keyframes fade-slide-up{0%{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.toast{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-20px);background:var(--text-primary);color:#fff;padding:11px 22px;border-radius:999px;font-size:.88rem;font-weight:700;box-shadow:0 10px 28px #2c262338;z-index:1000;display:flex;align-items:center;gap:8px;opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.175,.885,.32,1.275),opacity .3s ease}.toast.toast-show{transform:translate(-50%) translateY(0);opacity:1}.hidden{display:none!important}.controls-area{display:flex;flex-direction:column;gap:16px;padding-bottom:8px;transition:opacity .4s cubic-bezier(.34,1.56,.64,1),transform .4s cubic-bezier(.34,1.56,.64,1)}.controls-area.controls-hidden{display:none!important}.controls-area.controls-reveal{animation:fade-slide-up .5s cubic-bezier(.34,1.56,.64,1) forwards}.input-bar{display:flex;flex-direction:column;gap:10px;width:100%}.input-bar input{width:100%;height:48px;border:1px solid rgba(44,38,35,.12);border-radius:12px;padding:0 16px;font-family:var(--font-main);font-size:.95rem;font-weight:600;color:var(--text-primary);background-color:var(--bg-card);outline:none;box-shadow:var(--shadow-sm);transition:border-color .2s ease,box-shadow .2s ease}.input-bar input:focus{border-color:var(--accent-coral);box-shadow:0 0 0 3px #ff5a5f26}.share-btn{background-color:var(--accent-coral);color:#fff;border:none;border-radius:12px;height:48px;width:100%;font-family:var(--font-main);font-size:.95rem;font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .2s ease,background-color .2s ease;display:flex;align-items:center;justify-content:center}.share-btn:active{transform:scale(.96);background-color:#e04e53}.snack-tray-container{width:100%}.snack-tray{display:flex;justify-content:space-around;align-items:center;background:var(--bg-card);border:1px solid rgba(44,38,35,.06);border-radius:16px;padding:12px;box-shadow:var(--shadow-sm)}.snack-item{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-primary);border:1px solid rgba(44,38,35,.08);border-radius:12px;width:52px;height:52px;cursor:grab;font-size:1.65rem;line-height:1;padding:0;box-shadow:var(--shadow-sm);transition:transform .2s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s ease;-webkit-user-select:none;user-select:none;touch-action:none;position:relative;z-index:20}.snack-item:active{cursor:grabbing;transform:scale(.92)}.snack-item:hover{transform:translateY(-3px) scale(1.06);box-shadow:var(--shadow-md);border-color:#2c262326}.flying-snack{position:absolute;font-size:2.2rem;z-index:99;pointer-events:none}.reaction-overlay{pointer-events:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:5}.domo-reaction-group{transform-origin:100px 160px;transition:transform .2s ease;will-change:transform}.state-chili #domo-body{fill:#ff4b2b!important;transition:fill .3s ease}.state-chili-shake{animation:chili-shake-hop .4s ease-in-out infinite}@keyframes chili-shake-hop{0%,to{transform:translate(0)}10%,30%{transform:translate(-5px)}20%,40%{transform:translate(5px,-8px)}50%,70%{transform:translate(-5px)}60%,80%{transform:translate(5px,-8px)}90%{transform:translate(-2px)}}.state-balloon{transform:scale(1.4) translateY(-110px)!important;transition:transform 2.2s cubic-bezier(.25,.8,.25,1)!important}.domo-sway-group{transform-origin:100px 140px}.state-balloon-sway{animation:balloon-sway 3s ease-in-out infinite alternate}@keyframes balloon-sway{0%{transform:translate(-6px) rotate(-2deg)}to{transform:translate(6px) rotate(2deg)}}.state-spark-ricochet{animation:spark-ricochet .8s ease-in-out infinite alternate,spark-frizz .05s infinite}@keyframes spark-ricochet{0%{transform:translate(-80px) scaleX(.85)}50%{transform:translate(80px) scaleX(.85)}to{transform:translate(0) scaleX(1)}}@keyframes spark-frizz{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.state-espresso-bob{animation:espresso-hyper-bob .22s infinite alternate}@keyframes espresso-hyper-bob{0%{transform:translateY(0) scaleY(1)}to{transform:translateY(-16px) scaleY(.92)}}.state-espresso-trail{filter:drop-shadow(4px 4px 10px rgba(255,90,95,.35)) drop-shadow(-4px -4px 10px rgba(255,210,63,.35))}.state-frozen #domo-body{fill:#00f2fe!important;transition:fill .3s ease}.state-frost-shiver{animation:frost-shiver .08s infinite alternate}@keyframes frost-shiver{0%{transform:translate(-2px)}to{transform:translate(2px)}}.state-star-spin{animation:star-spin 1.2s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes star-spin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.15)}to{transform:rotate(360deg) scale(1)}}.confetti-particle{position:absolute;pointer-events:none;font-size:1.2rem;z-index:10;animation:confetti-fall 2.5s ease-out forwards}@keyframes confetti-fall{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}
