*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100dvh;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;background:#12173d;font-family:"Baloo 2",Segoe UI,system-ui,sans-serif}.app canvas{touch-action:none}.app{width:100%;height:100%;position:relative}.app canvas{display:block}.hud{pointer-events:none;color:#3a2c1a;position:absolute;inset:0}.hud>*{pointer-events:auto}.topbar{flex-wrap:wrap;gap:8px;display:flex;position:absolute;top:14px;left:14px}.chip{background:#fffcf0eb;border:2px solid #7a523059;border-radius:999px;padding:5px 14px;font-size:16px;font-weight:700;box-shadow:0 2px 6px #1e14052e}.chip.small{padding:3px 10px;font-size:14px}.btn{cursor:pointer;font-family:inherit;transition:transform .1s,filter .1s}.btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.hotbar{gap:8px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.slot{cursor:pointer;background:#fffcf0e6;border:3px solid #7a523066;border-radius:14px;width:58px;height:58px;font-family:inherit;transition:transform .12s,border-color .12s;position:relative;box-shadow:0 3px 8px #1e140538}.slot:hover{transform:translateY(-3px)}.slot.selected{background:#fff6d8;border-color:#f2b428;transform:translateY(-5px)scale(1.06)}.slot-icon{font-size:26px;line-height:52px}.slot-key{opacity:.55;font-size:11px;font-weight:800;position:absolute;top:2px;left:6px}.slot-count{color:#4a3312;background:#f2b428;border-radius:999px;padding:0 6px;font-size:12px;font-weight:800;position:absolute;bottom:2px;right:5px}.shop-slot{margin-left:14px}.tool-label{color:#fff6d8;background:#3a2c1abf;border-radius:999px;padding:3px 14px;font-size:14px;font-weight:700;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.inventory{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:40vw;display:flex;position:absolute;top:14px;right:14px}.toast{color:#fff6d8;white-space:nowrap;background:#3a2c1ae0;border-radius:999px;padding:9px 22px;font-size:17px;font-weight:700;animation:.25s toast-pop;position:absolute;top:72px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #1e14054d}@keyframes toast-pop{0%{opacity:0;transform:translate(-50%)translateY(-8px)scale(.9)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.card{background:#fffbef;border:3px solid #7a523066;border-radius:18px;padding:18px;box-shadow:0 10px 30px #1e140559}.help{z-index:5;max-width:380px;font-size:14.5px;position:absolute;top:64px;left:14px}.help h3{margin-bottom:8px}.help ul{gap:5px;margin-bottom:12px;padding-left:18px;display:grid}.btn.danger{color:#fff;background:#e05548;border:none;border-radius:10px;padding:7px 14px;font-size:14px;font-weight:700}.modal-backdrop{z-index:10;background:#140e0573;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.shop{width:min(560px,92vw);max-height:86vh;overflow-y:auto}.shop-header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.shop-header h2{flex:1;font-size:22px}.btn.close{background:#7a523026;border:none;border-radius:10px;width:34px;height:34px;font-size:16px;font-weight:800}.shop h4{margin:10px 0 8px;font-size:16px}.shop-grid{gap:8px;display:grid}.shop-item{background:#7a523014;border-radius:12px;align-items:center;gap:12px;padding:8px 12px;display:flex}.shop-item-icon{font-size:30px}.shop-item-info{flex:1;font-size:13px;line-height:1.35;display:grid}.shop-item-info b{font-size:15px}.owned{opacity:.65}.btn.buy{color:#fff;white-space:nowrap;background:#6fae4e;border:none;border-radius:10px;padding:8px 12px;font-size:14px;font-weight:800}.btn.buy:disabled{cursor:not-allowed;background:#b8b2a4}.sell-list{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.btn.sell{color:#4a3312;background:#f2b428;border:none;border-radius:12px;width:100%;padding:11px;font-size:16px;font-weight:800}.muted{opacity:.6;font-size:14px}.bubble{color:#3a2c1a;white-space:nowrap;background:#fffcf0f2;border:2px solid #7a523066;border-radius:999px;padding:4px 12px;font-family:"Baloo 2",system-ui,sans-serif;font-size:15px;font-weight:800;animation:1.6s ease-in-out infinite bubble-bob;box-shadow:0 3px 8px #1e140540}@keyframes bubble-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.joystick{bottom:max(24px, env(safe-area-inset-bottom,0px) + 16px);left:max(24px, env(safe-area-inset-left,0px) + 16px);touch-action:none;z-index:6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#fffcf038;border:3px solid #fffcf073;border-radius:50%;justify-content:center;align-items:center;width:128px;height:128px;display:flex;position:absolute}.joystick-knob{pointer-events:none;background:#fffcf0d9;border-radius:50%;width:56px;height:56px;box-shadow:0 3px 10px #1e140559}@media (width<=700px),(height<=500px){.topbar{top:max(8px, env(safe-area-inset-top,0px));gap:5px;left:8px}.chip{padding:3px 10px;font-size:13px}.hotbar{bottom:max(14px, env(safe-area-inset-bottom,0px) + 8px);left:auto;right:max(12px, env(safe-area-inset-right,0px) + 8px);flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:62vw;transform:none}.slot{border-width:2px;border-radius:11px;width:46px;height:46px}.slot-icon{font-size:20px;line-height:42px}.shop-slot{margin-left:6px}.tool-label{font-size:12px;top:44px;bottom:auto}.inventory{max-width:50vw;top:auto;bottom:118px;right:8px}.toast{white-space:normal;text-align:center;max-width:92vw;font-size:14px;top:78px}.help{max-width:none;max-height:60vh;font-size:13px;top:48px;left:8px;right:8px;overflow-y:auto}}.visiting-banner{color:#ffe9c4;pointer-events:auto;z-index:20;white-space:nowrap;background:#281808d1;border:1px solid #ffdc9659;border-radius:12px;align-items:center;gap:10px;padding:8px 14px;font-size:14px;display:flex;position:absolute;top:46px;left:50%;transform:translate(-50%)}.neighbor-list{flex-direction:column;gap:6px;max-height:40vh;display:flex;overflow-y:auto}.neighbor-row{background:#ffffff8c;border-radius:10px;align-items:center;gap:10px;padding:6px 10px;display:flex}.neighbor-rank{text-align:center;min-width:28px}.neighbor-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.name-edit{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 10px;display:flex}.name-edit input{min-width:120px;font:inherit;border:1px solid #0003;border-radius:10px;flex:1;padding:7px 10px}.welcome{text-align:center;width:min(420px,92vw)}.welcome h2{margin:0 0 6px}.welcome input{width:100%;font:inherit;text-align:center;border:1px solid #0003;border-radius:12px;margin:12px 0 10px;padding:10px 12px}.welcome-suggestions{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:14px;display:flex}.welcome-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.welcome-actions .btn.buy{border-radius:12px;width:100%;padding:11px 16px;font-size:15px}.btn.ghost{color:#4e3820b3;text-underline-offset:3px;background:0 0;border:none;padding:4px 8px;font-size:13px;font-weight:600;text-decoration:underline}.btn.ghost:hover{color:#4e3820}.market-form{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:10px;display:flex}.market-form label{opacity:.85;gap:2px;font-size:12px;font-weight:700;display:grid}.market-form select,.market-form input{font:inherit;background:#fff;border:1px solid #0003;border-radius:10px;padding:7px 10px;font-size:14px}.market-form input{width:84px}.market-form select{max-width:210px}
