:root{--cream:#fff9ec;--beige:#e9e0ca;--forest:#193d31;--deep:#13271f;--accent:#ffcf71;--muted:#9fae9f}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#45694a;color:var(--cream);font:14px 'DM Sans',system-ui,sans-serif}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}#world{position:fixed;inset:0;display:block;width:100%;height:100%;image-rendering:pixelated}.vignette{pointer-events:none;position:fixed;inset:0;background:radial-gradient(ellipse at center,transparent 48%,rgba(8,24,15,.34));z-index:2}.noise{pointer-events:none;position:fixed;inset:0;background-image:url('data:image/svg+xml,%3Csvg viewBox=%220 0 100 100%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cfilter id=%22n%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%22.5%22 numOctaves=%222%22 stitchTiles=%22stitch%22/%3E%3C/filter%3E%3Crect width=%22100%25%22 height=%22100%25%22 filter=%22url(%23n)%22 opacity=%22.08%22/%3E%3C/svg%3E');opacity:.14;z-index:3}.hidden{display:none!important}#app{position:fixed;inset:0;pointer-events:none;z-index:5}#app button,#app input,#app .drawer,#app .dock{pointer-events:auto}.topbar{position:absolute;top:20px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:auto}.brand{display:flex;align-items:center;gap:12px;background:rgba(21,47,35,.94);border:1px solid rgba(255,255,255,.11);border-radius:15px;padding:9px 17px 9px 10px;box-shadow:0 9px 30px #0d271633}.brand-mark{font-size:26px;background:#315a43;border-radius:12px;padding:7px}.brand strong{display:block;font-size:15px;letter-spacing:2px}.brand small{font-size:8px;letter-spacing:1.6px;color:#becfba}.resources{display:flex;gap:7px;flex-wrap:wrap}.res{display:flex;gap:9px;align-items:center;min-width:99px;background:rgba(21,47,35,.92);padding:10px 15px;border:1px solid rgba(255,255,255,.1);border-radius:13px;box-shadow:0 9px 30px #0d271633}.res>span{font-size:20px}.res strong{display:block;font-size:15px;line-height:17px}.res small{font-size:9px;letter-spacing:1px;color:#b5c6b6}.top-actions{display:flex;align-items:center;gap:8px}.online{background:#193d31e8;border:1px solid #ffffff22;padding:13px 15px;border-radius:12px;font-size:11px;white-space:nowrap}.online i{display:inline-block;background:#7bdf83;width:7px;height:7px;border-radius:100%;margin-right:5px}.circle-btn{border:1px solid #ffffff22;background:#193d31e8;color:white;width:40px;height:40px;border-radius:12px;font-weight:800}.left-panel{position:absolute;top:108px;left:24px;width:275px;padding:22px;background:rgba(22,49,37,.93);border:1px solid #ffffff24;border-radius:17px;box-shadow:0 20px 50px #10271955;backdrop-filter:blur(8px)}.panel-title{display:flex;align-items:center;gap:7px;color:#e7d9ad;font-size:11px;font-weight:800}.sun{font-size:20px}.chapter{margin-left:auto;font-size:8px;color:#a8bdab;border:1px solid #ffffff33;padding:5px;border-radius:5px}.left-panel h2{font:600 28px/1.08 'Fraunces',Georgia,serif;margin:18px 0 8px}.left-panel em{color:#e6c87c;font-style:normal}.left-panel p{font-size:11px;line-height:1.8;color:#b6c9b8;margin-bottom:18px}.task{display:flex;gap:9px;align-items:center;border-top:1px solid #ffffff16;padding:11px 0;color:#e4ebe0;font-size:11px}.task-check{color:#f0c978;font-size:19px}.task-check.done{color:#91e8a7}.panel-bottom{display:flex;align-items:center;gap:7px;border-top:1px solid #ffffff1e;margin-top:6px;padding-top:15px;font-size:10px;color:#c4d3bf}.right-stack{position:absolute;right:24px;top:108px;width:205px}.minimap-shell{background:rgba(22,49,37,.94);padding:11px;border:1px solid #ffffff2b;border-radius:16px;box-shadow:0 12px 38px #10271955}.mini-caption{font-weight:800;letter-spacing:1px;font-size:10px;display:flex;justify-content:space-between}.mini-caption span{font-weight:400;color:#bfd2c3;font-size:9px}#minimap{width:100%;height:145px;margin-top:9px;border-radius:8px;background:#49734d;image-rendering:pixelated}.mini-foot{font-size:8px;letter-spacing:.6px;color:#bdd0c0;text-align:center;margin-top:4px}.hint{margin-top:10px;background:#1b3b2ef0;padding:11px;border-radius:12px;border:1px solid #ffffff1d;color:#cddbcc;font-size:10px;line-height:1.8}.chat-log{position:absolute;bottom:140px;left:24px;width:310px;max-height:150px;overflow:hidden;display:flex;flex-direction:column;justify-content:end;gap:5px}.chat-line{background:rgba(19,42,31,.82);border-radius:7px;padding:7px 10px;font-size:11px;line-height:1.3;word-break:break-word}.chat-line b{color:#fad388}.chatbox{position:absolute;bottom:90px;left:24px;display:flex;align-items:center;gap:8px;width:310px;background:rgba(23,48,36,.94);border:1px solid #ffffff32;border-radius:12px;padding:0 12px;height:42px;pointer-events:auto}.chatbox input{flex:1;min-width:0;background:none;color:white;outline:none;border:0;font-size:11px}.chatbox input::placeholder{color:#c3d0bd}.chat-send{color:#f6d284}.dock{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);background:rgba(20,45,34,.95);border:1px solid #ffffff2b;border-radius:20px;padding:9px 13px 12px;box-shadow:0 15px 55px #11201799;backdrop-filter:blur(10px);text-align:center}.dock-label{font-size:9px;letter-spacing:2px;font-weight:800;color:#bbccba;margin:2px 0 9px}.dock-buttons{display:flex;gap:7px}.dock-item{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:66px;border:1px solid transparent;background:#ffffff0d;color:white;border-radius:12px;padding:9px 11px 8px}.dock-item span{font-size:25px;line-height:29px}.dock-item small{font-size:8px;font-weight:800;margin-top:3px;letter-spacing:.6px}.dock-item:hover,.dock-item.active{background:#d9e4b5;color:#294534}.drawer{position:absolute;right:24px;bottom:105px;width:min(390px,calc(100vw - 40px));max-height:min(67vh,620px);background:rgba(25,48,37,.98);border:1px solid #f0dfa54d;box-shadow:0 14px 55px #0008;border-radius:20px;padding:20px;overflow:auto;backdrop-filter:blur(15px)}.drawer-header{display:flex;align-items:start;justify-content:space-between;margin-bottom:13px}.eyebrow{font-size:9px;color:#d7c184;letter-spacing:2px;font-weight:800}.drawer h2{font:600 26px 'Fraunces',Georgia,serif;margin:4px 0 0}.close{background:#ffffff16;border:1px solid #ffffff23;color:white;border-radius:10px;width:31px;height:31px}.item-card{border:1px solid #ffffff1f;background:#ffffff0c;border-radius:12px;padding:10px;display:flex;gap:12px;align-items:center;margin:9px 0}.item-emoji{background:#ffffff18;width:49px;height:49px;border-radius:10px;display:grid;place-items:center;font-size:26px;flex-shrink:0}.item-desc{flex:1;min-width:0}.item-desc strong{font-size:13px}.item-desc small{display:block;color:#aebfaa;font-size:10px;margin-top:3px}.item-action{border:0;color:#2b442d;border-radius:8px;background:#eedc9d;padding:9px 10px;font-weight:800;white-space:nowrap;font-size:10px}.secondary-btn{background:#355946;color:#fff;border:1px solid #ffffff26;padding:10px 12px;border-radius:9px;font-size:11px}.drawer-intro{color:#b9c7b7;line-height:1.65;font-size:11px;margin:0 0 13px}.drawer h3{font-size:12px;margin:18px 0 6px;color:#e7d5a2}.form-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}.form-row input,.form-row select{background:#112f24;border:1px solid #ffffff35;padding:10px;border-radius:9px;color:white;min-width:0;flex:1;max-width:120px}.muted{color:#a6bdaa;font-size:11px}.alert{background:#365440;border-radius:10px;padding:12px;color:#edebd9;font-size:12px}.toast{position:absolute;bottom:115px;left:50%;transform:translateX(-50%);border-radius:12px;background:#f8e5b6;color:#284132;padding:12px 18px;font-weight:800;box-shadow:0 9px 30px #0007;text-align:center;z-index:30;max-width:80vw;white-space:nowrap}.toast.err{background:#f3a79d;color:#642f26}.auth{position:fixed;z-index:50;inset:0;display:grid;place-items:center;overflow:auto;padding:30px;background:linear-gradient(90deg,#142e24f5 0%,#173528e8 44%,#142f2447 100%)}.leaf{font-size:44px}.auth h1{font:600 clamp(36px,4vw,57px)/1.12 'Fraunces',Georgia,serif;margin:0}.auth h1 span{color:#f1d39b}.auth-card{width:395px;max-width:100%;background:#1a3a2cec;border:1px solid #ffffff2c;border-radius:18px;padding:23px;box-shadow:0 20px 80px #07190ca8}.switch{display:flex;background:#102b20;border-radius:9px;padding:4px;margin-bottom:22px}.switch button{border:0;background:transparent;color:#a7c2ad;flex:1;padding:10px;border-radius:7px;font-weight:700}.switch button.selected{background:#355d43;color:white}.auth-card label{display:block;color:#d3e0cf;font-weight:800;font-size:10px;letter-spacing:1.2px;margin-top:15px}.auth-card input{display:block;width:100%;padding:13px;margin-top:7px;background:#102b21;border:1px solid #ffffff32;border-radius:10px;color:white;outline:0}.auth-card input:focus{border-color:#e2cf9d}.auth-card input::placeholder{color:#859e8b}.primary-btn{width:100%;margin-top:14px;border:0;background:#e9ce8f;color:#254134;border-radius:10px;padding:14px;font-weight:800;display:flex;align-items:center;justify-content:space-between}.auth-card>small{display:block;text-align:center;color:#9fb7a5;font-size:10px;margin-top:14px}.auth-error{font-size:11px;color:#ffa5a5;margin-top:12px;min-height:13px}.modal-overlay{position:fixed;z-index:70;inset:0;background:#07140baf;display:grid;place-items:center;padding:20px;pointer-events:auto}.modal-box{position:relative;width:min(430px,100%);padding:29px;background:#1b3c2f;border-radius:18px;border:1px solid #ffffff29;box-shadow:0 20px 70px #0009;line-height:1.75}.modal-box .close{position:absolute;right:17px;top:17px}.modal-box h2{font:600 29px 'Fraunces',Georgia,serif}.modal-box p{color:#bdd2be;font-size:13px}.mobile-controls{display:none;position:absolute;bottom:20px;left:15px;pointer-events:auto}.mobile-controls button{background:#16392aca;border:1px solid #ffffff55;color:white;border-radius:8px;width:47px;height:44px}.mobile-controls>button{display:block;margin:0 auto 3px}@media(max-width:1150px){.left-panel{width:222px;padding:16px}.left-panel h2{font-size:24px}.right-stack{width:175px}.resources .res{min-width:80px;padding:8px}.res small{font-size:7px}.topbar{gap:9px}.brand small{display:none}}@media(max-width:760px){.topbar{top:10px;left:10px;right:10px;gap:5px}.brand{padding:7px}.brand strong{font-size:10px}.brand-mark{font-size:16px;padding:5px}.resources{gap:3px}.resources .res{min-width:55px;padding:6px;gap:3px}.res>span{font-size:13px}.res strong{font-size:11px}.res small{display:none}.online,.circle-btn{display:none}.left-panel,.right-stack,.chat-log,.chatbox{display:none}.dock{bottom:8px;padding:7px}.dock-item{min-width:50px;padding:6px}.dock-item span{font-size:20px}.dock-item small{font-size:7px}.drawer{right:10px;bottom:89px;max-height:57vh}.mobile-controls{display:block}.auth{background:#143326e8}.auth h1{font-size:37px}.toast{bottom:95px;font-size:11px}}

/* Vale Verde 0.2 — readable progression, stores and world tools. */
.wealth-box{margin:15px 0;border:1px solid #e9ce8f42;background:#e9ce8f0a;padding:12px;border-radius:10px}.wealth-box small{font-size:8px;letter-spacing:2px;color:#becdb5}.wealth-box strong{display:block;font:600 27px 'Fraunces',Georgia,serif;color:#f2d691;margin-top:3px}.wealth-box i{font-size:16px;font-style:normal}.wide{width:100%}.locked{opacity:.55}.toolbelt{position:absolute;left:50%;bottom:131px;transform:translateX(-50%);text-align:center;pointer-events:auto;max-width:calc(100vw - 40px)}.tool-buttons{display:flex;gap:4px;padding:6px;border:1px solid #fff3;background:#173629f0;border-radius:12px;box-shadow:0 7px 25px #071c2440}.tool-buttons button{white-space:nowrap;background:#ffffff08;border:1px solid transparent;color:#e6eddc;border-radius:8px;padding:9px;font-size:12px}.tool-buttons button.selected{background:#e9ce8f;color:#274532}.toolbelt>small{display:block;color:#fff5d5;font-size:10px;background:#183528d9;border-radius:6px;padding:5px 10px;margin:5px auto 0;width:max-content;max-width:100%}.dock{max-width:calc(100vw - 40px)}.dock-buttons{gap:4px}.dock-item{min-width:57px;padding:8px}.premium-dock{border:1px solid #efd18d65;background:#e7c57616}.drawer{bottom:125px;max-height:calc(100vh - 220px);width:min(440px,calc(100vw - 40px));z-index:12}.item-desc small{line-height:1.6}.item-card{gap:8px}.item-action{white-space:normal;max-width:115px;line-height:1.35}.item-emoji{width:44px;height:44px}.feature-banner{display:flex;gap:13px;align-items:center;background:linear-gradient(125deg,#41684c,#244d3d);border:1px solid #e9ce8f45;padding:17px;border-radius:13px;margin-bottom:15px}.feature-banner>span{font-size:36px}.feature-banner strong{font:600 20px 'Fraunces',Georgia,serif;color:#f5e3b0}.feature-banner small{display:block;font-size:11px;line-height:1.6;color:#cddcbe;margin-top:5px}.feature-banner.premium{background:linear-gradient(125deg,#6d5533,#3b493c)}.supply-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #fff1;font-size:12px}.quest-card{padding:15px;background:#ffffff08;border:1px solid #ffffff1c;border-radius:12px;margin-top:12px}.quest-card>div:first-child{display:flex;justify-content:space-between;gap:10px}.quest-card strong{font-size:12px}.quest-card span,.quest-card>small{font-size:10px;color:#c8d3ba}.quest-card .item-action{float:right;margin-top:2px}.progress-track{height:5px;border-radius:5px;background:#102a20;overflow:hidden;margin:13px 0}.progress-track i{height:100%;display:block;background:#e6c779}.pack-card{border:1px solid #e0c17a70;border-radius:13px;padding:20px;background:linear-gradient(150deg,#e1bc6314,#ffffff03);text-align:center;margin:14px 0}.pack-card>span{font-size:38px}.pack-card h3{font:600 23px 'Fraunces',Georgia,serif;margin:8px 0}.pack-card>strong{display:block;color:#e6cf93;font-size:13px;margin:10px 0}.pack-card .item-action{max-width:none}.pack-card>small{display:block;font-size:9px;color:#adbea7;margin-top:10px}.map-link{background:none;border:0;padding:0 4px 8px;color:#e3cd93;font-size:10px;text-align:left}.rank-row{display:flex;gap:12px;align-items:center;border-bottom:1px solid #fff2;padding:15px 0}.rank-row>b{font-size:22px;min-width:28px}.rank-row>div{flex:1}.rank-row strong{display:block;font-size:12px}.rank-row small{display:block;font-size:9px;color:#b6c6af;margin-top:5px}.rank-row>span{font-size:11px;color:#f2d58f}.left-panel{padding:18px}.left-panel h2{margin:13px 0 8px}.left-panel p{margin-bottom:10px}.left-panel .task{padding:8px 0}.noise{display:none}.toast{z-index:32;bottom:210px;white-space:normal;min-width:240px}.chatbox{bottom:118px}.chat-log{bottom:168px}
@media(max-width:1300px){.dock-item{min-width:48px;padding:6px}.dock-item span{font-size:21px}.dock-item small{font-size:7px}.chatbox{width:235px}.toolbelt{bottom:122px}.tool-buttons button{padding:7px;font-size:11px}.left-panel{width:235px}.left-panel h2{font-size:25px}}
@media(max-width:1000px){.chatbox,.chat-log{display:none}.left-panel{width:205px;padding:14px}.left-panel .task{font-size:10px}.right-stack{width:160px;right:15px}.left-panel{left:15px}.toolbelt{bottom:123px}.dock{bottom:12px}.drawer{right:15px}.resources .res{min-width:72px}.tool-buttons button span{display:none}}
@media(max-width:760px){.dock{width:calc(100vw - 16px);max-width:none;bottom:8px;padding:6px}.dock-buttons{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}.dock-item{min-width:0;padding:4px 2px}.dock-item span{font-size:18px;line-height:22px}.dock-item small{font-size:6px;margin-top:0}.dock-label{font-size:7px;margin:0 0 4px}.toolbelt{bottom:auto;top:69px;width:max-content;max-width:calc(100vw - 16px)}.tool-buttons{gap:1px;padding:4px}.tool-buttons button{padding:7px 6px;font-size:11px}.toolbelt>small{font-size:8px}.drawer{bottom:135px;right:8px;max-height:calc(100vh - 275px);width:calc(100vw - 16px);padding:15px}.mobile-controls{bottom:150px;left:12px;opacity:.85}.mobile-controls button{width:37px;height:36px}.toast{bottom:145px;font-size:11px}.topbar .brand small{display:none}.item-action{font-size:9px;padding:8px}.item-emoji{width:34px;height:37px;font-size:22px}.item-desc strong{font-size:12px}.item-desc small{font-size:9px}.res{border-radius:9px}}
.item-action.wide{max-width:none}.quest-card{display:flow-root}
#world.hunting{cursor:crosshair}
.client-status{position:fixed;bottom:5px;left:50%;transform:translateX(-50%);z-index:51;max-width:90vw;margin:0;padding:4px 12px;border-radius:6px;background:#173629;color:#e9ce8f;font-size:10px;text-align:center;pointer-events:none}body:has(#authScreen.hidden) .client-status{display:none}

#world{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body{-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#app .guide,#app .action-cluster,#app #minimap{pointer-events:auto}
.level-res{min-width:150px}.level-badge{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e9ce8f;color:#274532;font-weight:900;font-size:14px;box-shadow:inset 0 -3px 0 #c79d3f}.xp-box{flex:1;min-width:70px}.xp-box small{display:block;font-size:9px;color:#d8e4cf;letter-spacing:.5px}.xp-track{height:6px;background:#0f2a1f;border-radius:6px;overflow:hidden;margin-top:4px}.xp-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#9ed36e,#e6c779);transition:width .4s}
.guide{position:absolute;top:88px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:min(560px,calc(100vw - 600px));min-width:320px;background:rgba(21,47,35,.95);border:1px solid #e9ce8f66;border-radius:16px;padding:9px 10px 9px 14px;box-shadow:0 10px 30px #0d271655;animation:guideIn .4s ease}.guide-icon{font-size:26px}.guide-body{flex:1;min-width:0;display:flex;flex-direction:column}.guide-body small{font-size:8px;letter-spacing:2px;color:#d7c184;font-weight:800}#guideText{font-size:13px;font-weight:700;color:#fff5d5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guide-button{border:0;background:#e9ce8f;color:#274532;font-weight:900;border-radius:10px;padding:10px 14px;white-space:nowrap;box-shadow:0 3px 0 #b8923f}.guide-button:active{transform:translateY(2px);box-shadow:none}
.action-cluster{position:absolute;right:24px;bottom:34px;display:flex;align-items:flex-end;gap:10px}.action-button{position:relative;width:92px;height:92px;border-radius:50%;border:3px solid #fff3c4;background:radial-gradient(circle at 35% 30%,#f7e2a6,#d9a94a);color:#2b442d;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px;box-shadow:0 7px 0 #9c7531,0 14px 30px #0008;touch-action:none;user-select:none;-webkit-user-select:none}.action-button:active{transform:translateY(4px);box-shadow:0 3px 0 #9c7531,0 8px 20px #0008}.action-icon{font-size:32px;line-height:34px}.action-button small{font-size:9px;font-weight:900;max-width:80px;line-height:1.1;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.action-button kbd{position:absolute;bottom:-22px;font:700 9px system-ui;color:#fff5d5;background:#173629;padding:2px 6px;border-radius:5px}.action-button.idle{filter:saturate(.25) brightness(.85)}.home-button{width:52px;height:52px;border-radius:50%;border:2px solid #ffffff55;background:#193d31f0;font-size:24px;box-shadow:0 6px 18px #0007}
.zoom-buttons{display:flex;gap:6px;justify-content:flex-end;margin-top:8px}.zoom-buttons .circle-btn{font-size:18px;line-height:1}#minimap{cursor:pointer}
.joystick{position:fixed;width:124px;height:124px;margin:-62px 0 0 -62px;border-radius:50%;background:radial-gradient(circle,#ffffff10,#ffffff26);border:2px solid #ffffff66;pointer-events:none;opacity:0;transition:opacity .12s;z-index:20}.joystick.active{opacity:1}.joystick-knob{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:#fff3c4e6;box-shadow:0 4px 12px #0006}.joystick-hint{display:none}
.chat-toggle{display:none}.chat-toggle.unread::after{content:'';position:absolute;top:4px;right:4px;width:10px;height:10px;border-radius:50%;background:#ff6b5b;border:2px solid #193d31}
.dock-more{display:none}.item-card.selected-card{border-color:#e9ce8f;background:#e9ce8f1c}
.level-up{position:absolute;top:26%;left:50%;transform:translateX(-50%);text-align:center;background:linear-gradient(160deg,#f7e2a6,#e0b04f);color:#2b442d;border-radius:20px;padding:16px 34px;box-shadow:0 20px 60px #000a;z-index:40;animation:pop .5s cubic-bezier(.2,1.6,.4,1)}.level-up span{font-size:44px;display:block}.level-up strong{font:700 34px 'Fraunces',Georgia,serif;display:block}.level-up small{font-weight:700;font-size:12px}
@keyframes pop{from{transform:translateX(-50%) scale(.4);opacity:0}to{transform:translateX(-50%) scale(1);opacity:1}}@keyframes guideIn{from{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%,0)}}
.modal-box{width:min(600px,100%);max-height:calc(100vh - 40px);overflow:auto}.world-map{display:block;width:100%;max-width:min(440px,62vh);aspect-ratio:1;margin:8px auto;border-radius:12px;image-rendering:pixelated;border:2px solid #ffffff33;cursor:crosshair;touch-action:manipulation}.map-help{margin:0}.map-legend{display:flex;gap:12px;justify-content:center;font-size:11px;color:#cddbcc;flex-wrap:wrap}.dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px;vertical-align:middle}.dot.you{background:#fff;border-radius:50%}.dot.farm{background:#ffd76a}.dot.estate{background:#fff1bb}.map-shortcuts{display:flex;gap:6px;justify-content:center;margin-top:10px;flex-wrap:wrap}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.help-grid h3{margin:4px 0;font-size:13px;color:#e7d5a2}.help-grid p{margin:6px 0;font-size:12px;line-height:1.5}
.mobile-controls{display:none!important}
@media(max-width:1100px){.left-panel{display:none}.guide{width:calc(100vw - 420px);min-width:280px}}
@media(max-width:760px){
.topbar{top:calc(6px + env(safe-area-inset-top));left:8px;right:8px;gap:6px}.brand{display:none}.resources{flex-wrap:nowrap;gap:4px}.resources .res{min-width:0;padding:6px 8px;gap:5px}.resources .level-res{min-width:96px}.level-badge{width:24px;height:24px;font-size:12px}.level-res small{display:block!important;font-size:8px}.top-actions{gap:4px}.top-actions .online{display:none}.top-actions .circle-btn,.zoom-buttons .circle-btn{display:inline-grid!important;place-items:center;width:34px;height:34px;border-radius:10px;font-size:14px;padding:0}
.guide{top:calc(54px + env(safe-area-inset-top));left:8px;right:8px;width:auto;transform:none;min-width:0;padding:6px 6px 6px 10px;gap:8px;animation:none;border-radius:13px}.guide-icon{font-size:20px}.guide-body small{display:none}#guideText{font-size:12px;white-space:normal;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.guide-button{padding:9px 10px;font-size:12px}
.right-stack{display:block!important;top:calc(112px + env(safe-area-inset-top));right:8px;width:96px}.minimap-shell{padding:4px;border-radius:12px}.mini-caption,.mini-foot,.hint{display:none}#minimap{height:84px;margin:0;display:block}.zoom-buttons{justify-content:center;margin-top:5px}
.toolbelt{top:calc(250px + env(safe-area-inset-top))!important;bottom:auto;left:auto;right:8px;transform:none;width:auto}.tool-buttons{flex-direction:column;gap:3px;padding:4px}.tool-buttons button{padding:6px 7px;font-size:16px}.toolbelt>small{display:none}
.action-cluster{right:10px;bottom:calc(84px + env(safe-area-inset-bottom));gap:8px}.action-button{width:78px;height:78px}.action-icon{font-size:28px;line-height:30px}.action-button kbd{display:none}.action-button small{font-size:8px;max-width:66px}.home-button{width:46px;height:46px;font-size:21px}
.dock{width:calc(100vw - 12px);bottom:calc(4px + env(safe-area-inset-bottom));padding:5px}.dock-label{display:none}.dock-buttons{grid-template-columns:repeat(6,1fr)}.dock-item.secondary{display:none}.dock.expanded .dock-item.secondary{display:flex}.dock-more{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid transparent;background:#ffffff0d;color:white;border-radius:12px;padding:4px 2px}.dock-more span{font-size:18px;line-height:22px}.dock-more small{font-size:7px;font-weight:800;margin-top:0}.dock.expanded .dock-more{background:#d9e4b5;color:#294534}.dock-item small{font-size:7px}
.chatbox{display:none}#app.chat-open .chatbox{display:flex;left:8px;right:8px;width:auto;bottom:calc(140px + env(safe-area-inset-bottom))}.chat-log{display:flex!important;left:8px;bottom:calc(188px + env(safe-area-inset-bottom));width:min(62vw,300px);max-height:96px;pointer-events:none;opacity:.92}.chat-line{font-size:10px;padding:5px 8px}.chat-toggle{display:grid;place-items:center;position:absolute;left:10px;bottom:calc(84px + env(safe-area-inset-bottom));width:46px;height:46px;border-radius:50%;border:2px solid #ffffff55;background:#193d31f0;font-size:20px;color:#fff}
.drawer{left:6px;right:6px;width:auto;bottom:calc(76px + env(safe-area-inset-bottom));max-height:min(64vh,calc(100vh - 170px));padding:14px;border-radius:18px}.toast{top:calc(118px + env(safe-area-inset-top));bottom:auto!important;max-width:calc(100vw - 130px);min-width:0}
.joystick-hint{display:block;position:absolute;left:10px;bottom:calc(140px + env(safe-area-inset-bottom));max-width:calc(100vw - 120px);background:#173629d9;color:#fff5d5;font-size:11px;padding:7px 10px;border-radius:9px}#app.chat-open .joystick-hint{display:none}.help-grid{grid-template-columns:1fr}.modal-box{padding:20px}.level-up{padding:12px 24px}.level-up strong{font-size:26px}}
@media(max-height:500px) and (orientation:landscape){.guide{top:calc(50px + env(safe-area-inset-top));left:50%;right:auto;transform:translateX(-50%);width:min(460px,52vw)}.right-stack{display:none!important}.toolbelt{left:8px;right:auto;top:52px!important}.tool-buttons button{padding:3px 6px;font-size:14px}.action-cluster{bottom:calc(58px + env(safe-area-inset-bottom))}.action-button{width:64px;height:64px}.action-icon{font-size:22px;line-height:24px}.dock-item span,.dock-more span{font-size:15px;line-height:18px}.dock{padding:3px}.drawer{left:auto;right:6px;width:min(440px,62vw);bottom:54px;max-height:calc(100vh - 110px)}.chat-log{bottom:110px;left:56px}.chat-toggle{bottom:58px}#app.chat-open .chatbox{bottom:58px;left:64px;right:160px}.joystick-hint{display:none}}
.tool-switch{position:relative;z-index:25}.tool-button{width:52px;height:52px;border-radius:50%;border:2px solid #e9ce8f;background:#193d31f0;font-size:24px;box-shadow:0 6px 18px #0007}.tool-menu{display:none;position:absolute;bottom:62px;right:0;flex-direction:column;gap:4px;background:#173629f5;border:1px solid #ffffff33;border-radius:14px;padding:6px;min-width:168px;box-shadow:0 12px 30px #0009}.tool-menu.open{display:flex}.tool-menu button{display:flex;align-items:center;gap:9px;background:#ffffff0a;border:1px solid transparent;color:#fff;border-radius:9px;padding:8px 10px;font-size:13px;text-align:left;white-space:nowrap}.tool-menu button .ico{font-size:18px}.tool-menu button.selected{background:#e9ce8f;color:#274532}.chat-line{transition:opacity 1s}.chat-line.old{opacity:0}
@media(min-width:761px){.dock{padding:7px 9px;bottom:16px}.dock-buttons{flex-wrap:wrap;justify-content:center}.dock-item.secondary{display:none}.dock.expanded .dock-item.secondary{display:flex}.dock.expanded .dock-buttons{max-width:430px}.dock-more{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:57px;border:1px solid transparent;background:#ffffff0d;color:#fff;border-radius:12px;padding:8px}.dock-more span{font-size:21px;line-height:25px}.dock-more small{font-size:8px;font-weight:800;margin-top:3px;letter-spacing:.6px}.dock.expanded .dock-more{background:#d9e4b5;color:#294534}
.right-stack{top:78px;width:150px}.minimap-shell{padding:5px;border-radius:13px}#minimap{height:112px;margin:0;display:block}.zoom-buttons{display:none}.guide{width:min(540px,calc(100vw - 420px));min-width:300px;top:84px}
.chatbox{display:none}#app.chat-open .chatbox{display:flex;left:24px;bottom:86px;width:320px}.chat-log{display:flex!important;left:24px;bottom:140px;width:320px;pointer-events:none}.chat-toggle{display:grid;place-items:center;position:absolute;left:24px;bottom:24px;width:52px;height:52px;border-radius:50%;border:2px solid #ffffff55;background:#193d31f0;font-size:22px;color:#fff}
.toast{bottom:auto;top:150px}.drawer{bottom:100px}}
@media(max-width:760px){.tool-button{width:46px;height:46px;font-size:21px}.tool-menu{bottom:54px}}
.premium-toggle{display:flex;align-items:center;gap:10px;background:linear-gradient(120deg,#6d5533,#3b493c);border:1px solid #e9ce8f66;border-radius:12px;padding:10px 12px;margin:4px 0 10px;cursor:pointer}.premium-toggle input{width:18px;height:18px;accent-color:#e9ce8f}.premium-toggle .ico{font-size:22px}.premium-toggle span{display:flex;flex-direction:column}.premium-toggle small{color:#e6d7ad;font-size:10px;margin-top:2px}
.luxury-card{position:relative;border:1px solid #e9ce8f88;border-radius:16px;padding:16px;margin:12px 0;background:linear-gradient(150deg,#e1bc6326,#1b3c2f 60%);box-shadow:inset 0 0 0 1px #ffffff10}.luxury-card.tier-2{background:linear-gradient(150deg,#7f9bd633,#1b3c2f 60%)}.luxury-card.tier-3{background:linear-gradient(150deg,#f2c14e44,#3b2a1e 70%);border-color:#f2c14e}.luxury-head{display:flex;gap:12px;align-items:center}.luxury-head .ico{font-size:40px}.luxury-head h3{font:600 21px 'Fraunces',Georgia,serif;margin:0;color:#f5e3b0}.luxury-head small{display:block;color:#cddcbe;font-size:11px;line-height:1.5;margin-top:3px}.luxury-card ul{list-style:none;padding:0;margin:12px 0 8px}.luxury-card li{font-size:12px;padding:3px 0;color:#eef3e4}.luxury-extra{font-size:12px;color:#f2d691;margin-bottom:10px}
.rank-tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:6px;margin-bottom:8px;scrollbar-width:none}.rank-tab{display:flex;align-items:center;gap:5px;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff22;color:#e6eddc;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:700}.rank-tab.active{background:#e9ce8f;color:#274532;border-color:#e9ce8f}
.rank-goal{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:center;background:linear-gradient(120deg,#6d5533,#2d4a3a);border:1px solid #e9ce8f88;border-radius:14px;padding:12px;margin:4px 0 10px}.rank-goal small{font-size:8px;letter-spacing:2px;color:#e6d7ad;font-weight:800}.rank-goal strong{display:block;font:700 30px 'Fraunces',Georgia,serif;color:#fff1bb}.rank-goal p{margin:0;font-size:12px;line-height:1.5;color:#f4ecd4}.rank-goal .item-action{grid-column:1/-1;max-width:none}.rank-row.you{background:#e9ce8f22;border-radius:10px;padding-left:8px;padding-right:8px;outline:1px solid #e9ce8f88}.rank-row>span{white-space:nowrap}
.fuel-gauge{position:absolute;right:24px;bottom:150px;display:flex;align-items:center;gap:7px;background:#173629f0;border:1px solid #ffffff33;border-radius:12px;padding:6px 10px;color:#fff5d5;font-size:11px;font-weight:800;pointer-events:auto}.fuel-gauge .ico{font-size:16px}.fuel-track{display:block;width:70px;height:7px;background:#0f2a1f;border-radius:6px;overflow:hidden}.fuel-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#e2463f,#f2c14e,#9ed36e)}.fuel-gauge.low{border-color:#ff6b5b;animation:fuelBlink 1s infinite}@keyframes fuelBlink{50%{box-shadow:0 0 0 3px #ff6b5b66}}
.fuel-big{display:flex;align-items:center;gap:12px;margin:10px 0}.fuel-big .fuel-track{flex:1;height:12px}.fuel-big strong{font-size:16px;white-space:nowrap}.fuel-option{margin-top:8px}
.outfit-card{align-items:center}.outfit-preview{width:44px;height:60px;flex-shrink:0;background:#ffffff12;border-radius:10px;image-rendering:pixelated}
@media(max-width:760px){.fuel-gauge{right:10px;bottom:calc(172px + env(safe-area-inset-bottom))}}
.maintenance-banner{position:absolute;top:204px;left:50%;transform:translateX(-50%);z-index:35;display:flex;align-items:center;gap:10px;width:min(560px,calc(100vw - 32px));background:linear-gradient(120deg,#c8552d,#8a3a22);color:#fff8e6;border:1px solid #ffd7a8;border-radius:14px;padding:10px 14px;font-size:13px;font-weight:800;box-shadow:0 10px 30px #0008;animation:noticePulse 1.6s ease-in-out infinite}.maintenance-banner .ico{font-size:22px}@keyframes noticePulse{50%{box-shadow:0 10px 30px #0008,0 0 0 4px #ffb37a55}}
@media(max-width:760px){.maintenance-banner{top:calc(170px + env(safe-area-inset-top));font-size:11px;padding:8px 10px}}
.vitals{position:absolute;left:24px;top:100px;display:flex;flex-direction:column;gap:5px;background:#173629e6;border:1px solid #ffffff33;border-radius:12px;padding:7px 10px;color:#fff5d5;font-size:11px;font-weight:800;pointer-events:none;min-width:150px}.vital-row{display:flex;align-items:center;gap:7px}.vital-row .ico{font-size:15px}.vital-track{display:block;flex:1;height:8px;background:#0f2a1f;border-radius:6px;overflow:hidden}.vital-track i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#f2c14e,#ffe08a);transition:width .12s linear}.vital-track.health i{background:linear-gradient(90deg,#c8323a,#ff6b5b)}.vital-row.stamina .vital-track{height:5px}.vitals.hurt{animation:vitalHurt .45s}.vitals.low .vital-track.health{box-shadow:0 0 0 2px #ff6b5b88}@keyframes vitalHurt{30%{transform:translateX(-3px);border-color:#ff6b5b}60%{transform:translateX(3px)}}
.sprint-button{width:52px;height:52px;border-radius:50%;border:2px solid #ffffff55;background:#193d31f0;font-size:24px;box-shadow:0 6px 18px #0007;color:#fff;touch-action:none;user-select:none;-webkit-user-select:none}.sprint-button.active{background:#3f8fd1;border-color:#cfe8ff}.sprint-button.empty{opacity:.45}
@media(hover:hover) and (pointer:fine){.sprint-button{display:none}}
@media(max-width:760px){.vitals{left:8px;top:calc(110px + env(safe-area-inset-top));min-width:118px;padding:5px 8px;gap:4px}.sprint-button{width:46px;height:46px;font-size:21px}}
.hurt-flash{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 90px 30px #d9302f99;opacity:0;transition:opacity .35s}.hurt-flash.on{opacity:1;transition:none}
.auth{display:flex;flex-direction:column;place-items:initial;padding:clamp(16px,4vw,48px);background:radial-gradient(120% 90% at 85% 10%,#12291f00 0%,#12291f66 55%,#0d1f17e6 100%),linear-gradient(100deg,#0e2219f7 0%,#13291ff0 42%,#13291f80 70%,#13291f33 100%)}
.auth-shell{flex:1;width:100%;max-width:1180px;margin:auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,420px);gap:clamp(28px,6vw,90px);align-items:center}
.auth-hero,.auth-panel{min-width:0;animation:authRise .7s cubic-bezier(.2,.8,.2,1) both}.auth-panel{animation-delay:.12s}
@keyframes authRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.auth-brand{display:flex;align-items:center;gap:12px}.auth-brand strong{display:block;font:800 18px/1 'DM Sans',system-ui,sans-serif;letter-spacing:4px;color:#fff6dd}.auth-brand small{display:block;margin-top:5px;font-size:10px;letter-spacing:2.2px;color:#b9cdb9;font-weight:800}
.auth-crest{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font-size:34px;background:linear-gradient(145deg,#2f6b45,#173d2b);border:1px solid #f1d39b66;box-shadow:0 10px 30px #0008,inset 0 1px 0 #ffffff33}
.auth-live{display:inline-flex;align-items:center;gap:9px;margin:26px 0 18px;padding:7px 14px;border-radius:999px;background:#0f251bcc;border:1px solid #ffffff22;color:#d7e4d3;font-size:12px}.auth-live b{color:#fff3d1}.auth-live i{width:8px;height:8px;border-radius:50%;background:#7be08f;box-shadow:0 0 0 0 #7be08faa;animation:livePulse 1.8s infinite}
@keyframes livePulse{70%{box-shadow:0 0 0 8px #7be08f00}100%{box-shadow:0 0 0 0 #7be08f00}}
.auth h1{font:600 clamp(38px,5.2vw,68px)/1.05 'Fraunces',Georgia,serif;margin:0;letter-spacing:-.5px;text-shadow:0 6px 30px #0009}.auth h1 span{color:#f1d39b}
.auth-lead{max-width:520px;margin:18px 0 0;color:#d2dfcc;font-size:clamp(14px,1.4vw,16px);line-height:1.7}
.auth-features{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:560px}.auth-features li{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:#10261ccc;border:1px solid #ffffff1c;backdrop-filter:blur(6px)}.auth-features .ico{font-size:22px;flex:none;margin-top:2px}.auth-features b{display:block;color:#fff3d6;font-size:13px}.auth-features small{display:block;color:#a9c0ad;font-size:11.5px;line-height:1.4;margin-top:2px}
.auth-card{width:100%;padding:26px;border-radius:22px;background:linear-gradient(180deg,#1d4231f2,#15311ff2);border:1px solid #ffffff2e;border-top:2px solid #f1d39b88;box-shadow:0 30px 90px #050f0acc,inset 0 1px 0 #ffffff1f;backdrop-filter:blur(10px)}
.auth-card-title{margin-bottom:18px}.auth-card-title strong{display:block;font:600 24px/1.2 'Fraunces',Georgia,serif;color:#fff6df}.auth-card-title small{display:block;margin-top:4px;color:#a9c0ad;font-size:12px}
.auth-card input{font-size:16px;padding:14px}
.auth .primary-btn{margin-top:18px;padding:16px 18px;font-size:15px;border-radius:12px;background:linear-gradient(180deg,#f6dc9c,#e2bd69);box-shadow:0 10px 26px #e2bd6933,inset 0 -2px 0 #b98d3a;cursor:pointer;transition:transform .15s,box-shadow .15s}.auth .primary-btn:hover{transform:translateY(-1px);box-shadow:0 14px 30px #e2bd6955,inset 0 -2px 0 #b98d3a}.auth .primary-btn:disabled{opacity:.6;cursor:wait;transform:none}
.auth-download{display:flex;align-items:center;gap:12px;margin-top:14px;padding:14px;border-radius:16px;background:#10261ce6;border:1px solid #ffffff22}.auth-download.hidden{display:none}.auth-download>div{flex:1;min-width:0}.auth-download strong{display:block;color:#fff3d6;font-size:13px}.auth-download small{display:block;color:#a9c0ad;font-size:11px;margin-top:2px;line-height:1.4}
.auth-download-icon{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;font-size:22px;background:#1f4a35}
.download-btn{flex:none;padding:10px 14px;border-radius:10px;background:#2f6b45;border:1px solid #7bd09a66;color:#fff;font-weight:800;font-size:12px;text-decoration:none;white-space:nowrap;transition:background .15s}.download-btn:hover{background:#3a8255}
.auth-mobile-tip{display:none;margin:14px 2px 0;color:#c6d6c3;font-size:12px;line-height:1.5}
.auth-legal{text-align:center;color:#8fa995;font-size:11px;margin-top:22px;letter-spacing:.4px}
@media(max-width:900px){.auth-shell{grid-template-columns:minmax(0,1fr);max-width:520px;gap:22px}.auth-features{display:none}.auth-live{margin:18px 0 12px}.auth-lead{margin-top:12px}}
@media(max-width:760px){.auth{padding:16px;padding-top:calc(16px + env(safe-area-inset-top));background:linear-gradient(180deg,#0e2219f2 0%,#13291fe6 55%,#0e2219f7 100%)}.auth h1{font-size:clamp(32px,9vw,40px)}.auth-crest{width:44px;height:44px;font-size:28px;border-radius:13px}.auth-brand strong{font-size:16px}.auth-card{padding:20px;border-radius:18px}.auth-card-title strong{font-size:21px}.auth-mobile-tip{display:block}.auth-lead{font-size:14px}}
@media(pointer:coarse){.auth-mobile-tip{display:block}}
.client-status.ready{display:none}
@media(max-width:760px) and (max-height:720px){.auth-lead{display:none}.auth-live{margin:12px 0 10px}.auth h1{font-size:30px}}
.map-legend .dot.neighbor{background:#e8bc8d}.map-subtitle{margin:16px 0 8px;font-size:11px;letter-spacing:1.6px;color:#9fb7a5}.farm-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;max-height:220px;overflow:auto}.farm-entry{display:flex;align-items:center;gap:9px;text-align:left;padding:8px 10px;border-radius:10px;border:1px solid #ffffff22;background:#ffffff0d;color:inherit;cursor:pointer}.farm-entry:hover{background:#ffffff1a}.farm-entry>span:nth-child(2){flex:1;min-width:0}.farm-entry strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.farm-entry small{display:block;font-size:10px;color:#9fb7a5}.farm-entry .dot{width:8px;height:8px;border-radius:50%;background:#7a8c7e;flex:none}.farm-entry .dot.on{background:#7be08f}
.map-legend .dot.chest{background:#ffd34d}
