:root{--ink: #1d1f27;--panel: #1f2233;--panel-2: #2b2f47;--line: #454b6b;--text: #f4efe2;--dim: #a9aec6;--coin: #ffcf3f;--gem: #2fd6b5;--key: #f5a623;--red: #e5484d;--green: #3fbf6b;--food: #3aa655;--service: #2f7fd6;--recreation: #e0a800;--retail: #8b4fc9;--creative: #e8552d;--residential: #7a8ea8;--lobby: #b08d57;--edge: 0 3px 0 var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#7fb0e0;color:var(--text);font:700 14px/1.35 Courier New,ui-monospace,monospace;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none}#stage{position:fixed;inset:0}#game{display:block;image-rendering:pixelated}#ui{position:fixed;inset:0;pointer-events:none}#ui>*{pointer-events:auto}button{font:inherit;color:inherit;cursor:pointer;border:2px solid var(--ink);border-radius:6px;background:var(--panel-2);box-shadow:var(--edge);touch-action:manipulation}button:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}button:disabled{opacity:.45;cursor:default}.ico{display:inline-block;width:12px;height:12px;margin-right:5px;vertical-align:-1px;border:2px solid var(--ink);background:var(--dim)}.ico.coin{background:var(--coin);border-radius:50%}.ico.gem{background:var(--gem);transform:rotate(45deg) scale(.85)}.ico.key{background:var(--key);clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);border:0;width:14px}.ico.floors{background:repeating-linear-gradient(var(--text) 0 2px,var(--ink) 2px 4px)}.ico.people{background:#f6d3b3;border-radius:50% 50% 2px 2px}.ico.menu{background:repeating-linear-gradient(var(--text) 0 2px,transparent 2px 4px);border:0}.ico.vip{background:var(--coin);clip-path:polygon(50% 0,62% 36%,100% 36%,69% 58%,80% 100%,50% 74%,20% 100%,31% 58%,0 36%,38% 36%);border:0;width:15px;height:15px}.ico.vip.big{width:30px;height:30px}.ico.feed{background:var(--service);border-radius:3px 3px 3px 0}.ico.box{background:#c99a5b}.ico.auto{background:var(--green);border-radius:50%}.top{position:absolute;top:0;left:0;right:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;padding:calc(6px + env(safe-area-inset-top)) 8px 6px;background:linear-gradient(var(--panel),rgba(31,34,51,.82));border-bottom:2px solid var(--ink)}.stat{display:flex;align-items:center;padding:3px 9px;background:var(--panel-2);border:2px solid var(--ink);border-radius:999px;font-variant-numeric:tabular-nums;white-space:nowrap}.banner{position:absolute;left:50%;top:calc(52px + env(safe-area-inset-top));transform:translate(-50%);max-width:94vw;display:flex;align-items:center;gap:10px;padding:3px 4px 3px 12px;background:var(--panel);border:2px solid var(--ink);border-left:6px solid var(--gem);border-radius:999px;box-shadow:var(--edge);font-size:12px;white-space:nowrap}.banner.gold{border-left-color:var(--coin);background:#4a3a12}.banner button{min-height:0;padding:2px 10px;border-radius:999px;flex:none}.toasts{position:absolute;right:8px;top:calc(50px + env(safe-area-inset-top));max-width:min(46vw,300px,calc(50% - 160px));display:flex;flex-direction:column;align-items:flex-end;gap:4px;pointer-events:none!important}.toast{padding:4px 9px;background:#1d1f279e;border:2px solid rgba(29,31,39,.7);border-radius:8px;text-align:right;font-size:12px;animation:pop .18s ease-out}@keyframes pop{0%{transform:translate(8px);opacity:0}}.cab{position:absolute;right:10px;bottom:calc(78px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none!important}.cab>*{pointer-events:auto}.cab-status{padding:4px 9px;background:#1d1f27e6;border:2px solid var(--ink);border-radius:8px;font-size:12px}.cab-status b{color:var(--coin)}.cab-btn{width:58px;height:52px;font-size:22px;background:var(--service)}.dock{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--panel);border-top:2px solid var(--ink)}.dock button{position:relative;isolation:isolate;min-height:48px;padding:4px 2px;font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.dock button .ico{margin:0}.dock button.on{background:#23603a}.badge{position:absolute;top:-7px;right:-3px;min-width:20px;padding:0 5px;background:var(--red);border:2px solid var(--ink);border-radius:999px;font-style:normal}.me{display:flex;align-items:center;gap:6px;padding:0 10px 0 6px;background:var(--lobby);border-radius:999px;font-weight:700}.zoom{position:absolute;left:10px;bottom:calc(78px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:6px}.zoom button{width:44px;height:40px;font-size:20px;background:var(--panel-2)}.corner{position:absolute;top:calc(5px + env(safe-area-inset-top));right:8px;display:flex;gap:6px}.corner button{position:relative;width:36px;height:32px;min-height:0;padding:0;display:flex;align-items:center;justify-content:center;background:var(--panel-2)}.corner button .ico{margin:0}.corner button.has{border-color:var(--coin)}.corner button.off .ico{opacity:.35}.corner button.off:after{content:"";position:absolute;left:6px;right:6px;top:50%;height:3px;margin-top:-2px;background:var(--red);border:1px solid var(--ink);transform:rotate(-35deg)}.count{position:absolute;top:-6px;right:-7px;min-width:18px;padding:1px 4px;background:var(--red);color:#fff8ea;border:2px solid var(--ink);border-radius:999px;font-size:10px;font-weight:700;line-height:1.2;text-align:center;font-variant-numeric:tabular-nums}.dock button.main{background:var(--panel-2);border-color:var(--coin)}@media(max-width:760px){.corner{top:calc(100% + 6px)}}.dock .count{top:3px;right:6px}.scrim.drop{align-items:flex-start;justify-content:flex-end;padding:calc(46px + env(safe-area-inset-top)) 8px 0;background:none}.scrim.drop .modal{width:min(100%,290px);max-height:none;border-bottom:2px solid var(--ink);border-radius:10px;box-shadow:0 4px 0 var(--ink);animation:none}.scrim.drop .body{padding:8px;overflow:visible}.news-row{display:flex;align-items:center;gap:8px;width:100%;min-height:0;margin:0 0 5px;padding:5px 7px;text-align:left;font-size:12px;background:var(--panel-2)}.news-row:disabled{opacity:1}.news-row .tile,.news-row .ico{flex:none;margin:0}.scrim{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;background:#0a0c188c}.modal{width:min(100%,520px);max-height:82%;display:flex;flex-direction:column;background:var(--panel);border:2px solid var(--ink);border-bottom:0;border-radius:14px 14px 0 0;animation:rise .18s ease-out}@keyframes rise{0%{transform:translateY(24px);opacity:0}}@media(min-width:700px){.scrim{align-items:center}.modal{border-bottom:2px solid var(--ink);border-radius:14px}}.modal header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:2px solid var(--ink);border-radius:12px 12px 0 0;background:var(--panel-2)}.modal header h2{margin:0;font-size:18px}.modal header span{font-size:12px;opacity:.9}.modal header.k-food,.pick.k-food{background:var(--food)}.modal header.k-service,.pick.k-service{background:var(--service)}.modal header.k-recreation,.pick.k-recreation{background:var(--recreation);color:var(--ink)}.modal header.k-retail,.pick.k-retail{background:var(--retail)}.modal header.k-creative,.pick.k-creative{background:var(--creative)}.modal header.k-residential,.pick.k-residential{background:var(--residential)}.modal header.k-lobby{background:var(--lobby)}.x{flex:none;width:40px;height:40px;font-size:22px;line-height:1;color:var(--text);background:var(--ink)}.body{padding:10px 12px calc(14px + env(safe-area-inset-bottom));overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch}.body h3{margin:12px 0 6px;font-size:13px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em}.body p{margin:6px 0}.body ul{margin:4px 0;padding-left:18px}.dim{color:var(--dim);font-size:12px}.big{font-size:24px;color:var(--coin)}.star{color:var(--coin)}.row{display:flex;align-items:center;gap:8px;padding:7px 8px;margin:5px 0;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px}.grow{flex:1;min-width:0}.avatar{flex:none;width:30px;height:63px;image-rendering:pixelated}.skills{display:flex;gap:3px;margin-top:3px}.sk{padding:0 4px;border-radius:4px;font-size:11px;color:#fff;opacity:.75}.sk.hl{opacity:1;outline:2px solid var(--text)}.sk.food{background:var(--food)}.sk.service{background:var(--service)}.sk.recreation{background:var(--recreation);color:var(--ink)}.sk.retail{background:var(--retail)}.sk.creative{background:var(--creative)}.btn{display:inline-block;min-height:44px;padding:8px 14px;margin:6px 6px 0 0;background:var(--service)}.btn.small{flex:none;min-height:40px;margin:0;padding:6px 10px;font-size:12px}.btn.gem{background:#14705f}.btn.gold{background:#a8720e}.btn.danger{background:#8f2b2f}.bar{height:10px;margin:4px 0 2px;background:var(--ink);border:2px solid var(--ink);border-radius:4px;overflow:hidden}.bar span{display:block;height:100%;background:var(--green)}.bar.RESTOCKING span{background:var(--service)}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.pick{display:flex;flex-direction:column;gap:4px;min-height:84px;padding:10px;text-align:left}.pick b{font-size:16px}.pick span{font-size:12px;font-weight:400}.tabs{display:flex;gap:4px;flex-wrap:wrap}.tabs button{min-height:40px;padding:4px 9px;font-size:12px;background:var(--panel)}.tabs button.on{background:var(--service)}.post{padding:8px 10px;margin:6px 0;background:var(--panel-2);border:2px solid var(--ink);border-radius:10px 10px 10px 0;font-weight:400}.stats{list-style:none;padding:0!important}.stats li{display:flex;justify-content:space-between;padding:5px 2px;border-bottom:1px dashed var(--line)}@media(prefers-reduced-motion:reduce){.toast,.modal{animation:none}}@media(min-width:1300px)and (min-height:800px){#ui{zoom:1.5}}@media(min-width:2200px)and (min-height:1100px){#ui{zoom:2}}.scrim.room{background:#0a0c182e}.scrim.room .modal{max-height:60%;pointer-events:auto}@media(min-width:900px){.scrim.room{bottom:calc(66px + env(safe-area-inset-bottom));align-items:stretch;justify-content:flex-end;padding:70px 12px 12px}.scrim.room .modal{width:416px;max-height:none}}.here{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:6px 8px;background:var(--panel-2);border:2px solid var(--line);border-radius:8px;font-size:13px}.here img,.me img{height:30px;image-rendering:pixelated}:root{--garden: #3aa655;--pen: #c98a2b;--kitchen: #e8552d;--workshop: #5b6f8f;--hp: #e5484d;--xp: #4aa3ff}.modal header.k-garden,.pick.k-garden{background:var(--garden)}.modal header.k-pen,.pick.k-pen{background:var(--pen)}.modal header.k-kitchen,.pick.k-kitchen{background:var(--kitchen)}.modal header.k-workshop,.pick.k-workshop{background:var(--workshop)}.banner+.banner{top:calc(86px + env(safe-area-inset-top))}.banner.fight{border-left-color:var(--hp);background:#4a1c20}.stat.gauge{gap:6px}.stat.gauge .bar{width:54px;height:9px;margin:0}.bar.hp span{background:var(--hp)}.bar.xp span{background:var(--xp)}.bar.enemy span{background:#f08a2c}.tile{flex:none;width:32px;height:32px;padding:3px;margin-right:4px;vertical-align:middle;background:#ffffff1a;border-radius:7px;image-rendering:pixelated}.item{display:inline-flex;align-items:center;margin:2px 8px 2px 0;white-space:nowrap}.item .tile{width:22px;height:22px;padding:2px;border-radius:5px}.pix{flex:none;width:16px;height:16px;margin-right:4px;vertical-align:-3px;image-rendering:pixelated}.pix.big{width:24px;height:24px;margin-right:0;vertical-align:-6px}.amt{white-space:nowrap}.vitals{display:inline-flex;flex:none;gap:8px;font-variant-numeric:tabular-nums}.makes{display:flex;flex-wrap:wrap}.stat .pix{vertical-align:middle}small{font-weight:400;font-size:12px;color:var(--dim)}em{font-style:normal;font-size:12px;color:var(--coin)}.warn{color:#ffb4a8}.slot{padding:8px;margin:6px 0;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px}.slot.ready{border-color:var(--coin)}.slot.locked{background:transparent;border-style:dashed;border-color:var(--line)}.row-line{display:flex;align-items:center;gap:8px}.recipe{display:flex;align-items:center;width:100%;min-height:46px;margin-top:6px;padding:6px 8px;text-align:left;background:var(--panel)}.pick span+span{opacity:.85}.stats{list-style:none;padding:0}.slider{display:flex;align-items:center;gap:10px;margin:6px 0}.slider input{flex:1;min-width:0;height:28px;accent-color:var(--coin);touch-action:pan-x}.slider b{width:44px;text-align:right;font-variant-numeric:tabular-nums}.new-tag{position:absolute;top:4px;right:4px;z-index:1;padding:1px 5px;background:var(--coin);color:var(--ink);border:2px solid var(--ink);border-radius:4px;box-shadow:0 2px 0 var(--ink);font-size:10px;font-weight:700;line-height:1.2;letter-spacing:1px;pointer-events:none;animation:new-hop .9s steps(2,jump-none) infinite}.new-tag.dot{top:-5px;right:-3px;min-width:16px;padding:1px 3px;letter-spacing:0;text-align:center}.pick,.tabs button,.recipes .recipe{position:relative}@keyframes new-hop{0%{transform:translateY(0)}to{transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.new-tag{animation:none}}.duel .bar span{transition:width .25s ease-out}.scrim.atlas{animation:fade-in .15s ease-out both}.scrim.atlas.closing{animation:fade-out .12s .28s ease-in both}.scrim.atlas .modal{position:relative;width:min(100%,880px);max-height:94%;overflow:hidden;animation:none}.scrim.atlas .body{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.pane{display:flex;flex-direction:column;min-width:0;min-height:316px}.pane h3{margin-top:0}.pane p{margin:0 0 6px}.doors{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}.doors i{position:absolute;top:0;bottom:0;width:50.5%;background:linear-gradient(90deg,rgba(255,255,255,.18) 0 3px,transparent 3px),repeating-linear-gradient(90deg,#8b93a6 0 22px,#7c8497 22px 24px);border:2px solid var(--ink);will-change:transform;animation:.42s .1s cubic-bezier(.6,0,.3,1) both}.doors .l{left:0;animation-name:door-left-open}.doors .r{right:0;animation-name:door-right-open}.closing .doors i{animation-duration:.28s;animation-delay:0s}.closing .doors .l{animation-name:door-left-shut}.closing .doors .r{animation-name:door-right-shut}@keyframes door-left-open{0%{transform:translate(0)}to{transform:translate(-101%)}}@keyframes door-right-open{0%{transform:translate(0)}to{transform:translate(101%)}}@keyframes door-left-shut{0%{transform:translate(-101%)}to{transform:translate(0)}}@keyframes door-right-shut{0%{transform:translate(101%)}to{transform:translate(0)}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes doors-fade-open{0%{opacity:1}to{opacity:0}}@keyframes doors-fade-shut{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.doors .l,.doors .r{animation-name:doors-fade-open}.closing .doors .l,.closing .doors .r{animation-name:doors-fade-shut}}.eta{display:flex;align-items:center;gap:8px;margin:4px 0}.eta .bar{flex:1;margin:0}.eta span{flex:none;font-size:12px;color:var(--dim);font-variant-numeric:tabular-nums}.foes{display:flex;flex-direction:column;gap:5px;margin:4px 0 8px}.foe{display:flex;align-items:center;gap:8px;padding:3px 8px 3px 6px;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px;line-height:1.2}.foe .creature{width:34px}.facts{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px}.go{display:flex;align-items:center;gap:8px;margin-top:auto}.worldmap{position:relative;min-height:210px;background:radial-gradient(circle at 20% 70%,rgba(58,166,85,.5) 0 18%,transparent 19%),radial-gradient(circle at 80% 30%,rgba(111,118,135,.5) 0 20%,transparent 21%),radial-gradient(circle at 55% 85%,rgba(74,163,255,.35) 0 16%,transparent 17%),#cdbf9c;border:2px solid var(--ink);border-radius:8px;overflow:hidden}.worldmap svg{position:absolute;inset:0;width:100%;height:100%}.route{stroke:#6b5a3a;stroke-width:.7;stroke-dasharray:2 1.5;vector-effect:non-scaling-stroke;stroke-width:2px}.route.shut{stroke:#6b5a3a4d}.route.on{stroke:var(--hp);stroke-dasharray:none}.node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;padding:0;background:none;border:0;box-shadow:none;color:var(--ink);font-size:11px;line-height:1.1;text-align:center}.node:active{transform:translate(-50%,-50%);box-shadow:none}.node i{display:grid;place-items:center;width:38px;height:38px;background:#f4efe2;border:2px solid var(--ink);border-radius:50%;box-shadow:var(--edge)}.node span{max-width:90px;padding:0 3px;background:#f4efe2d9;border-radius:3px}.node.shut i{background:#b9bccb}.node.shut i img{filter:grayscale(1);opacity:.55}.node .lv{display:flex;align-items:center;margin-top:-9px;padding:0 5px 0 3px;background:var(--ink);border-radius:999px;color:var(--text);font-size:10px}.node .lv .pix{width:10px;height:10px;margin-right:2px;vertical-align:0}.node.on i{background:var(--coin);outline:3px solid var(--text)}.node.away i{background:#ff9a9d;animation:pulse .9s ease-in-out infinite alternate}.node.home i{border-radius:8px;background:var(--lobby)}@keyframes pulse{to{transform:scale(1.25)}}.loot{margin:2px 0}.creature{flex:none;width:48px;image-rendering:pixelated}.creature.big{width:72px}.creature.rage{filter:drop-shadow(0 0 4px var(--hp)) saturate(1.6)}.duel{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0}.side{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;min-height:112px;padding:6px;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px;text-align:center}.side .bar{width:100%}.side.quiet{justify-content:center}.fighter{height:56px;image-rendering:pixelated}.log{min-height:54px;padding:6px 8px;background:var(--ink);border-radius:6px;font-size:12px;font-weight:400}.log div:last-child{color:var(--coin);font-weight:700}.eats{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto}.tech{display:grid;grid-template-columns:auto minmax(220px,1fr);gap:8px 18px;align-items:start;min-height:226px}.tech-side{display:flex;justify-content:center;min-width:0}.tech-tree{position:relative;flex:none}.tech-tree svg{position:absolute;inset:0}.tech-tree path{fill:none;stroke:var(--dim);stroke-width:2;opacity:.5}.tech-tree path.lit{stroke:#2fd6b5;opacity:1}.tech-node{position:absolute;width:52px;height:52px;min-height:0;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px}.tech-node .tile{width:36px;height:36px;margin:0}.tech-node.shut .tile,.tech-node.ready .tile{opacity:.45}.tech-node.ready{border-color:#2fd6b5}.tech-node.known{border-color:#58c260}.tech-node.picked{outline:3px solid var(--gold, #ffcf3f);outline-offset:1px}.tech-lock{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);pointer-events:none}.tech-lock .ico{margin:0}.tech-price{position:absolute;left:0;right:0;bottom:-2px;font-size:10px;line-height:1;text-align:center;pointer-events:none}.tech-card .tile{width:40px;height:40px}.tech-card .good{color:#58c260}@media(max-width:560px){.tech{grid-template-columns:1fr}}.tech-name{font-size:16px}.tech-needs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:6px 0}.tech-needs .item.lack{color:var(--coin)}.tech-info{margin:6px 0;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px}.tech-info h4{margin:0;padding:3px 8px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--dim);border-bottom:2px solid var(--ink)}.tech-stats{display:grid;grid-template-columns:auto minmax(60px,1fr) auto;gap:3px 10px;align-items:center;padding:6px 8px;font-size:12px}.tech-stats>span{text-align:right;color:var(--dim)}.tech-stats .bar{margin:0}.tech-card .btn{flex:none;width:auto}.tech-about{min-height:2.9em}.tech-needs{min-height:70px;align-content:flex-start}.tech-act{min-height:40px;margin:0;display:flex;align-items:center}.set-page{margin-top:10px}.set-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 18px;align-items:start}.set-grid h3:first-child{margin-top:2px}.set-row,.set-card,.set-level{display:flex;align-items:center;gap:10px;margin:0 0 6px;padding:8px 10px;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px;box-shadow:var(--edge)}.set-row{min-height:56px}.set-row small,.set-card small,.set-level small{color:var(--dim)}.set-row .pix,.set-card .pix,.set-level .pix,.set-row .btn{flex:none;margin:0}.set-row .slider{flex:0 1 190px;margin:0}.set-credit{font-size:11px}.switch{flex:none;display:flex;align-items:center;gap:7px;min-height:36px;padding:4px 9px 4px 5px;font-size:12px;background:var(--panel)}.switch i{position:relative;width:34px;height:18px;background:var(--ink);border-radius:4px}.switch i:after{content:"";position:absolute;top:3px;left:3px;width:12px;height:12px;background:var(--dim);border-radius:2px;transition:left .12s}.switch.on i{background:#1f6b3a}.switch.on i:after{left:19px;background:var(--green)}.switch span{width:22px;text-align:left}.set-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.set-cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}.set-card{min-height:68px;font-size:13px}.set-card.fact b{font-size:18px;color:var(--coin);font-variant-numeric:tabular-nums}.set-level .bar{margin:5px 0 0}@media(max-width:560px){.set-cards,.set-cards.three{grid-template-columns:1fr 1fr}.set-card{font-size:11px}}@media(prefers-reduced-motion:reduce){.switch i:after{transition:none}}.wing{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.wing.left{justify-content:flex-end}.dock button.open{background:var(--service);border-color:var(--text)}.scrim.dockmenu{bottom:calc(66px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);gap:6px;align-items:end;padding:0 8px 6px;background:none;animation:none}#ui>.scrim.dockmenu,#ui>.scrim.room{pointer-events:none}.scrim.dockmenu .modal{grid-column:var(--dock-column);position:relative;width:auto;min-width:0;height:372px;max-height:calc(100% - 56px);overflow:hidden;border-bottom:2px solid var(--ink);border-radius:10px;box-shadow:0 4px 0 var(--ink);pointer-events:auto}.scrim.dockmenu.closing .modal{animation:fade-out .12s .28s ease-in both}@media(max-width:900px){.scrim.dockmenu .modal{grid-column:1 / -1}}.modal header.mini{gap:6px;padding:5px 6px 5px 8px;border-radius:8px 8px 0 0}.modal header.mini h2{flex:1;min-width:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal header.mini .x{width:28px;height:28px;min-height:0;padding:0;font-size:18px}.modal header.mini .pix{margin:0}.scrim.dockmenu .body{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;padding:8px;overflow:hidden;font-size:12px}.scrim.dockmenu .body p{margin:0}.scrim.dockmenu .tabs{flex-wrap:nowrap}.scrim.dockmenu .tabs button{flex:1;min-width:0;min-height:30px;padding:2px 4px;font-size:11px}.scrim.dockmenu .btn{flex:none;margin:0}.mini-line{min-height:18px;font-size:12px}.slots{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.slots button,.slots i{position:relative;height:40px;min-height:0;padding:0;display:grid;place-items:center;background:var(--panel-2);border:2px solid var(--ink);border-radius:6px}.slots i{opacity:.4}.slots .tile{width:28px;height:28px;margin:0;padding:0;background:none}.slots b{position:absolute;right:2px;bottom:0;font-size:10px;line-height:1.1;text-shadow:1px 0 var(--ink),-1px 0 var(--ink),0 1px var(--ink),0 -1px var(--ink)}.slots button.on{border-color:var(--coin);background:#4a4420}.slots .faded .tile{opacity:.35}.pager.mini{min-height:24px;margin:0;gap:8px}.pager.mini button{width:28px;height:22px;min-height:0;padding:0;line-height:1}.slot-info{display:flex;align-items:center;gap:6px;min-height:56px;margin-top:auto;padding:6px 8px;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px}.slot-info.tall{flex-direction:column;align-items:stretch;justify-content:center;min-height:84px}.slot-info .acts{display:flex;gap:6px}.slot-info .btn.small{min-height:32px;padding:4px 8px}.job{padding:6px 8px;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px;min-height:84px}.job small{display:block}.scrim.dockmenu .tech-side{flex:1;align-items:center}.scrim.dockmenu .tech-card{flex:1;display:flex;flex-direction:column;gap:6px;min-height:0}.scrim.dockmenu .tech-about{min-height:62px;line-height:1.25}.scrim.dockmenu .tech-needs{display:grid;grid-template-columns:1fr 1fr;gap:4px;min-height:68px;margin:0;align-content:start}.need{display:flex;align-items:center;min-width:0;font-size:10px;line-height:1.15}.need .tile{width:26px;height:26px}.need.lack b{color:var(--coin)}.scrim.dockmenu .tech-info{margin:0}.scrim.dockmenu .tech-info h4{font-size:9px}.scrim.dockmenu .tech-stats{padding:4px 8px;gap:1px 8px;font-size:11px}.scrim.dockmenu .tech-act{margin-top:auto;gap:6px;font-size:10px;line-height:1.15}.scrim.dockmenu.atlas .modal{width:auto;max-height:calc(100% - 56px)}.scrim.dockmenu.atlas .body{display:flex}.scrim.dockmenu .worldmap{flex:1;min-height:0}.scrim.dockmenu .node i{width:30px;height:30px}.scrim.dockmenu .node i .pix{width:18px;height:18px}.scrim.dockmenu .node span:not(.new-tag){display:none}.scrim.dockmenu .node .new-tag{top:-8px;right:-14px}.scrim.dockmenu .blurb{min-height:45px}.scrim.dockmenu .loot{display:flex;align-items:center;gap:2px;margin:0;min-height:28px}.scrim.dockmenu .loot .tile{width:26px;height:26px}.scrim.dockmenu .loot small{margin-left:auto}.got{position:relative}.got b{position:absolute;right:4px;bottom:-4px;font-size:10px}.scrim.dockmenu .foes{margin:0;gap:4px}.scrim.dockmenu .foe{padding:2px 6px}.scrim.dockmenu .foe .creature{width:28px}.scrim.dockmenu .vitals{font-size:11px}.scrim.dockmenu .eta,.scrim.dockmenu .duel{margin:0}.scrim.dockmenu .duel{gap:6px}.scrim.dockmenu .side{min-height:104px;padding:4px;font-size:11px}.scrim.dockmenu .fighter{height:40px}.scrim.dockmenu .creature.big{width:48px}.scrim.dockmenu .log{min-height:40px;padding:4px 6px;font-size:10px}.scrim.dockmenu .eats{gap:4px}.scrim.dockmenu .eats .btn{min-height:30px;padding:2px 6px;font-size:11px}.scrim.dockmenu .eats .tile{width:20px;height:20px;padding:0;background:none}.slot-info{flex:none;min-height:74px}.slot-info>span{min-width:0}.slot-info.tall{min-height:104px;padding:3px 8px;gap:2px}.uses{display:block;font-size:11px;line-height:1.15;color:var(--gem);line-height:1.2}.coach{position:absolute;top:calc(54px + env(safe-area-inset-top));left:50%;transform:translate(-50%);width:min(94%,400px);padding:8px 10px;background:var(--panel);border:2px solid var(--coin);border-radius:10px;box-shadow:0 4px 0 var(--ink);font-size:13px}.coach-head{display:flex;justify-content:space-between;align-items:baseline;color:var(--coin)}.coach-head small{color:var(--dim)}.coach p{min-height:3.9em;margin:4px 0 6px;font-weight:400}.coach-acts{display:flex;align-items:center;justify-content:space-between}.coach-acts .btn{margin:0 0 0 auto}.coach-skip{padding:2px 4px;min-height:0;font-size:11px;color:var(--dim);background:none;border:0;box-shadow:none;text-decoration:underline}.dock button.spot,.corner.spot,.top.spot .wing,.top.spot .me{outline:3px solid var(--coin);outline-offset:2px;border-radius:8px;animation:spot .7s ease-in-out infinite alternate}@keyframes spot{to{outline-color:transparent}}@media(prefers-reduced-motion:reduce){.dock button.spot,.corner.spot,.top.spot .wing,.top.spot .me{animation:none}}.start-go{margin-top:8px}.scrim.wide{align-items:center;padding:8px}.scrim.wide .modal{width:min(100%,860px);height:min(96%,510px);max-height:none;border-bottom:2px solid var(--ink);border-radius:14px}.scrim.wide .body{flex:1;min-height:0;padding-bottom:12px}.scrim.wide .body.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:4px 18px;align-items:start}.body.cols h3:first-child{margin-top:2px}.body.cols ul{margin:0;padding-left:18px;font-size:13px}.body.cols .stats{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.line{margin:6px 0}.tabs{margin-bottom:6px}.tabs button{min-height:34px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:6px 10px;align-content:start;min-height:226px}.cards>*{margin:0}.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;font-size:12px;color:var(--dim)}.pager .btn{min-width:44px;font-size:18px;line-height:1}.scrim.wide .grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));min-height:226px;align-content:start}.recipes{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:5px}.recipes .recipe{flex-direction:column;align-items:center;gap:2px;min-width:0;min-height:0;margin:0;padding:5px 4px;text-align:center}.recipes .recipe .tile{margin:0}.recipes .recipe span{display:flex;flex-direction:column;min-width:0;max-width:100%;font-size:12px;line-height:1.2}.recipes .recipe small{font-size:10px;font-weight:400;opacity:.85}.scrim.room .slot{padding:6px;margin:5px 0}.scrim.room .slot .row-line .tile{width:24px;height:24px;padding:2px}.scrim.room .slot .row-line .btn{min-height:28px;padding:2px 8px}.scrim.room .slot .eta{margin-top:3px}.scrim.note{align-items:center;padding:8px;background:#0a0c1859}.scrim.note .modal{width:min(100%,416px);max-height:none;border-bottom:2px solid var(--ink);border-radius:14px;box-shadow:0 4px 0 var(--ink)}.scrim.note .body{padding-bottom:12px;overflow:hidden}.scrim.note .here{min-height:50px}.away-line{display:flex;align-items:flex-start;gap:10px;margin:0 0 6px;padding:6px 8px;background:var(--panel-2);border-radius:8px}.away-line.quiet{opacity:.55}.away-line .pix.big{margin-top:2px}.away-line small{display:block;text-transform:uppercase;letter-spacing:.06em;font-size:11px}.away-line p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1;height:1.3em;margin:1px 0 0;overflow:hidden;font-size:13px;line-height:1.3}.away-line.long p{-webkit-line-clamp:3;line-clamp:3;height:3.9em}.away-go{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.away-go .btn{margin:0}.scrim.wide .body.you{display:flex;flex-direction:column}.you-grid{flex:1;min-height:0;display:grid;grid-template-columns:286px minmax(0,1fr) 248px;gap:12px}.you-cols{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 18px;align-items:start}.you-stage{display:flex;align-items:stretch;gap:6px;padding:10px 8px;background:radial-gradient(ellipse at 50% 40%,#ffcf3f33,#ffcf3f00 58%),linear-gradient(#2b2f47 0 74%,#1a1c2b 74%);border:2px solid var(--ink);border-radius:10px;box-shadow:inset 0 0 0 2px #ffffff0d}.you-slots{flex:none;width:86px;display:flex;flex-direction:column;justify-content:space-around;gap:8px}.you-stand{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:34px}.you-figure{height:189px;image-rendering:pixelated;filter:drop-shadow(0 3px 0 rgba(0,0,0,.35))}.you-floor{width:84px;height:8px;margin-top:-4px;background:#00000059;border-radius:50%}.gear-slot{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px 5px;background:#141622b8;border-color:var(--line);box-shadow:none;text-align:center}.gear-slot.full{border-color:var(--coin)}.gear-slot:disabled{opacity:1}.gear-slot .well{display:grid;place-items:center;width:44px;height:44px;background:var(--ink);border:2px dashed var(--line);border-radius:8px}.gear-slot.full .well{border-style:solid}.gear-slot .tile{width:36px;height:36px;margin:0;background:none}.gear-slot .head{width:36px;height:36px;background-repeat:no-repeat;background-position:50% 0;background-size:auto 250%;image-rendering:pixelated}.gear-slot b{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.04em}.gear-slot small{max-width:100%;min-height:2.5em;font-size:10.5px;font-weight:400;line-height:1.2;overflow:hidden}.you-nums{display:flex;flex-direction:column;gap:8px}.you-nums .num{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;padding:8px 10px;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px}.you-nums .num b{font-size:15px;font-variant-numeric:tabular-nums}.you-nums .num .bar,.you-nums .num small{grid-column:1 / -1;margin:0}.you-nums .num small{font-weight:400;color:var(--dim)}.you-nums .tally{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;align-items:end}.you-nums .tally span{display:flex;flex-direction:column;align-items:center;padding:6px 2px;font-size:10.5px;font-weight:400;color:var(--dim);background:var(--ink);border-radius:8px}.you-nums .tally b{font-size:16px;color:var(--text)}.you-pack{display:flex;flex-direction:column;min-height:0}.you-pack h3{margin:0 0 6px}.you-pack h3 small{font-weight:400;color:var(--dim)}.pack{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.pack .cell{position:relative;display:grid;place-items:center;aspect-ratio:1;padding:0;background:var(--ink);border:2px solid var(--line);border-radius:7px;box-shadow:none}.pack i.cell{border-style:dashed;opacity:.55}.pack .cell.on{border-color:var(--coin);background:#4a3a12}.pack .cell .tile{width:30px;height:30px;margin:0;background:none}.pack .cell b{position:absolute;right:3px;bottom:0;font-size:11px;text-shadow:0 1px 0 var(--ink),1px 0 0 var(--ink),-1px 0 0 var(--ink),0 -1px 0 var(--ink)}.pack-pick{flex:1;display:flex;align-items:center;gap:6px;min-height:48px;padding:6px 8px;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px}.pack-pick .grow{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.pack-pick small{font-weight:400}.you-look .pick-row:first-child{margin-top:0}.you-top{display:flex;gap:12px;align-items:center}.you-portrait{height:96px;padding:6px 14px;background:var(--panel-2);border:2px solid var(--ink);border-radius:10px;image-rendering:pixelated}.field{display:block;margin-bottom:6px;font-size:12px;color:var(--dim)}.field input{display:block;width:100%;margin-top:2px;padding:6px 8px;font:inherit;font-size:15px;color:var(--text);background:var(--ink);border:2px solid var(--line);border-radius:6px}.pick-row{display:flex;align-items:center;gap:8px;margin:8px 0}.pick-label{flex:0 0 68px;font-size:12px;color:var(--dim)}.swatches{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:30px;height:30px;padding:0;border:2px solid var(--ink);border-radius:6px;box-shadow:none}.swatch.on,.chip.on{outline:3px solid var(--coin);outline-offset:1px}.swatch.exact{position:relative;overflow:hidden;cursor:pointer;background:conic-gradient(#e5484d,#ffcf3f,#3fbf6b,#2fd6b5,#2f7fd6,#8b4fc9,#e5484d)}.swatch.exact input,.file input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.chip{padding:4px 9px;font-size:12px;background:var(--panel-2);box-shadow:none}.premium{margin-top:8px;padding:10px;background:linear-gradient(135deg,#f5a62338,#2fd6b51f);border:2px solid var(--key);border-radius:10px}.premium p{margin:6px 0;font-size:13px}.file{position:relative;display:block;text-align:center;cursor:pointer}.stats-grid{flex:1;min-height:0;display:grid;grid-template-columns:236px minmax(0,1fr);gap:12px}.stat-side{display:flex;flex-direction:column;gap:8px;min-height:0}.stat-side .points{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel-2);border:2px solid var(--ink);border-radius:10px}.stat-side .points b{min-width:1.4em;font-size:34px;line-height:1;text-align:center;color:var(--dim);font-variant-numeric:tabular-nums}.stat-side .points.has{border-color:var(--coin);background:#4a3a12}.stat-side .points.has b{color:var(--coin)}.stat-side .points span{font-size:13px;line-height:1.2}.stat-side p{margin:0;font-weight:400}.totals{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:5px;margin:0;padding:0;list-style:none}.totals li{display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:12px;font-weight:400;background:var(--ink);border-radius:7px}.totals li span{flex:1;color:var(--dim)}.totals li b{font-size:14px;font-variant-numeric:tabular-nums}.attrs{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:8px;min-height:0}.attr{display:flex;flex-direction:column;gap:4px;min-height:0;padding:7px 10px 8px;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px}.attr.top{border-color:var(--coin)}.attr-top{display:flex;align-items:baseline;justify-content:space-between}.attr-top b{font-size:15px}.attr-top span{font-size:12px;color:var(--dim);font-variant-numeric:tabular-nums}.attr p{flex:1;margin:0;font-size:12px;font-weight:400;line-height:1.25;color:var(--dim);overflow:hidden}.attr-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.attr-foot small{font-size:12px;line-height:1.2;color:var(--text)}.attr-foot .btn{min-width:46px;min-height:30px;padding:2px 10px;font-size:13px}.pips{display:flex;gap:2px}.pips i{flex:1;max-width:14px;height:7px;background:var(--ink);border:1px solid var(--line);border-radius:2px}.pips i.on{background:var(--coin);border-color:var(--ink)}.me{position:relative;isolation:isolate}.bot-card{display:flex;align-items:center;gap:8px;margin:0 0 6px;padding:5px 8px;background:var(--panel-2);border:2px solid var(--ink);border-radius:8px}.bot-card .grow{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}.bot-card small{font-size:11px;font-weight:400;color:var(--dim)}.bot-face{flex:none;height:44px;padding:2px 4px 0;background:var(--ink);border-radius:6px;image-rendering:pixelated}.traits{display:flex;flex-direction:column;gap:4px;margin:0 0 6px}.trait{display:grid;grid-template-columns:54px 78px minmax(0,1fr);align-items:center;gap:8px;padding:4px 8px;background:var(--ink);border-radius:7px;font-size:12px}.trait small{font-size:11px;font-weight:400;color:var(--dim)}.trait .pips i.on{background:var(--gem)}.tasks{display:flex;gap:5px;margin-top:6px}.task{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:var(--panel)}.task.on{background:#14705f;border-color:var(--gem)}.task .tile,.task .pix{width:30px;height:30px;margin:0;padding:1px;background:none}.scrim.room .slot p.line{margin:6px 0 0;font-size:12px}.body.shaft{overflow:hidden}.shaft-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-auto-rows:58px;gap:4px;padding:6px;background:var(--ink);border-radius:8px}.bay{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;padding:2px;border-radius:6px;font-size:10px;line-height:1.1;text-align:center;box-shadow:none}.bay span{max-width:100%;overflow:hidden;text-overflow:ellipsis}.bay .pix{margin:0}.bay.k-lobby{background:var(--lobby)}.bay.k-garden{background:var(--garden)}.bay.k-pen{background:var(--pen)}.bay.k-kitchen{background:var(--kitchen)}.bay.k-workshop{background:var(--workshop)}.bay.at{border-color:var(--coin);box-shadow:0 0 0 2px var(--coin);opacity:1;cursor:default}.bay.site{background-image:repeating-linear-gradient(135deg,rgba(0,0,0,.28) 0 6px,transparent 6px 12px)}.bay .count{position:absolute;top:-5px;right:-4px;min-width:18px;padding:0 4px;background:var(--coin);color:var(--ink);border:2px solid var(--ink);border-radius:999px;font-style:normal}.bay.lot{background:#1f4a30;border:2px dashed #5fe890;color:#5fe890}.bay.lot b{font-size:22px;line-height:.9}.bay.lot.short{background:var(--panel);border-color:var(--line);color:var(--dim)}.bay.void{background:#ffffff08;border:2px solid transparent}.bay.void.ground{border-bottom-color:var(--line)}.shaft-pan{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:8px;font-size:12px}.shaft-pan span{min-width:110px;text-align:center}.shaft-pan .btn{min-width:36px}.place{position:absolute;left:8px;top:calc(50px + env(safe-area-inset-top));display:flex;align-items:center;gap:2px;padding:3px 9px 3px 7px;background:#1f2233e0;border:2px solid var(--ink);border-left:6px solid var(--lobby);border-radius:8px;font-size:12px;white-space:nowrap;pointer-events:none!important}.place b{max-width:150px;overflow:hidden;text-overflow:ellipsis}.place.k-garden{border-left-color:var(--garden)}.place.k-pen{border-left-color:var(--pen)}.place.k-kitchen{border-left-color:var(--kitchen)}.place.k-workshop{border-left-color:var(--workshop)}.place .pace{margin-left:6px;padding:0 5px;background:var(--gem);color:var(--ink);border-radius:999px;font-size:11px}.place.out{flex-direction:column;align-items:stretch;gap:3px;padding:4px;border-left-width:2px}.minimap{display:block;width:138px;height:138px;background:#44663f;border:2px solid var(--ink);border-radius:4px;image-rendering:pixelated}.place-name,.place-way{display:flex;align-items:center;width:142px}.place-way{font-size:10px;font-weight:400;color:var(--dim)}.place-way .where{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.place-way .far{flex:none;margin-left:4px;color:var(--text)}.place-way.goal{color:var(--gem)}.place-way .pix{width:12px;height:12px;vertical-align:-2px}.prompts{position:absolute;left:50%;bottom:calc(74px + env(safe-area-inset-bottom));transform:translate(-50%);display:flex;gap:6px;white-space:nowrap;pointer-events:none!important}.prompt{min-height:0;padding:3px 10px 3px 5px;background:#1f2233e6;border-radius:999px;font-size:12px;pointer-events:auto}.prompt.hit{border-color:var(--hp)}.prompt.eat{border-color:var(--green)}kbd{display:inline-block;margin-right:6px;padding:0 6px;background:var(--text);color:var(--ink);border-radius:999px;font:inherit;font-size:11px}#ui:has(.scrim.dockmenu) .prompts{left:76%}#ui:has(.scrim.dockmenu.late) .prompts{left:30%}@media(min-width:900px){#ui:has(.scrim.room) .prompts,#ui:has(.scrim.room) .banner,#ui:has(.scrim.room) .coach{left:calc(50% - 214px)}#ui:has(.scrim.room) .toasts{right:440px}}#ui:has(.coach) .banner{top:calc(196px + env(safe-area-inset-top))}#ui:has(.coach) .banner+.banner{top:calc(230px + env(safe-area-inset-top))}.zoom{flex-direction:row}.scrim.wide,.scrim.note{background:none}.scrim .modal{transition:opacity .12s linear}#ui.walking .scrim.wide .modal,#ui.walking .scrim.note .modal,#ui.walking .scrim.atlas .modal{opacity:.38}@media(prefers-reduced-motion:reduce){.scrim .modal{transition:none}}
