.screen-text{color:#2b2413;font:500 16px/1.4 Trebuchet MS,Segoe UI,ui-rounded,system-ui,sans-serif}#start,#planet-loader{z-index:20;box-sizing:border-box;background:#58b4f0;flex-direction:column;align-items:center;padding:2vh 16px 4vh;display:flex;position:fixed;inset:0;overflow:auto}#planet-loader{justify-content:center}#start-backdrop{width:100%;height:100%;position:fixed;inset:0}.logo{text-align:center;margin-bottom:1.5vh;position:relative}.logo h1{color:#fff;letter-spacing:3px;text-shadow:0 3px #4e9a2f,0 6px #3b7a22,0 9px #7a5230,0 14px 14px #00000059;margin:0;font-size:clamp(44px,9vh,84px);font-weight:900;line-height:1}.logo p{color:#fff;text-shadow:0 2px #00000059;margin:12px 0 0;font-size:18px;font-weight:700}.panel{box-sizing:border-box;background:#fff8e6;border-radius:18px;width:min(720px,100%);padding:20px 24px;position:relative;box-shadow:0 0 0 4px #7a5230,0 10px 0 4px #553619,0 20px 30px #00000059}.with-map .panel{width:min(1100px,100%)}.with-map .logo{display:none}.panel h2{color:#3b7a22;margin:0 0 12px;font-size:26px;font-weight:800}.btn{color:#fff;font:inherit;cursor:pointer;border:0;border-radius:12px;padding:10px 18px;font-weight:800;transition:transform 60ms}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:active:not(:disabled){transform:translateY(3px)}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible,input[type=text]:focus-visible,#preview-map:focus-visible,#map-canvas:focus-visible{outline-offset:2px;outline:4px solid #ffb300}.card:has(input:focus-visible){outline-offset:2px;outline:4px solid #ffb300}.btn-green{background:#58a832;box-shadow:0 4px #3b7a22}.btn-sand{color:#4a3a12;background:#e8d7a8;box-shadow:0 4px #bda66a}.btn-red{background:#d9503f;box-shadow:0 4px #a2382a}.btn-big{padding:13px 30px;font-size:20px}.actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-top:16px;display:flex}.actions small{color:#7c6a3c;margin-right:auto}.world-list{flex-direction:column;gap:10px;max-height:42vh;padding:4px;display:flex;overflow:auto}.world-row{background:#fff;border-radius:14px;align-items:center;gap:14px;padding:10px 12px;display:flex;box-shadow:0 2px #e2d4ac}.world-text{flex-direction:column;flex:1;min-width:0;display:flex}.world-text b{text-overflow:ellipsis;white-space:nowrap;font-size:18px;overflow:hidden}.world-text small{color:#7c6a3c}.world-icon{color:#fff;flex:none;justify-content:center;align-items:center;width:46px;height:46px;font-size:30px;font-weight:900;display:flex}.world-icon-infinite{background:linear-gradient(#6ac045 35%,#8a5a33 35%);border-radius:8px}.world-icon-planet{background:radial-gradient(circle at 30% 35%,#58a832 0 22%,#0000 23%),radial-gradient(circle at 70% 62%,#58a832 0 26%,#0000 27%),radial-gradient(at 50% 0,#fff 0 18%,#0000 19%),radial-gradient(at 50% 100%,#fff 0 14%,#0000 15%),#2f7ed8;border-radius:50%}.empty{margin:12px 0;font-size:18px}fieldset{border:0;min-width:0;margin:10px 0 0;padding:0}fieldset[hidden]{display:none}legend,.field>span{color:#5c4a1c;padding:0;font-weight:800}.field{align-items:center;gap:12px;margin-top:10px;display:flex}.field>span{flex:none}input[type=text]{min-width:0;color:inherit;font:inherit;background:#fff;border:2px solid #d9c690;border-radius:10px;flex:1;padding:8px 12px}.cards{gap:8px;margin-top:4px;display:flex}.card{cursor:pointer;background:#fff;border:3px solid #e2d4ac;border-radius:12px;flex-direction:column;flex:1 1 0;min-width:0;padding:7px 10px;display:flex;position:relative}.card input{opacity:0;position:absolute}.card small{color:#7c6a3c;font-size:12.5px;line-height:1.2}.card:has(input:checked){background:#eef9e2;border-color:#58a832}.preview-stage{aspect-ratio:2;background:#16335f;border-radius:12px;justify-content:center;align-items:center;width:min(100%,118vh);margin:0 auto;display:flex;position:relative;overflow:hidden}#preview-map{cursor:crosshair;width:100%;height:100%}#preview-map[hidden]{display:none}.preview-hint{margin-top:10px;font-weight:700}.preview-hint[hidden]{display:none}.progress{color:#fff;width:min(460px,80%)}#planet-loader .progress{color:#2b2413;width:100%}.progress-label{text-align:center;margin-bottom:8px;font-size:20px;font-weight:800}.progress-track{background:#0000004d;border-radius:11px;height:22px;overflow:hidden}.progress-bar{background:repeating-linear-gradient(90deg,#6ac045 0 18px,#58a832 18px 36px);border-radius:11px;width:0;height:100%;transition:width .18s}.dialog-shade{z-index:30;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:#fff8e6;border-radius:16px;width:min(440px,90%);padding:20px 24px;box-shadow:0 0 0 4px #7a5230,0 8px 0 4px #553619}.dialog h3{margin:0 0 8px;font-size:22px}.dialog p{margin:0}#map-screen{z-index:15;box-sizing:border-box;color:#fff;background:#0e1a30f0;flex-direction:column;gap:10px;padding:14px 18px;display:flex;position:fixed;inset:0}#map-screen[hidden]{display:none}#map-canvas{cursor:grab;border-radius:12px;flex:1;width:100%;min-height:0}#map-canvas:active{cursor:grabbing}.map-bar{justify-content:space-between;align-items:center;gap:16px;min-height:34px;display:flex}.map-bar h2{margin:0;font-size:24px}#map-biome{font-size:20px;font-weight:800}.map-help{color:#b6c6dd;font-size:14px}#hud .vitals{justify-content:space-between;align-items:flex-end;gap:24px;width:400px;display:flex;position:absolute;bottom:70px;left:50%;transform:translate(-50%)}.vitals .row{gap:1px;display:flex}.vitals .row.armour{justify-content:flex-end}.vitals img{width:22px;height:22px;image-rendering:pixelated;filter:drop-shadow(0 2px #00000073)}.vitals .row.armour img{width:20px;height:20px}#hotbar.survival{background:#3c2812b8;border-radius:12px;gap:4px;padding:5px;box-shadow:0 0 0 3px #7a5230,0 4px 0 3px #553619}.sv-slot{box-sizing:border-box;background:#fff8e62e;border-radius:8px;width:48px;height:48px;padding:6px;position:relative;box-shadow:inset 0 0 0 2px #fff8e640}.sv-slot.selected{background:#fff8e673;box-shadow:inset 0 0 0 3px #fff8e6,0 0 0 2px #ffb300}.sv-slot img{width:36px;height:36px;image-rendering:pixelated;pointer-events:none;display:block}.sv-slot .count{color:#fff;text-shadow:0 2px #2b2413,1px 0 #2b2413,-1px 0 #2b2413;pointer-events:none;font:800 14px/1 Trebuchet MS,Segoe UI,system-ui,sans-serif;position:absolute;bottom:1px;right:4px}.held-name{color:#fff8e6;opacity:0;background:#3c2812b8;border-radius:10px;padding:3px 12px;font:700 16px/1.3 Trebuchet MS,Segoe UI,system-ui,sans-serif;transition:opacity .4s;position:absolute;bottom:100px;left:50%;transform:translate(-50%)}.held-name.visible{opacity:1;transition:none}.ride-hint{color:#fff8e6;background:#3c2812c7;border-radius:12px;padding:6px 16px;font:700 17px/1.3 Trebuchet MS,Segoe UI,system-ui,sans-serif;position:absolute;top:22px;left:50%;transform:translate(-50%);box-shadow:0 0 0 3px #7a5230}.ride-hint[hidden]{display:none}.damage-flash{z-index:5;opacity:0;pointer-events:none;background:radial-gradient(#dc1e1426 30%,#c8140ab3 100%);transition:opacity .5s;position:fixed;inset:0}.damage-flash.on{opacity:1;transition:none}#inventory,#trade,#death{z-index:12;-webkit-user-select:none;user-select:none;background:#140c048c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#inventory[hidden],#trade[hidden],#death[hidden]{display:none}#death{z-index:14;text-align:center;background:radial-gradient(#50080499 20%,#280000e0 100%);flex-direction:column;gap:18px}#death h1{color:#fff;text-shadow:0 4px #a2382a,0 8px #6d1f16,0 14px 14px #00000080;margin:0;font-size:clamp(48px,10vh,92px);font-weight:900}#death p{color:#fff8e6;text-shadow:0 2px #00000080;margin:0;font-size:20px;font-weight:700}.inv-panel{gap:22px;width:auto;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);padding:18px 22px;display:flex}.inv-left{flex-direction:column;flex:none;display:flex}.inv-panel h2{margin:0 0 8px}.inv-top{align-items:flex-start;gap:18px;display:flex}.inv-armour{grid-template-columns:1fr;gap:4px;display:grid}.inv-grid{grid-template-columns:repeat(9,52px);gap:4px;display:grid}.inv-grid.armour-grid{grid-template-columns:52px}.inv-label{color:#7c6a3c;text-transform:uppercase;letter-spacing:1px;margin:12px 0 4px;font-size:13px;font-weight:800}.slot{box-sizing:border-box;cursor:pointer;background:#e8d7a8;border-radius:8px;width:52px;height:52px;padding:7px;position:relative;box-shadow:inset 0 3px #cdb97e,inset 0 0 0 2px #bda66a}.slot:hover{background:#f3e6bd}.slot.hot{background:#d7e8a0;box-shadow:inset 0 3px #bdd078,inset 0 0 0 2px #98b058}.slot img.icon{width:38px;height:38px;image-rendering:pixelated;pointer-events:none;display:block}.slot img.ghost{opacity:.22;filter:grayscale();width:38px;height:38px;image-rendering:pixelated;pointer-events:none;display:block}.slot .count{color:#fff;text-shadow:0 2px #2b2413,1px 0 #2b2413,-1px 0 #2b2413;pointer-events:none;font:800 15px/1 Trebuchet MS,Segoe UI,system-ui,sans-serif;position:absolute;bottom:2px;right:5px}.inv-right{flex-direction:column;width:330px;min-height:0;display:flex}.recipes[hidden],.chest-part[hidden]{display:none}.chest-part{flex-direction:column;gap:8px;display:flex}.inv-grid.chest-grid{grid-template-columns:repeat(6,52px);gap:3px}.recipes{flex-direction:column;gap:6px;min-height:0;padding:2px 6px 4px 2px;display:flex;overflow-y:auto}.recipe{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#fff;border:0;border-radius:12px;flex:none;align-items:center;gap:10px;padding:6px 10px;display:flex;box-shadow:0 3px #e2d4ac}.recipe:hover:not(.off){background:#eef9e2;box-shadow:0 3px #58a832}.recipe.off{box-shadow:none;cursor:default;background:#efe7cf}.recipe.off>img,.recipe.off .name{opacity:.45;filter:grayscale(.8)}.recipe>img{width:40px;height:40px;image-rendering:pixelated;flex:none}.recipe .text{flex-direction:column;gap:2px;min-width:0;display:flex}.recipe .name{font-size:16px;font-weight:800}.recipe .needs{color:#7c6a3c;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:13px;font-weight:700;display:flex}.recipe .needs span{align-items:center;gap:2px;display:inline-flex}.recipe .needs img{width:20px;height:20px;image-rendering:pixelated}.recipe .needs .lack{color:#b23a2b}.inv-cursor{z-index:40;pointer-events:none;width:40px;height:40px;position:fixed;transform:translate(-50%,-50%)}.inv-cursor img{width:40px;height:40px;image-rendering:pixelated}.inv-cursor .count{color:#fff;text-shadow:0 2px #2b2413,1px 0 #2b2413,-1px 0 #2b2413;font:800 15px/1 Trebuchet MS,Segoe UI,system-ui,sans-serif;position:absolute;bottom:-2px;right:-2px}.inv-tip{z-index:41;color:#fff8e6;pointer-events:none;background:#2b2413eb;border-radius:8px;padding:3px 10px;font:700 14px/1.3 Trebuchet MS,Segoe UI,system-ui,sans-serif;position:fixed}.inv-tip[hidden]{display:none}.inv-foot{color:#7c6a3c;margin-top:10px;font-size:13px;font-weight:700}body.building #crosshair,body.building .held-name{display:none}body.building #game{cursor:crosshair}#build-panel{z-index:8;-webkit-user-select:none;user-select:none;flex-direction:column;gap:8px;width:268px;max-height:calc(100vh - 100px);padding:14px 16px;display:flex;position:fixed;top:14px;left:14px;overflow-y:auto}#build-panel[hidden]{display:none}#build-panel h2{margin:0;font-size:22px}.build-top{justify-content:space-between;align-items:center;display:flex}.build-turns{gap:4px;display:flex}.build-tools{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.build-tool,.build-step{color:#4a3a12;font:inherit;cursor:pointer;background:#e8d7a8;border:0;border-radius:10px;padding:7px 4px;font-size:14px;font-weight:800;box-shadow:0 3px #bda66a}.build-tool.chosen{color:#fff;background:#58a832;box-shadow:0 3px #3b7a22}.build-step{width:32px;padding:3px 0;font-size:17px}.build-height{color:#4a3a12;align-items:center;gap:8px;font-weight:800;display:flex}.build-height[hidden],.build-warning[hidden],.build-status[hidden]{display:none}.build-height span:first-child{flex:1}.build-height .value{text-align:center;min-width:22px}#build-panel .inv-label{margin:0}.build-blocks{grid-template-columns:repeat(5,44px);gap:3px;max-height:138px;display:grid;overflow-y:auto}.build-block{box-sizing:border-box;cursor:pointer;background:#e8d7a8;border:0;border-radius:8px;width:44px;height:44px;padding:5px;position:relative;box-shadow:inset 0 3px #cdb97e,inset 0 0 0 2px #bda66a}.build-block.chosen{background:#d7e8a0;box-shadow:inset 0 0 0 3px #58a832}.build-block img{width:34px;height:34px;image-rendering:pixelated;pointer-events:none;display:block}.build-block .count{color:#fff;text-shadow:0 2px #2b2413,1px 0 #2b2413,-1px 0 #2b2413;pointer-events:none;font:800 13px/1 Trebuchet MS,Segoe UI,system-ui,sans-serif;position:absolute;bottom:1px;right:3px}.build-name{color:#4a3a12;font-size:14px;font-weight:800}.build-counts{color:#3b7a22;justify-content:space-between;font-size:15px;font-weight:800;display:flex}.build-counts .lack,.build-warning{color:#b23a2b}.build-warning{font-size:14px;font-weight:800}.build-status{color:#3b7a22;font-size:15px;font-weight:800}#build-panel .actions{gap:8px;margin:2px 0 0;display:flex}#build-panel .btn{flex:1;padding:9px 6px}.build-hint,.build-keys{color:#7c6a3c;font-size:12px;font-weight:700;line-height:1.3}.trade-panel{width:560px}.trade-panel .inv-right{width:100%}.trade-list{max-height:60vh;overflow-y:auto}.trade-gold{color:#8a6a10;margin:6px 0;font-weight:800}.trade-offer .text{flex:1}.trade-price{align-items:center;gap:4px;font-weight:800;display:inline-flex}.trade-price img{width:28px;height:28px;image-rendering:pixelated}.trade-offer .trade-buy.off{opacity:.45;cursor:default}.trade-message{min-height:22px;margin-top:6px;font-weight:800}.trade-message.lack{color:#b33a2a}.trade-message.ok{color:#3b7d1f}#help{z-index:40;background:#14100a8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#help[hidden]{display:none}.help-panel{color:#3a2c18;background:#f1e4c6;border-radius:12px;max-width:620px;max-height:90vh;padding:18px 26px;font:15px/1.4 system-ui,sans-serif;overflow:auto}.help-panel h2{margin:0 0 10px;font-size:22px}.help-panel dl{grid-template-columns:max-content 1fr;gap:3px 16px;margin:0 0 10px;display:grid}.help-panel dt{font-weight:700}.help-panel dd{margin:0}.help-panel p{margin:8px 0}#help-hint{z-index:5;color:#fff;text-shadow:0 1px 2px #000;pointer-events:none;font:13px system-ui,sans-serif;position:fixed;bottom:8px;left:10px}
