html,body{overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;background:#1d2a33;height:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#app{width:100%;max-width:56.25dvh;height:100dvh;margin:0 auto;position:relative;overflow:hidden}#login,#loading{z-index:20;background:linear-gradient(#bfe3f0 0%,#d9efe0 60%,#93c96e 100%);justify-content:center;align-items:center;padding:0 20px;display:flex;position:fixed;inset:0}#login[hidden],#loading[hidden]{display:none}#loading{color:#5a4632;font-size:15px;font-weight:700}.login-card{text-align:center;color:#5a4632;background:#fffaf0f2;border-radius:24px;flex-direction:column;gap:10px;width:100%;max-width:320px;padding:28px 22px 22px;display:flex;box-shadow:0 8px 30px #3c2d1e26}.login-leaf{font-size:34px}.login-card h1{letter-spacing:.08em;margin:0;font-size:28px}.login-sub{color:#9a8570;margin:0 0 8px;font-size:13px}.login-card input{color:#5a4632;height:46px;font:inherit;-webkit-user-select:text;user-select:text;touch-action:manipulation;background:#fff;border:2px solid #ecdfc9;border-radius:14px;outline:none;padding:0 14px;font-size:16px}.login-card input:focus{border-color:#7cc46a}.login-card button{color:#fff;height:48px;font:inherit;cursor:pointer;touch-action:manipulation;background:#7cc46a;border:0;border-radius:14px;margin-top:4px;font-size:16px;font-weight:800}.login-card button:disabled{opacity:.6}.login-error{color:#d0574a;min-height:18px;font-size:13px}#game{width:100%;height:100%;display:block}#ui{pointer-events:none;position:absolute;inset:0}.hud-top{top:calc(env(safe-area-inset-top,0px) + 12px);justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;left:12px;right:12px}.stamina,.chip{color:#5a4632;box-sizing:border-box;background:#fffaf0e0;border-radius:999px;align-items:center;gap:6px;height:34px;padding:0 10px;display:flex;box-shadow:0 2px 8px #00000014}.stamina{flex:auto;min-width:0;max-width:150px;font-size:15px}.stamina .bar{background:#5a463226;border-radius:999px;flex:1;height:10px;overflow:hidden}.stamina .fill{background:#7cc46a;border-radius:999px;height:100%;transition:width .25s,background .4s}.stamina[data-level=mid] .fill{background:#f0c24f}.stamina[data-level=low] .fill{background:#e87661}.stamina .rest{font-size:13px;display:none}.stamina.resting .rest{animation:1.6s ease-in-out infinite doze;display:inline}@keyframes doze{50%{opacity:.35}}.inv{gap:6px;display:flex}#clock{top:calc(env(safe-area-inset-top,0px) + 52px);color:#5a4632;font-variant-numeric:tabular-nums;background:#fffaf0cc;border-radius:999px;align-items:center;height:26px;padding:0 10px;font-size:13px;font-weight:700;display:flex;position:absolute;left:12px;box-shadow:0 2px 8px #00000014}#ui.building #clock,#ui.building #minimap{display:none}#minimap{top:calc(env(safe-area-inset-top,0px) + 86px);pointer-events:auto;cursor:pointer;background:#7cc6dc;border:3px solid #fffaf0f2;border-radius:50%;width:92px;height:92px;padding:0;position:absolute;left:12px;overflow:hidden;box-shadow:0 3px 10px #0000002e}#minimap canvas{width:100%;height:100%;display:block}#map-full{z-index:8;padding:calc(env(safe-area-inset-top,0px) + 14px) 14px calc(env(safe-area-inset-bottom,0px) + 18px);pointer-events:auto;background:#1e2c38eb;flex-direction:column;gap:10px;display:flex;position:absolute;inset:0}#map-full[hidden]{display:none}#map-full .map-head{color:#fffaf0;justify-content:space-between;align-items:center;font-size:18px;display:flex}#map-full .map-close{color:#5a4632;background:#fffaf0f2;border:none;border-radius:50%;width:38px;height:38px;font-size:18px;font-weight:800}#map-full canvas{flex:1;width:100%;min-height:0}#map-full .map-legend{color:#fffaf0;flex-wrap:wrap;justify-content:center;gap:14px;font-size:13px;font-weight:700;display:flex}#map-full .map-legend span{align-items:center;gap:6px;display:flex}#map-full .map-legend i{border:2px solid #fff;border-radius:50%;width:12px;height:12px}#map-full .map-legend i.me{background:#e2473a}#map-full .map-legend i.plot{background:#f4cf6a;border-radius:3px}#map-full .map-legend i.friend{background:#6fb0e0}#map-full .map-legend i.mine{background:#2a211b}#minimap.cave{background:#2a211b;border-color:#e8c8a0}#sleep.travel{color:#f3e3c8;background:#1c1612f7;animation-duration:.4s}#sleep{z-index:7;color:#e8ecff;pointer-events:auto;background:#121830f0;justify-content:center;align-items:center;font-size:20px;font-weight:700;transition:background 1s;animation:.8s ease-out sleep-in;display:flex;position:absolute;inset:0}#sleep[hidden]{display:none}#sleep.wake{color:#5a4632;background:#ffecc8d9}@keyframes sleep-in{0%{opacity:0}}.chip{font:inherit;border:0;gap:4px;padding:0 9px;font-size:14px}.chip-icon{font-size:16px;line-height:1;display:flex}.icon{width:20px;height:20px;display:block}.popup .icon{vertical-align:middle;filter:drop-shadow(0 1px 2px #3c2d1e99);display:inline-block}.chip b{text-align:right;min-width:12px}.chip.eat{pointer-events:auto;cursor:pointer;background:#fff2e4;outline:2px solid #e2475b59}.chip.eat:active{transform:scale(.94)}#action{right:22px;bottom:calc(env(safe-area-inset-bottom,0px) + 36px);pointer-events:auto;width:82px;height:82px;font:inherit;color:#5a4632;cursor:pointer;background:#fffaf0f2;border:0;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:1px;animation:.18s ease-out pop-in;display:flex;position:absolute;box-shadow:0 4px 14px #0000002e}#action[hidden]{display:none}#action:active{transform:scale(.92)}#action.tired{opacity:.55}.action-icon{font-size:30px;line-height:1}.action-label{font-size:12px;font-weight:700}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}}#bag{left:20px;bottom:calc(env(safe-area-inset-bottom,0px) + 40px);pointer-events:auto;cursor:pointer;background:#fffaf0eb;border:0;border-radius:50%;width:56px;height:56px;font-size:26px;position:absolute;box-shadow:0 3px 10px #00000026}#bag:active{transform:scale(.92)}#sheet{pointer-events:auto;z-index:5;background:#281e1447;align-items:flex-end;display:flex;position:absolute;inset:0}#sheet[hidden],.tabs[hidden],.progress[hidden]{display:none}.sheet-card{box-sizing:border-box;width:100%;max-height:74%;padding:14px 14px calc(env(safe-area-inset-bottom,0px) + 14px);color:#5a4632;background:#fffaf0;border-radius:22px 22px 0 0;flex-direction:column;animation:.22s ease-out slide-up;display:flex}@keyframes slide-up{0%{opacity:0;transform:translateY(40%)}}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-title{margin:0 0 0 4px;font-size:18px}.sheet-close{color:#5a4632;cursor:pointer;background:#f0e4d0;border:0;border-radius:50%;width:36px;height:36px;font-size:16px}.tabs{gap:6px;margin:12px 0 10px;display:flex}.tabs button{color:#7a6450;height:36px;font:inherit;cursor:pointer;background:#f0e4d0;border:0;border-radius:999px;flex:1;font-size:13px;font-weight:700}.tabs button.on{color:#fffaf0;background:#5a4632}.sheet-body{touch-action:pan-y;-webkit-overflow-scrolling:touch;flex:1;min-height:120px;padding-top:4px;overflow-y:auto}.big-icon{flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:30px;line-height:1;display:flex}.big-icon .icon{width:38px;height:38px}.recipe{background:#fff;border-radius:16px;align-items:center;gap:10px;margin-bottom:8px;padding:10px;display:flex;box-shadow:0 1px 4px #5a46321a}.recipe.locked .big-icon,.recipe.locked .recipe-name{opacity:.5}.recipe-info{flex:1;min-width:0}.recipe-name{font-size:14px;font-weight:700}.recipe-name small{color:#9a8570;margin-left:4px;font-size:11px;font-weight:400}.recipe-cost{color:#7a6450;flex-wrap:wrap;gap:8px;margin-top:4px;font-size:12px;display:flex}.cost{align-items:center;gap:2px;display:flex}.cost .icon{width:16px;height:16px}.cost.short{color:#d0574a;font-weight:700}.cost.gain{color:#c98a1e;font-weight:700}.sheet-note{color:#9a8570;margin:4px 4px 12px;font-size:13px}.recipe-buttons{gap:6px;display:flex}.recipe-buttons button{color:#fff;min-width:44px;height:40px;font:inherit;cursor:pointer;background:#7cc46a;border:0;border-radius:12px;font-weight:800}.recipe-buttons button:disabled{color:#a8998a;cursor:default;background:#e3d9ca}.recipe-buttons button:not(:disabled):active{transform:scale(.93)}.progress{background:#f0e4d0;border-radius:999px;flex:none;height:30px;margin-top:8px;position:relative;overflow:hidden}.progress-fill{background:#f0c24f;width:0;height:100%}.progress-text{justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;position:absolute;inset:0}.sheet-body h3{color:#9a8570;margin:6px 4px 8px;font-size:13px}.bag-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px;display:grid}.bag-tile{color:#7a6450;text-align:center;background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font-size:11px;display:flex;box-shadow:0 1px 4px #5a46321a}.bag-tile b{color:#5a4632;font-size:15px}.bag-tile.food{font:inherit;cursor:pointer;border:0;outline:2px solid #e2475b40;font-size:11px}.bag-tile.food:active{transform:scale(.94)}.bag-tile small{color:#c98a1e;font-size:10px;font-weight:700}#action.urgent{background:#ffd84d;animation:.35s ease-in-out infinite alternate urgent}@keyframes urgent{to{transform:scale(1.12)}}.logout,.remove-garden{color:#9a8570;font:inherit;cursor:pointer;background:#f0e4d0;border:0;border-radius:999px;margin:14px auto 4px;padding:8px 16px;font-size:12px;display:block}.empty{text-align:center;color:#9a8570;margin:30px 10px}#build[hidden]{display:none}.build-top{top:calc(env(safe-area-inset-top,0px) + 56px);justify-content:space-between;align-items:center;display:flex;position:absolute;left:12px;right:12px}.build-title{color:#fffaf0;background:#5a4632d9;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700}.build-done{color:#fff;height:34px;font:inherit;pointer-events:auto;cursor:pointer;background:#7cc46a;border:0;border-radius:999px;padding:0 16px;font-size:13px;font-weight:800;box-shadow:0 2px 8px #0000001f}.build-msg{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 112px);color:#fffaf0;text-align:center;background:#3c2d1e99;border-radius:12px;max-width:60%;padding:6px 12px;font-size:12px;position:absolute;transform:translate(-50%)}.build-msg:empty{display:none}.build-side{right:14px;bottom:calc(env(safe-area-inset-bottom,0px) + 108px);flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute}.build-side button{color:#5a4632;font:inherit;pointer-events:auto;cursor:pointer;background:#fffaf0f2;border:0;border-radius:50%;font-weight:800;box-shadow:0 3px 10px #00000026}.build-level,.build-rotate{width:50px;height:50px;font-size:14px}.build-rotate{font-size:24px}.build-rotate:disabled{opacity:.4}.build-place{width:76px;height:76px;font-size:34px;color:#fff!important;background:#7cc46a!important}.build-place.remove{background:#e87661!important}.build-place.off{opacity:.45}.build-side button:active{transform:scale(.92)}.build-tray{padding:10px 12px calc(env(safe-area-inset-bottom,0px) + 10px);pointer-events:auto;touch-action:pan-x;scrollbar-width:none;background:#fffaf0f0;border-radius:18px 18px 0 0;gap:8px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-x:auto}.build-tray::-webkit-scrollbar{display:none}.tray-item{color:#7a6450;width:64px;font:inherit;cursor:pointer;background:#fff;border:2px solid #0000;border-radius:14px;flex-direction:column;flex:none;align-items:center;gap:1px;padding:6px 2px;font-size:10px;line-height:1.15;display:flex}.tray-item .icon{width:30px;height:30px}.tray-emoji{font-size:24px;line-height:30px}.tray-item b{color:#5a4632;font-size:12px}.tray-item span{white-space:nowrap;text-overflow:ellipsis;max-width:60px;overflow:hidden}.tray-item.on{background:#f1fbe9;border-color:#7cc46a}.tray-item.remove.on{background:#fff0ec;border-color:#e87661}.tray-item:disabled{opacity:.4;cursor:default}#ui.building #action,#ui.building #bag,#ui.building #hint{display:none}#toast{top:calc(env(safe-area-inset-top,0px) + 60px);color:#fffaf0;text-align:center;opacity:0;z-index:6;background:#3c2d1ebf;border-radius:14px;max-width:85%;padding:8px 14px;font-size:13px;transition:opacity .3s,transform .3s;position:absolute;left:50%;transform:translate(-50%,-6px)}#toast.show{opacity:1;transform:translate(-50%)}.popup{color:#fffaf0;text-shadow:0 1px 3px #3c2d1eb3;white-space:nowrap;font-size:16px;font-weight:800;animation:1s ease-out forwards float-up;position:absolute;transform:translate(-50%,-100%)}@keyframes float-up{to{opacity:0;transform:translate(-50%,-260%)}}#hint{bottom:calc(env(safe-area-inset-bottom,0px) + 40px);color:#fffaf0;white-space:nowrap;background:#3c2d1e73;border-radius:999px;padding:8px 16px;font-size:13px;transition:opacity .6s;position:absolute;left:50%;transform:translate(-50%)}#hint.hide{opacity:0}#joystick{opacity:0;background:#fffaf038;border:2px solid #fffaf099;border-radius:50%;width:110px;height:110px;margin:-55px 0 0 -55px;transition:opacity .15s;position:absolute}#joystick.active{opacity:1}#joystick .knob{background:#fffaf0eb;border-radius:50%;width:48px;height:48px;margin:-24px 0 0 -24px;position:absolute;top:50%;left:50%;box-shadow:0 2px 6px #00000026}
