:root{--paper:#f4e6c8;--paper-hi:#fff4dc;--ink:#3b2614;--wood:#5a3b22;--wood-d:#3a2614;--gold:#c98a1a;--accent:#d9503e}*{box-sizing:border-box}html,body{background:#000;height:100%;margin:0;overflow:hidden}body{color:var(--ink);-webkit-user-select:none;user-select:none;font-family:Pixelify Sans,ui-monospace,monospace}#game{width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}img{image-rendering:pixelated}.panel{background:var(--paper);border:3px solid var(--wood);box-shadow:0 3px 0 var(--wood-d), inset 0 0 0 2px var(--paper-hi);border-radius:6px}.clock{min-width:210px;padding:8px 14px 9px;position:absolute;top:14px;left:14px}.clock .date{font-size:15px;font-weight:600}.clock .time{font-size:28px;font-weight:700;line-height:1.1}.clock .gold{color:var(--gold);text-shadow:1px 1px #fff4dc;font-size:18px;font-weight:700}.stamina{width:200px;padding:8px 12px;position:absolute;top:14px;right:14px}.stamina .label{margin-bottom:4px;font-size:14px;font-weight:600}.stamina .bar{border:2px solid var(--wood-d);background:#6b4a2b;border-radius:3px;height:14px;overflow:hidden}.stamina .bar i{height:100%;transition:width .25s;display:block}.stamina .bar i.ok{background:#6cc04a}.stamina .bar i.low{background:#e8b830}.stamina .bar i.crit{background:#d9503e}.bottom{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;bottom:14px;left:0;right:0}.bottom .row{align-items:stretch;gap:10px;display:flex}.prompt{color:#fff;text-shadow:1px 1px #000;background:#1e140ab8;border-radius:4px;padding:4px 12px;font-size:17px}.prompt b{color:#ffd34a}.item-label{color:#fff;text-shadow:1px 1px #000,-1px -1px #000;font-size:14px}.hotbar,.bag{gap:4px;padding:5px;display:flex}.bag{align-items:center;min-width:90px}.bag .empty{opacity:.6;padding:0 8px;font-size:13px}.slot{background:#e6d2a8;border:2px solid #b08f58;border-radius:4px;place-items:center;width:52px;height:52px;display:grid;position:relative}.slot.small{width:44px;height:44px}.slot.small img{width:34px;height:34px}.slot img{width:42px;height:42px}.slot.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);background:#fff4dc}.slot .key{opacity:.7;font-size:11px;position:absolute;top:0;left:3px}.slot .count{color:#fff;text-shadow:1px 1px #000,-1px -1px #000,1px -1px #000,-1px 1px #000;font-size:14px;font-weight:700;position:absolute;bottom:0;right:3px}.slot .water{background:#6b4a2b;border-radius:2px;height:4px;position:absolute;bottom:3px;left:5px;right:5px;overflow:hidden}.slot .water i{background:#4fa8ff;height:100%;display:block}.toasts{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:120px;left:50%;transform:translate(-50%)}.toast{padding:6px 14px;font-size:16px;transition:opacity .4s;animation:.2s ease-out pop}.toast.out{opacity:0}@keyframes pop{0%{opacity:0;transform:scale(.85)}}.help{color:#fff;opacity:.75;text-shadow:1px 1px #000;text-align:right;max-width:220px;font-size:12px;position:absolute;bottom:14px;right:14px}@media (width<=900px){.help{display:none}.help-modal .help{display:block}}.modal{pointer-events:auto;background:#00000059;place-items:center;display:grid;position:absolute;inset:0}.modal.hidden{display:none}.shop{width:min(660px,100vw - 32px);max-height:calc(100vh - 32px);padding:16px 20px;overflow-y:auto}.shop h3{text-transform:uppercase;letter-spacing:1px;opacity:.6;margin:10px 0 2px;font-size:14px}.shop-row .btns{justify-content:flex-end;gap:6px;min-width:132px;display:flex}.clock .weather{align-items:center;gap:4px;margin:1px 0 2px;font-size:13px;display:flex}.clock .weather img{width:21px;height:21px}.clock .weather .fc{opacity:.7;align-items:center;gap:3px;margin-left:8px;display:flex}.shop h2{margin:0;font-size:26px}.shop .sub{opacity:.8;margin:2px 0 12px;font-size:14px}.shop-row{border-top:2px dashed #d6bf90;grid-template-columns:44px 1fr auto auto auto;align-items:center;gap:10px;padding:6px 4px;display:grid}.shop-row img{width:42px;height:42px}.shop-row .info b{font-size:17px;display:block}.shop-row .info small{opacity:.75;font-size:12px}.shop-row .owned{opacity:.7;font-size:14px}.shop-row .price{color:var(--gold);text-align:right;min-width:52px;font-weight:700}.shop button{font:inherit;cursor:pointer;color:#fff;text-shadow:1px 1px #2f6e1a;background:#6cc04a;border:2px solid #2f6e1a;border-radius:4px;padding:4px 10px;font-size:14px;font-weight:600;box-shadow:0 2px #2f6e1a}.shop button:active{box-shadow:none;transform:translateY(2px)}.shop button:disabled{text-shadow:none;box-shadow:none;cursor:not-allowed;background:#b8a888;border-color:#8a7a5a}.shop-foot{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.shop-foot .gold{color:var(--gold);font-size:20px;font-weight:700}.shop button.close{background:var(--accent);text-shadow:1px 1px #8a2a1e;border-color:#8a2a1e;box-shadow:0 2px #8a2a1e}.roster{min-width:210px;padding:6px 12px 8px;font-size:14px;position:absolute;top:146px;left:14px}.roster.hidden{display:none}.roster .room{align-items:center;gap:6px;margin-bottom:4px;font-size:13px;display:flex}.roster .room b{letter-spacing:2px;color:var(--accent);font-size:17px}.roster .copy{pointer-events:auto;font:inherit;cursor:pointer;color:var(--ink);background:#fff4dc;border:2px solid #b08f58;border-radius:3px;padding:1px 6px;font-size:11px}.roster ul{margin:0;padding:0;list-style:none}.roster li{align-items:center;gap:6px;line-height:1.5;display:flex}.roster li i{border:2px solid var(--wood-d);border-radius:2px;width:10px;height:10px}.roster em{opacity:.6;font-size:12px;font-style:normal}.roster .zzz{color:#5a6ab0;font-weight:700}.tags{position:absolute;inset:0;overflow:hidden}.tag{color:#fff;white-space:nowrap;text-shadow:1px 1px #000;background:#1e140a99;border-radius:3px;padding:1px 6px;font-size:13px;position:absolute;top:0;left:0}.lobby{pointer-events:auto;background:radial-gradient(#0000 40%,#00000073);place-items:center;display:grid;position:absolute;inset:0}.lobby-card{text-align:center;width:min(380px,100vw - 32px);padding:22px 28px 18px}.lobby-card h1{color:#6b4226;text-shadow:2px 2px #fff4dc,4px 4px #c9a66b;margin:0;font-size:46px;line-height:1}.lobby-card h1 span{color:#4f9a35}.lobby-card .tagline{opacity:.75;margin:6px 0 16px;font-size:14px}.lobby-card label{text-align:left;margin-bottom:12px;font-size:13px;font-weight:600;display:block}.lobby-card input{width:100%;font:inherit;color:var(--ink);background:#fff8e8;border:2px solid #b08f58;border-radius:4px;outline:none;margin-top:4px;padding:6px 10px;font-size:18px;display:block}.lobby-card input:focus{border-color:var(--accent)}.lobby-actions{flex-direction:column;gap:8px;display:flex}.join-row{gap:8px;display:flex}.join-row input{text-transform:uppercase;letter-spacing:4px;text-align:center;margin:0}.lobby-card .status{min-height:20px;margin:12px 0 0;font-size:14px}.lobby-card .status.error{color:#b8321e}.btn{font:inherit;cursor:pointer;color:#fff;text-shadow:1px 1px #2f6e1a;background:#6cc04a;border:2px solid #2f6e1a;border-radius:4px;padding:8px 14px;font-size:17px;font-weight:600;box-shadow:0 3px #2f6e1a}.btn:active{transform:translateY(2px);box-shadow:0 1px #2f6e1a}.btn:disabled{opacity:.55;cursor:wait}.btn.join{flex:none}.btn.solo{text-shadow:1px 1px #6b4a2b;background:#c9a66b;border-color:#6b4a2b;box-shadow:0 3px #6b4a2b}.save-pick{text-align:left;flex-direction:column;gap:4px;margin-top:12px;font-size:13px;display:flex}.save-pick label{cursor:pointer;align-items:center;gap:8px;margin:0;font-weight:400;display:flex}.save-pick input{width:auto;accent-color:var(--accent);margin:0}.save-pick small{opacity:.65}.link{font:inherit;color:#6b4226;cursor:pointer;background:0 0;border:none;margin-top:4px;font-size:13px;text-decoration:underline}.help-modal{z-index:2}.help,.menu-help{text-align:left}.help{width:min(520px,100vw - 32px);max-height:calc(100vh - 32px);padding:16px 22px;overflow-y:auto}.help h2,.menu-help h2{margin:0 0 8px;font-size:22px}.help-grid{grid-template-columns:1fr 1fr;gap:4px 14px;margin-bottom:10px;font-size:13px;display:grid}.help-grid div{flex-direction:column;display:flex}.help-grid span{opacity:.75}.help-steps{margin:0 0 8px;padding-left:20px;font-size:14px;line-height:1.45}.help-goal{opacity:.8;margin:0 0 10px;font-size:13px}.menu{width:min(420px,100vw - 32px)}.menu h2{text-align:center;margin-bottom:10px}.menu-buttons{flex-direction:column;gap:8px;display:flex}.menu-buttons button{padding:8px;font-size:16px}.menu-buttons .quit{background:var(--accent);text-shadow:1px 1px #8a2a1e;border-color:#8a2a1e;box-shadow:0 2px #8a2a1e}.menu-help{border-top:2px dashed #d6bf90;margin-top:12px;padding-top:10px}.season{text-align:center}.season-total{color:var(--gold);text-shadow:2px 2px #fff4dc;font-size:44px;font-weight:700;line-height:1.1}.season-rank{margin:4px 0 12px;font-size:18px}.season-rank b{color:var(--accent)}.season-table{border-collapse:collapse;width:100%;font-size:14px}.season-table th{text-transform:uppercase;opacity:.6;padding:4px;font-size:12px}.season-table td{border-top:2px dashed #d6bf90;padding:5px 4px}.season-table td:first-child{text-align:left;font-weight:600}.season .shop-foot .quit{text-shadow:1px 1px #6b4a2b;background:#c9a66b;border-color:#6b4a2b;box-shadow:0 2px #6b4a2b}.fade.interactive{pointer-events:auto}.fade .btn{margin-top:16px}.fade{opacity:0;color:#f4e6c8;text-align:center;background:#0b0b14;place-items:center;transition:opacity .6s;display:grid;position:absolute;inset:0}.fade.show{opacity:1}.fade h1{margin:0 0 12px;font-size:44px}.fade p{opacity:.9;margin:4px 0;font-size:18px}
