@font-face{font-family:Nunito;src:url(../assets/fonts/Nunito.ttf) format("truetype");font-weight:200 900}@font-face{font-family:PixelNA;src:url(../assets/fonts/NormalFont.ttf) format("truetype")}:root{--ui-scale: 1;--wood: #6b4a2e;--wood-dark: #3f2a18;--wood-light: #a5764c;--cream: #f4e4c8;--cream-dark: #d9c39c;--orange: #f08a3e;--orange-dark: #b85a20;--green: #6fb54a;--red: #d94a3a;--blue: #4aa3d9;--ink: #2a1c12;--shadow: rgba(0, 0, 0, .45);--font: "Nunito", "Segoe UI", system-ui, sans-serif;--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#1c1a26;font-family:var(--font);color:var(--cream);user-select:none;-webkit-user-select:none;overscroll-behavior:none;touch-action:none}#game{position:fixed;inset:0;z-index:0}#game canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges}#ui{position:fixed;inset:0;z-index:10;pointer-events:none;font-size:calc(15px * var(--ui-scale))}#ui>*{pointer-events:auto}#ui>.fade,#ui>.toasts,#ui>.xp-float,#ui>.fishing-hint{pointer-events:none!important}.px{image-rendering:pixelated;image-rendering:crisp-edges}.panel{background:var(--wood);border:4px solid var(--wood-dark);border-radius:10px;box-shadow:0 6px 0 var(--wood-dark),0 10px 24px var(--shadow),inset 0 2px #ffffff1f;color:var(--cream)}.panel-inner{background:var(--cream);color:var(--ink);border-radius:6px;border:2px solid var(--cream-dark)}.hidden{display:none!important}.btn{font-family:var(--font);font-weight:800;font-size:1em;color:#fff;background:linear-gradient(#ff9d52,var(--orange));border:3px solid var(--orange-dark);border-radius:8px;box-shadow:0 4px 0 var(--orange-dark),inset 0 2px #ffffff59;padding:.5em 1.1em;cursor:pointer;text-shadow:0 2px 0 rgba(0,0,0,.3);min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:.4em;transition:transform .05s;touch-action:manipulation;white-space:nowrap}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--orange-dark)}.btn.green{background:linear-gradient(#8fd66a,var(--green));border-color:#3e7a25;box-shadow:0 4px #3e7a25,inset 0 2px #ffffff59}.btn.green:active{box-shadow:0 1px #3e7a25}.btn.red{background:linear-gradient(#f07a6a,var(--red));border-color:#8a2a20;box-shadow:0 4px #8a2a20,inset 0 2px #ffffff59}.btn.red:active{box-shadow:0 1px #8a2a20}.btn.blue{background:linear-gradient(#7cc4ee,var(--blue));border-color:#23628a;box-shadow:0 4px #23628a,inset 0 2px #ffffff59}.btn.wood{background:linear-gradient(#b98a5c,var(--wood-light));border-color:var(--wood-dark);box-shadow:0 4px 0 var(--wood-dark),inset 0 2px #ffffff40}.btn.wood:active{box-shadow:0 1px 0 var(--wood-dark)}.btn:disabled,.btn.disabled{filter:grayscale(.8) brightness(.7);cursor:not-allowed;pointer-events:none}.btn.small{font-size:.85em;padding:.3em .7em;min-height:36px}.btn.icon-btn{padding:.3em;width:48px;height:48px}.btn img,.btn .icon{width:24px;height:24px}#hud{position:absolute;inset:0;pointer-events:none}#hud>*{pointer-events:auto}.hud-top-left{position:absolute;top:calc(8px + var(--safe-t));left:calc(8px + var(--safe-l));display:flex;flex-direction:column;gap:6px}.hud-clock{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 8px;font-weight:800}.hud-clock .weather-icon{width:28px;height:28px}.hud-clock .date{font-size:.8em;opacity:.9;line-height:1.1}.hud-clock .time{font-size:1.15em;line-height:1.1}.hud-money{display:flex;align-items:center;gap:8px;padding:5px 12px 5px 8px;font-weight:900;font-size:1.1em;color:#ffe08a;text-shadow:0 2px 0 rgba(0,0,0,.4)}.hud-money img{width:22px;height:22px}.hud-top-right{position:absolute;top:calc(8px + var(--safe-t));right:calc(8px + var(--safe-r));display:flex;gap:6px}.hud-top-right .btn{width:48px;height:48px;padding:0;position:relative}.hud-top-right .btn .badge{position:absolute;top:-6px;right:-6px;background:var(--red);color:#fff;font-size:.7em;border-radius:10px;padding:1px 6px;border:2px solid #fff}.hud-bottom{position:absolute;bottom:calc(8px + var(--safe-b));left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}.hotbar{display:flex;gap:4px;padding:5px}.slot{width:48px;height:48px;background:#3b2816;border:2px solid #22160c;border-radius:6px;position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:inset 0 2px 4px #00000080}.slot.selected{border-color:#ffd36a;box-shadow:0 0 0 2px #ffd36a,inset 0 2px 4px #00000080}.slot .icon{width:32px;height:32px}.slot .qty{position:absolute;right:3px;bottom:1px;font-size:.75em;font-weight:900;color:#fff;text-shadow:0 1px 0 #000,1px 0 0 #000,-1px 0 0 #000,0 -1px 0 #000}.slot .key{position:absolute;left:3px;top:1px;font-size:.6em;opacity:.6;color:#fff}.slot .q1:after,.slot .q2:after{content:"";position:absolute;left:3px;bottom:3px;width:8px;height:8px;border-radius:50%;border:1px solid #000}.slot .q1:after{background:#cfd8e6}.slot .q2:after{background:#ffd23a}.slot.drag-over{border-color:#8fd66a}.icon-sprite{display:inline-block;width:32px;height:32px;background-image:url(../assets/items/items.png);background-repeat:no-repeat;image-rendering:pixelated;background-size:calc(var(--atlas-cols) * 32px) auto}.energy-wrap{position:absolute;right:calc(12px + var(--safe-r));bottom:calc(8px + var(--safe-b));width:22px;height:130px;background:#22160c;border:3px solid var(--wood-dark);border-radius:8px;overflow:hidden}.energy-bar{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(#b6f26f,#5aa63a);transition:height .2s}.energy-wrap.low .energy-bar{background:linear-gradient(#ff9a6a,#d94a3a)}.energy-label{position:absolute;right:calc(40px + var(--safe-r));bottom:calc(12px + var(--safe-b));font-size:.75em;font-weight:800;opacity:.85;text-shadow:0 1px 2px #000;pointer-events:none}.joystick{position:absolute;width:130px;height:130px;border-radius:50%;background:#00000040;border:3px solid rgba(255,255,255,.25);display:none;pointer-events:none}.joystick .knob{position:absolute;width:56px;height:56px;border-radius:50%;background:#fff9;border:3px solid rgba(255,255,255,.8);left:37px;top:37px}.action-btn{position:absolute;right:calc(60px + var(--safe-r));bottom:calc(24px + var(--safe-b));width:76px;height:76px;border-radius:50%;padding:0;font-size:.8em;flex-direction:column;gap:2px}.action-btn img{width:32px;height:32px}.action-btn2{right:calc(150px + var(--safe-r));bottom:calc(10px + var(--safe-b));width:60px;height:60px}body.pc .action-btn,body.pc .action-btn2{display:none}body.touch .hud-bottom{left:calc(12px + var(--safe-l));transform:none;align-items:flex-start}body.touch .action-btn{right:calc(20px + var(--safe-r));bottom:calc(14px + var(--safe-b))}body.touch .action-btn2{right:calc(106px + var(--safe-r));bottom:calc(14px + var(--safe-b))}body.touch .energy-wrap{right:calc(30px + var(--safe-r));bottom:calc(104px + var(--safe-b));height:90px}body.touch .energy-label{right:calc(58px + var(--safe-r));bottom:calc(108px + var(--safe-b))}body.touch .interact-hint{bottom:calc(70px + var(--safe-b));left:40%}body.touch .toasts{top:calc(64px + var(--safe-t));max-width:260px}.tutorial{position:absolute;top:calc(8px + var(--safe-t));left:50%;transform:translate(-50%);width:min(460px,calc(100% - 380px));padding:6px 10px;z-index:12}.tutorial .tut-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 8px;margin-bottom:4px}.tutorial .tut-head .btn{min-height:30px;padding:2px 10px;font-size:.8em}.tutorial .tut-text{font-size:.9em;font-weight:700;line-height:1.25}@media (max-width: 760px){.tutorial{top:auto;bottom:calc(70px + var(--safe-b));width:min(420px,calc(100% - 24px))}}.minimap{position:absolute;top:calc(64px + var(--safe-t));right:calc(8px + var(--safe-r));background:var(--wood-dark);border:3px solid var(--wood);border-radius:8px;padding:3px;cursor:pointer;line-height:0;box-shadow:0 4px 10px var(--shadow);opacity:.92}.minimap canvas{image-rendering:pixelated;border-radius:4px}.minimap canvas+canvas{position:absolute;left:3px;top:3px}@media (max-height: 420px){.minimap{transform:scale(.75);transform-origin:top right;top:calc(56px + var(--safe-t))}}.interact-hint{position:absolute;left:50%;bottom:calc(80px + var(--safe-b));transform:translate(-50%);padding:6px 14px;border-radius:20px;background:#0009;color:#fff;font-weight:800;font-size:.9em;pointer-events:none;display:none;white-space:nowrap}.interact-hint.show{display:block}.toasts{position:absolute;top:calc(70px + var(--safe-t));right:calc(10px + var(--safe-r));display:flex;flex-direction:column;gap:6px;pointer-events:none;max-width:300px}.toast{display:flex;align-items:center;gap:8px;padding:8px 12px;font-weight:800;font-size:.9em;animation:toastIn .25s ease-out}.toast.out{animation:toastOut .3s ease-in forwards}.toast .icon-sprite{width:32px;height:32px}@keyframes toastIn{0%{transform:translate(40px);opacity:0}to{transform:none;opacity:1}}@keyframes toastOut{to{transform:translate(40px);opacity:0}}.dialog{position:absolute;left:50%;bottom:calc(14px + var(--safe-b));transform:translate(-50%);width:min(720px,calc(100% - 24px));display:flex;gap:10px;padding:10px;align-items:stretch;z-index:20}.dialog .face{width:76px;height:76px;background:#1a1a22;border:3px solid var(--wood-dark);border-radius:6px;flex:none;display:flex;align-items:center;justify-content:center}.dialog .face img{width:76px;height:76px}.dialog .body{flex:1;padding:8px 12px;min-height:76px;display:flex;flex-direction:column}.dialog .name{font-weight:900;color:var(--orange-dark);font-size:.85em}.dialog .text{font-size:1em;line-height:1.3;flex:1}.dialog .choices{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;justify-content:flex-end}.dialog .next{align-self:flex-end;font-size:.8em;opacity:.6;animation:blink 1s infinite}@keyframes blink{50%{opacity:.2}}.modal-bg{position:absolute;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:30}.window{width:min(900px,calc(100% - 20px));max-height:calc(100% - 20px);display:flex;flex-direction:column;padding:8px;gap:8px}.window.narrow{width:min(520px,calc(100% - 20px))}.window .title{display:flex;align-items:center;justify-content:space-between;font-weight:900;font-size:1.2em;padding:0 4px;text-shadow:0 2px 0 rgba(0,0,0,.35)}.window .title .close{width:40px;height:40px;padding:0;min-height:40px;min-width:40px;font-size:1.1em}.window .content{flex:1;overflow:auto;padding:10px;-webkit-overflow-scrolling:touch;touch-action:pan-y}.tabs{display:flex;gap:4px;flex-wrap:wrap}.tab{background:var(--wood-dark);color:var(--cream);border:2px solid var(--wood-dark);border-bottom:none;border-radius:8px 8px 0 0;padding:8px 14px;font-weight:800;cursor:pointer;font-family:var(--font);font-size:.9em;min-height:40px;display:inline-flex;align-items:center;gap:6px}.tab.active{background:var(--cream);color:var(--ink)}.tab img{width:22px;height:22px}.grid-inv{display:grid;grid-template-columns:repeat(auto-fill,52px);gap:5px;justify-content:center}.row{display:flex;align-items:center;gap:8px}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:6px}.card{background:#ffffff80;border:2px solid var(--cream-dark);border-radius:8px;padding:8px 10px;display:flex;gap:10px;align-items:center}.card.disabled{opacity:.55}.card .icon-sprite{flex:none}.card .info{flex:1;min-width:0}.card .name{font-weight:900}.card .desc{font-size:.85em;opacity:.8}.price{font-weight:900;color:#8a5a10;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.price img{width:16px;height:16px}.muted{opacity:.65;font-size:.85em}.tag{display:inline-block;font-size:.7em;font-weight:900;padding:1px 7px;border-radius:10px;background:var(--wood-light);color:#fff}.tag.green{background:var(--green)}.tag.red{background:var(--red)}.tag.blue{background:var(--blue)}.bar{height:12px;background:#b9a785;border-radius:6px;overflow:hidden;border:1px solid #8a7a5a}.bar>div{height:100%;background:var(--green)}.bar.xp>div{background:var(--blue)}.hearts{display:inline-flex;gap:2px}.hearts img{width:16px;height:16px}.tooltip{position:absolute;z-index:40;pointer-events:none;padding:6px 10px;max-width:240px;font-size:.85em}.tooltip .name{font-weight:900}input[type=range]{width:100%;accent-color:var(--orange);height:32px}input[type=text],input[type=password],input[type=number],input[type=email]{font-family:var(--font);font-size:1em;padding:8px 10px;border-radius:6px;border:2px solid var(--wood-dark);background:#fff;color:var(--ink);width:100%;box-sizing:border-box}select{font-family:var(--font);font-size:1em;padding:6px;border-radius:6px}.qty-ctl{display:inline-flex;align-items:center;gap:4px}.qty-ctl .btn{min-width:36px;min-height:36px;padding:0;width:36px;height:36px}.qty-ctl span{min-width:34px;text-align:center;font-weight:900}.main-menu{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;z-index:15;background:radial-gradient(ellipse at center,#0000001a,#0000008c)}.main-menu h1{font-size:clamp(2.2em,8vw,4em);margin:0;color:#ffd36a;text-shadow:0 4px 0 #8a4a10,0 8px 20px rgba(0,0,0,.6);letter-spacing:1px;font-weight:900}.main-menu .sub{margin-top:-10px;font-weight:800;opacity:.9;text-shadow:0 2px 4px #000}.main-menu .menu-btns{display:flex;flex-direction:column;gap:10px;min-width:240px}.main-menu .menu-btns .btn{font-size:1.1em}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#1c1a26;z-index:60}.loading .bar{width:260px;height:16px}.char-pick{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.char-pick .opt{width:72px;height:84px;border:3px solid var(--wood-dark);background:#2a1c12;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;gap:4px;font-size:.7em;color:var(--cream)}.char-pick .opt.sel{border-color:#ffd36a;background:#4a3020}.char-pick .opt canvas{width:48px;height:48px}.credits{font-size:.9em;line-height:1.4}.credits h3{margin:10px 0 4px}.fishing{position:absolute;left:calc(50% - 90px);top:50%;transform:translate(-50%,-50%);width:60px;height:260px;padding:6px;z-index:25}.fishing .track{position:relative;width:100%;height:100%;background:#24405a;border-radius:6px;overflow:hidden;border:2px solid #142838}.fishing .zone{position:absolute;left:4px;right:4px;background:#78dc6ebf;border-radius:4px}.fishing .fish{position:absolute;left:50%;width:28px;height:28px;transform:translate(-50%,-50%);background-image:url(../assets/items/items.png);background-repeat:no-repeat;image-rendering:pixelated;background-size:calc(var(--atlas-cols) * 28px) auto}.fishing .progress{position:absolute;right:-14px;top:0;bottom:0;width:8px;background:#22160c;border-radius:4px;overflow:hidden}.fishing .progress>div{position:absolute;bottom:0;width:100%;background:#ffd36a}.fishing-hint{position:absolute;left:50%;top:calc(50% + 150px);transform:translate(-50%);font-weight:900;text-shadow:0 2px 3px #000;z-index:25;pointer-events:none}.summary-list{display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:.95em}.summary-list .total{font-weight:900;border-top:2px solid var(--cream-dark);padding-top:4px}.center{text-align:center}.big{font-size:1.3em;font-weight:900}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.map-cell{padding:10px;border-radius:8px;border:2px solid var(--cream-dark);background:#ffffff80;text-align:center;font-weight:800}.map-cell.here{border-color:var(--orange);background:#ffe6cc}.map-cell.locked{opacity:.5}.shop-layout{display:grid;gap:2px;background:#5a4630;padding:4px;border-radius:6px;justify-content:center}.shop-layout .cell{width:30px;height:30px;background:#b98a5c;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:.6em;cursor:pointer}.shop-layout .cell.fix{background:#7a5a3a;color:#fff}.shop-layout .cell.door{background:#3a2a1a}.shop-layout .cell.sel{outline:3px solid #ffd36a}.shelf-slots{display:flex;gap:6px;flex-wrap:wrap}.shelf-slot{width:100px;padding:6px;border-radius:8px;background:#ffffff8c;border:2px solid var(--cream-dark);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.8em;cursor:pointer}.shelf-slot.empty{border-style:dashed;opacity:.8}.notice{background:#ffe6cc;border:2px solid var(--orange);border-radius:8px;padding:8px 10px;font-weight:800;font-size:.9em}.xp-float{position:absolute;font-weight:900;color:#8fe0ff;text-shadow:0 2px 2px #000;pointer-events:none;animation:floatUp 1.2s ease-out forwards;z-index:15}@keyframes floatUp{to{transform:translateY(-50px);opacity:0}}.offline-report{font-size:.95em}.kbd{display:inline-block;border:2px solid var(--wood-dark);border-radius:4px;padding:0 6px;background:#fff;color:var(--ink);font-weight:900;font-size:.8em}.fade{position:absolute;inset:0;background:#000;pointer-events:none;z-index:45;opacity:0;transition:opacity .35s}.fade.on{opacity:1}.shortcut-help{font-size:.85em;line-height:1.6}@media (max-height: 420px){#ui{font-size:calc(13px * var(--ui-scale))}.slot{width:42px;height:42px}.slot .icon{width:28px;height:28px}.hud-top-right .btn{width:42px;height:42px}.energy-wrap{height:90px}.window .content{padding:6px}.dialog .face,.dialog .face img{width:60px;height:60px}.action-btn{width:64px;height:64px}}.net-status{position:absolute;top:calc(64px + var(--safe-t));left:50%;transform:translate(-50%);padding:6px 14px;background:var(--red);color:#fff;font-weight:800;z-index:30;pointer-events:none}body.online .tutorial{width:min(460px,calc(100% - 540px))}@media (max-width: 900px){body.online .tutorial{top:auto;bottom:calc(70px + var(--safe-b));width:min(420px,calc(100% - 24px))}}.farm-code{position:absolute;top:calc(112px + var(--safe-t));left:calc(8px + var(--safe-l));background:#00000073;color:#ffd36a;font-weight:900;letter-spacing:2px;padding:3px 10px;border-radius:8px;border:2px solid rgba(255,211,106,.5);cursor:pointer;font-size:.85em}.visiting{position:absolute;bottom:calc(84px + var(--safe-b));left:50%;transform:translate(-50%);padding:4px 8px 4px 12px;display:flex;gap:8px;align-items:center;font-weight:800;z-index:13;background:#23628a}.visiting .btn{min-height:30px;padding:2px 10px;font-size:.8em}.farm-money{font-size:.75em;opacity:.9;display:inline-flex;align-items:center;gap:2px}.farm-money img{width:16px;height:16px}.chat-panel{position:absolute;left:calc(8px + var(--safe-l));bottom:calc(70px + var(--safe-b));width:min(360px,calc(100vw - 16px));height:min(300px,55vh);display:flex;flex-direction:column;gap:6px;padding:8px;z-index:25;background:#322214eb}.chat-panel .chat-tabs{display:flex;gap:4px}.chat-panel .chat-tabs .tab{min-height:30px;padding:2px 10px;font-size:.85em}.chat-panel .btn.close.small{width:30px;height:30px;min-height:30px;padding:0}.chat-list{flex:1;overflow-y:auto;font-size:.85em;line-height:1.4;background:#00000040;border-radius:8px;padding:6px;-webkit-overflow-scrolling:touch}.chat-line.sys{color:#ffd36a;font-style:italic}.chat-line.mine{opacity:.95}.chat-row{display:flex;gap:6px}.chat-input{flex:1;min-height:36px;font-size:16px}body.touch .chat-panel{bottom:auto;top:calc(64px + var(--safe-t));left:calc(8px + var(--safe-l));height:min(260px,50vh)}body.chat-open .joystick{display:none!important}.chat-btn .badge{background:var(--blue)!important}.online-menu{display:flex;flex-direction:column;gap:10px;min-width:260px}.online-menu input{font-size:1.2em;text-align:center;letter-spacing:3px;text-transform:uppercase}.farm-list .card{cursor:pointer}@media (max-height: 420px){.net-status{top:calc(56px + var(--safe-t))}.farm-code{top:calc(100px + var(--safe-t))}}.rotate-overlay{position:fixed;inset:0;z-index:999999;background:#1c1a26;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:24px}.rotate-icon{width:70px;height:42px;border:4px solid #ffd36a;border-radius:10px;position:relative;animation:rotate-hint 1.8s ease-in-out infinite}.rotate-icon:after{content:"";position:absolute;right:6px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:#ffd36a}@keyframes rotate-hint{0%,15%{transform:rotate(-90deg)}45%,to{transform:rotate(0)}}.rotate-text{color:#ffd36a;font-weight:900;font-size:1.3em;text-shadow:0 2px 4px rgba(0,0,0,.5)}.rotate-sub{color:#cfc7b8;font-size:.95em;max-width:280px}
