: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}.speech-bubble-container{width:100%;min-height:80px;display:flex;justify-content:center;align-items:center;margin-bottom:24px}.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:1}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}}.hidden-layer{display:none!important}.invitation-badge{background:var(--accent-sunshine);border:2px solid var(--text-primary);box-shadow:var(--shadow-md);padding:10px 16px;border-radius:12px;text-align:center;font-size:.85rem;font-weight:700;cursor:pointer;position:absolute;bottom:20%;animation:float-badge 2s ease-in-out infinite;z-index:10}@keyframes float-badge{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.hidden{display:none!important}.controls-area{display:flex;flex-direction:column;gap:16px;padding-bottom:8px}.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}.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}}
