:root{--navy-deep: #0d1220;--navy: #16203a;--navy-mid: #1f2d4d;--paper: #f2f4f8;--gold: #e0a94f;--gold-soft: #ffe6a3;--warn: #c8452f;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--navy-deep);overflow:hidden;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Pretendard,sans-serif;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#game canvas{display:block}#ui{position:fixed;inset:0;pointer-events:none}.bottombar,.sheet,.kneadview,.hud__chip--btn{pointer-events:auto}.hud{position:absolute;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;gap:6px;font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:.02em}.hud__chip{display:flex;align-items:center;gap:5px;white-space:nowrap;padding:6px 11px;border-radius:999px;background:#0d1220c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--paper);box-shadow:0 4px 18px #0d122066;transition:transform .2s cubic-bezier(.22,1,.36,1)}.hud__chip--money{color:var(--gold-soft)}.hud__chip--btn{border:0;font-family:inherit;font-size:12px;line-height:1;cursor:pointer}.hud__chip--btn:active{transform:scale(.9)}.hud__chip[data-pop=true]{transform:scale(1.12)}.hud__hint{position:absolute;left:50%;top:74px;transform:translate(-50%);padding:8px 16px;border-radius:999px;background:#0d1220b8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#f2f4f8e6;font-size:12px;line-height:1.5;letter-spacing:.02em;white-space:nowrap;opacity:0;transition:opacity .32s ease;pointer-events:none}.hud__hint[data-show=true]{opacity:1}.sheet{position:absolute;inset:0;display:grid;place-items:center;padding:24px;background:#0d12208c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .28s ease}.sheet[data-open=true]{opacity:1}.sheet[hidden]{display:none}.sheet__card{width:100%;max-width:300px;max-height:78vh;overflow-y:auto;padding:26px 22px 22px;border-radius:22px;background:#f2f4f8fa;color:var(--navy-deep);box-shadow:0 20px 52px #0d122080;transform:translateY(14px) scale(.97);transition:transform .32s cubic-bezier(.22,1,.36,1)}.sheet[data-open=true] .sheet__card{transform:none}.sheet__title{margin:0 0 4px;font-size:20px;font-weight:700;letter-spacing:-.015em}.sheet__sub{margin:0 0 20px;font-size:12px;line-height:1.6;color:#1f2d4d99}.sheet__row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:14px;line-height:1.6;font-variant-numeric:tabular-nums}.sheet__row span:first-child{color:#1f2d4da6}.sheet__row--total{margin-top:12px;padding-top:14px;font-size:16px;font-weight:700;box-shadow:inset 0 1px #1f2d4d1a}.sheet__row--loss span:last-child{color:var(--warn)}.sheet__button{width:100%;margin-top:22px;padding:14px;border:0;border-radius:15px;background:var(--navy-mid);color:var(--paper);font-size:15px;font-weight:600;letter-spacing:.01em;cursor:pointer;box-shadow:0 8px 20px #1f2d4d47;transition:transform .14s cubic-bezier(.22,1,.36,1),box-shadow .2s ease}.sheet__button:active{transform:scale(.97);box-shadow:0 4px 12px #1f2d4d38}.shop-group{margin-top:6px;font-size:11px;font-weight:600;letter-spacing:.08em;color:#1f2d4d6b}.shop-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0}.shop-item__label{font-size:14px;line-height:1.4}.shop-item__note{display:block;font-size:11px;color:#1f2d4d80}.shop-item__buy{flex:none;padding:8px 14px;border:0;border-radius:999px;background:var(--navy-mid);color:var(--paper);font-size:12px;font-variant-numeric:tabular-nums;cursor:pointer;transition:transform .14s cubic-bezier(.22,1,.36,1)}.shop-item__buy:active:not(:disabled){transform:scale(.94)}.shop-item__buy:disabled{background:#1f2d4d1f;color:#1f2d4d73;cursor:default}.shop-item__buy--owned{background:#7aa86a2e;color:#3f6b46}.floaters{position:absolute;inset:0;pointer-events:none;overflow:hidden}.floater{position:absolute;transform:translate(-50%,-50%);font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--gold-soft);text-shadow:0 2px 8px rgba(13,18,32,.85);white-space:nowrap;animation:floater-rise 1.3s cubic-bezier(.22,1,.36,1) forwards}.floater--perfect{font-size:17px;color:#fff3cf}.floater--warn{font-size:12px;font-weight:600;color:#ffc2b2}@keyframes floater-rise{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}18%{opacity:1;transform:translate(-50%,-80%) scale(1.08)}to{opacity:0;transform:translate(-50%,-180%) scale(1)}}.goals{position:absolute;top:44px;left:50%;transform:translate(-50%);display:flex;gap:4px;max-width:96%;pointer-events:none}.goal{display:flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;background:#0d1220b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:9px;letter-spacing:0;white-space:nowrap;color:#f2f4f8c2;transition:background .3s ease,color .3s ease}.goal__value{font-variant-numeric:tabular-nums;font-weight:700;color:var(--gold-soft)}.goal[data-done=true]{background:#2e4a2ec7;color:#d2f0cdf2}.goal[data-done=true] .goal__value{color:#b9e8ac}.banner{position:absolute;inset:0;display:grid;place-content:center;gap:6px;text-align:center;pointer-events:none;opacity:0;transition:opacity .42s ease}.banner[data-show=true]{opacity:1}.banner[hidden]{display:none}.banner__title{font-size:34px;font-weight:800;letter-spacing:-.02em;color:var(--paper);text-shadow:0 4px 22px rgba(13,18,32,.95),0 0 40px rgba(13,18,32,.8);transform:translateY(10px);transition:transform .52s cubic-bezier(.22,1,.36,1)}.banner__sub{font-size:14px;letter-spacing:.06em;color:var(--gold-soft);text-shadow:0 2px 14px rgba(13,18,32,.95);transform:translateY(14px);transition:transform .62s cubic-bezier(.22,1,.36,1)}.banner[data-show=true] .banner__title,.banner[data-show=true] .banner__sub{transform:none}.badge[data-teach=true]{animation:badge-teach 1.1s ease-in-out infinite}@keyframes badge-teach{0%,to{box-shadow:0 6px 20px #0d122073,0 0 #ffe6a38c}50%{box-shadow:0 6px 26px #0d122080,0 0 0 10px #ffe6a300}}.teach-arrow{position:absolute;transform:translate(-50%,-50%);font-size:20px;pointer-events:none;filter:drop-shadow(0 2px 6px rgba(13,18,32,.8));animation:teach-bob 1s ease-in-out infinite}@keyframes teach-bob{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-50%,-78%)}}@media(prefers-reduced-motion:reduce){.badge[data-teach=true],.teach-arrow{animation:none}}.bottombar{position:absolute;left:0;right:0;bottom:0;padding:8px 10px calc(10px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;background:linear-gradient(to top,rgba(13,18,32,.94),rgba(13,18,32,.72) 70%,transparent);pointer-events:auto}.tray{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:12px;background:#1f2d4d8c}.tray__label{flex:none;font-size:9px;letter-spacing:.04em;color:#f2f4f88c}.tray__list{flex:1;display:flex;gap:3px;min-height:26px;align-items:center;overflow:hidden}.tray__list[data-empty=true]:before{content:"비어 있음";font-size:10px;color:#f2f4f84d}.tray__item{width:26px;height:26px;flex:none;background-size:contain;background-repeat:no-repeat;background-position:center;image-rendering:pixelated;animation:tray-pop .26s cubic-bezier(.22,1,.36,1)}.tray__item[data-perfect=true]{filter:drop-shadow(0 0 4px rgba(255,230,163,.85))}@keyframes tray-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.tray__count{flex:none;font-size:10px;font-variant-numeric:tabular-nums;color:var(--gold-soft)}.actions{display:flex;gap:8px}.action{flex:1;position:relative;padding:0;border:0;border-radius:14px;background:#1f2d4de6;color:var(--paper);font-family:inherit;text-align:left;cursor:pointer;overflow:hidden;box-shadow:0 6px 18px #0d122073;transition:transform .15s cubic-bezier(.22,1,.36,1),background .24s ease}.action[hidden]{display:none}.action__fill{position:absolute;inset:0 auto 0 0;width:0;background:#e0a94f4d;transition:width .18s ease}.action__body{position:relative;display:flex;align-items:center;gap:8px;padding:10px 12px}.action__icon{font-size:20px;line-height:1}.action__text{display:flex;flex-direction:column;gap:2px;min-width:0}.action__name{font-size:12px;font-weight:700;white-space:nowrap}.action__status{font-size:10px;line-height:1.3;color:#f2f4f8b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action[data-hit=true]{transform:scale(.96)}.action[data-urgent=true],.action[data-teach=true]{animation:action-breathe 1.3s ease-in-out infinite}@keyframes action-breathe{0%,to{box-shadow:0 6px 18px #0d122073,0 0 #e0a94f00}50%{box-shadow:0 6px 22px #0d122080,0 0 0 8px #e0a94f33}}.action[data-tone=ready]{background:#4a3a1aeb}.action[data-tone=ready] .action__status{color:var(--gold-soft)}.action[data-tone=danger]{background:#4a1c15eb}.action[data-tone=danger] .action__status{color:#ffb4a2}.action[data-tone=empty] .action__status,.action[data-tone=full] .action__status{color:#f2f4f86b}@media(prefers-reduced-motion:reduce){.action[data-urgent=true],.action[data-teach=true],.tray__item{animation:none}}.nav{display:flex;gap:8px}.navbtn{flex:1;display:flex;flex-direction:column;gap:2px;padding:9px 12px;border:0;border-radius:13px;background:#3d5280e6;color:var(--paper);font-family:inherit;font-size:13px;font-weight:700;text-align:left;cursor:pointer;box-shadow:0 5px 16px #0d122066;transition:transform .15s cubic-bezier(.22,1,.36,1),background .24s ease}.navbtn[hidden]{display:none}.navbtn:active{transform:scale(.97)}.navbtn__note{font-size:10px;font-weight:500;color:#f2f4f8b8}.navbtn[data-alert=true]{background:#7a581af0;animation:nav-alert 1.5s ease-in-out infinite}.navbtn[data-alert=true] .navbtn__note{color:var(--gold-soft)}@keyframes nav-alert{0%,to{box-shadow:0 5px 16px #0d122066,0 0 #e0a94f00}50%{box-shadow:0 5px 20px #0d122073,0 0 0 7px #e0a94f2e}}.kneadview{position:absolute;inset:0;display:flex;flex-direction:column;background:radial-gradient(120% 70% at 50% 44%,rgba(61,82,128,.5),transparent 65%),#0d1220f5;opacity:0;transition:opacity .26s ease;z-index:20}.kneadview[data-show=true]{opacity:1}.kneadview[hidden]{display:none}.kneadview__head{display:flex;align-items:center;justify-content:space-between;padding:max(14px,env(safe-area-inset-top)) 16px 0}.kneadview__title{font-size:15px;font-weight:700;color:var(--paper);letter-spacing:.01em}.kneadview__exit{padding:7px 13px;border:0;border-radius:999px;background:#f2f4f81f;color:var(--paper);font-family:inherit;font-size:12px;cursor:pointer}.kneadview__exit:active{transform:scale(.95)}.kneadview__stage{flex:1;position:relative;display:grid;place-items:center;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.kneadview__ring{position:absolute;width:208px;height:208px;border-radius:50%;background:conic-gradient(var(--gold) calc(var(--p, 0) * 1%),rgba(242,244,248,.09) 0);mask:radial-gradient(circle,transparent 92px,#000 94px);-webkit-mask:radial-gradient(circle,transparent 92px,#000 94px);transition:background .16s linear}.kneadview__dough{width:150px;height:150px;background-size:contain;background-repeat:no-repeat;background-position:center;image-rendering:pixelated;filter:drop-shadow(0 10px 22px rgba(0,0,0,.5));transition:transform .17s cubic-bezier(.22,1,.36,1)}.kneadview__dough[data-shaped=true]{filter:drop-shadow(0 10px 22px rgba(0,0,0,.5)) drop-shadow(0 0 14px rgba(255,230,163,.55))}.kneadview__dough[data-punch=true]{transform:scale(1.16,.82)!important;transition-duration:60ms}.kneadview__foot{display:flex;align-items:center;justify-content:space-between;padding:0 20px calc(28px + env(safe-area-inset-bottom))}.kneadview__count{font-size:22px;font-weight:800;color:var(--gold-soft);letter-spacing:-.01em}.kneadview__stock{font-size:12px;color:#f2f4f899}.kneadview__stock[data-full=true]{color:#ffb4a2}@media(prefers-reduced-motion:reduce){.navbtn[data-alert=true]{animation:none}}
