:root{--ui-bg: #23232b;--ui-bg-raised: #2d2d37;--ui-bg-sunken: #191920;--ui-line: #3e3e4b;--ui-line-hover: #5d5d70;--ui-text: #ebebf2;--ui-text-dim: #9b9bac;--ui-accent: #ffd34d;--ui-accent-soft: rgba(255, 211, 77, .18);--ui-danger: #ff6b57;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--text-xs: 11px;--text-sm: 13px;--text-md: 15px;--text-lg: 18px;--ctl: 28px;--ctl-lg: 32px;--cell: 32px;--cell-lg: 44px;--line: 2px}*{box-sizing:border-box}[hidden]{display:none!important}*{scrollbar-width:none}*::-webkit-scrollbar{display:none}input[type=checkbox]{accent-color:var(--ui-accent);margin:0}html,body{margin:0;height:100%;overflow:hidden;background:#15151a}body{font-family:Outfit,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;font-size:var(--text-sm);color:var(--ui-text);-webkit-user-select:none;user-select:none}#app{position:fixed;inset:0}#stage{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#stage.is-panning{cursor:grabbing}.px-corner,.card,.toast,.hint{--c1: 4px;--c2: 8px;--px-edge: var(--ui-line);--px-fill: var(--ui-bg-raised);position:relative;border:0!important;background:var(--px-edge);clip-path:polygon(var(--c2) 0,calc(100% - var(--c2)) 0,calc(100% - var(--c2)) var(--c1),calc(100% - var(--c1)) var(--c1),calc(100% - var(--c1)) var(--c2),100% var(--c2),100% calc(100% - var(--c2)),calc(100% - var(--c1)) calc(100% - var(--c2)),calc(100% - var(--c1)) calc(100% - var(--c1)),calc(100% - var(--c2)) calc(100% - var(--c1)),calc(100% - var(--c2)) 100%,var(--c2) 100%,var(--c2) calc(100% - var(--c1)),var(--c1) calc(100% - var(--c1)),var(--c1) calc(100% - var(--c2)),0 calc(100% - var(--c2)),0 var(--c2),var(--c1) var(--c2),var(--c1) var(--c1),var(--c2) var(--c1))}.px-corner:before,.card:before,.toast:before,.hint:before{content:"";position:absolute;inset:var(--line);z-index:-1;background:var(--px-fill);clip-path:inherit;pointer-events:none}.tool,.cardchip,.clipbtn,.craft__btn,.dirbtn,.ed__input,.ed__select{height:var(--ctl);padding:0 var(--s2);font:inherit;font-size:var(--text-sm);line-height:1;color:inherit;background:var(--ui-bg-raised);border:var(--line) solid var(--ui-line);cursor:pointer}.ed__input{background:var(--ui-bg-sunken);cursor:text}.ed__select{background:var(--ui-bg-sunken)}.tool:hover,.cardchip:hover,.clipbtn:hover,.craft__btn:not(:disabled):hover,.dirbtn:hover{border-color:var(--ui-line-hover)}.tool.is-on,.cardchip.is-on,.clipbtn.is-on,.dirbtn.is-on{background:var(--ui-accent-soft);border-color:var(--ui-accent)}.tool:disabled,.cardchip:disabled,.craft__btn:disabled,.ed__input:disabled{opacity:.4;cursor:not-allowed}.btn{pointer-events:auto;cursor:pointer;color:inherit;font:inherit}.btn:hover{border-color:var(--ui-line-hover)}.btn--go{background:var(--ui-accent-soft);border-color:var(--ui-accent)}.btn--go:disabled{background:var(--ui-bg-raised);border-color:var(--ui-line)}.btn--danger:hover{border-color:#c0392b;background:#c0392b2e}.row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1)}.row__grow{flex:1 1 0;min-width:0}.row--top{align-items:flex-start}.row__gap{flex:1 1 auto}.row__label{display:inline-flex;align-items:center;gap:var(--s1);font-size:var(--text-xs);opacity:.7}.row__x{opacity:.5}.hud{position:absolute;z-index:2;pointer-events:none}.hud--tl{top:var(--s3);left:var(--s3)}.hud--tr{top:var(--s3);right:var(--s3);display:flex;gap:var(--s1);flex-wrap:wrap;justify-content:flex-end;max-width:60vw}.hud--bottom{left:0;right:0;bottom:var(--s3);display:flex;flex-direction:column;align-items:center;gap:var(--s2)}.panel{background:#23232bf0;border:var(--line) solid var(--ui-line);padding:var(--s1) var(--s2);backdrop-filter:blur(2px)}.panel.btn{height:var(--ctl-lg)}.stat{display:flex;align-items:center;height:var(--ctl-lg);font-size:var(--text-sm);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}.hint{font-size:var(--text-sm);padding:var(--s1) var(--s3);--px-fill: var(--ui-bg);opacity:.9}.bag{display:flex;gap:var(--s3);list-style:none;margin:0;padding:var(--s1) var(--s3)}.bag__item{display:flex;align-items:center;gap:var(--s1);font-size:var(--text-sm)}.bag__name{opacity:.7}.bag__n{min-width:2ch;text-align:right;font-weight:600}.dot{width:var(--s3);height:var(--s3);border:1px solid rgba(0,0,0,.4)}.dot--lg{width:var(--s4);height:var(--s4)}.hud--credit{left:var(--s3);top:50px;text-align:left;font-size:var(--text-xs);opacity:.55;max-width:34ch;line-height:1.35;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 4px rgba(0,0,0,.7)}.toasts{position:absolute;z-index:3;left:50%;bottom:96px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--s1);pointer-events:none}.toast{--px-edge: var(--ui-accent);--px-fill: var(--ui-bg-raised);padding:var(--s1) var(--s3);font-size:var(--text-sm);transition:opacity .4s,transform .4s}.toast.is-out{opacity:0;transform:translateY(-10px)}.veil{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;background:#08080b4d;pointer-events:auto;padding:var(--s4)}.veil[hidden]{display:none}.card{width:min(440px,100%);max-height:100%;display:flex;flex-direction:column;padding:var(--s4);--px-fill: rgba(35, 35, 43, .96);filter:drop-shadow(0 var(--s2) var(--s4) rgba(0,0,0,.55))}.card--wide{width:min(520px,100%)}.card--small{width:min(360px,100%)}.card__body{overflow:auto;margin:0 calc(var(--s2) * -1);padding:0 var(--s2)}.head,.foot{--bleed: calc(var(--s4) - var(--line));flex:none;display:flex;gap:var(--s2);background:var(--ui-bg-sunken);padding:var(--bleed)}.head{align-items:baseline;margin:calc(var(--bleed) * -1) calc(var(--bleed) * -1) 0;clip-path:polygon(var(--c2) 0,calc(100% - var(--c2)) 0,calc(100% - var(--c2)) var(--c1),calc(100% - var(--c1)) var(--c1),calc(100% - var(--c1)) var(--c2),100% var(--c2),100% 100%,0 100%,0 var(--c2),var(--c1) var(--c2),var(--c1) var(--c1),var(--c2) var(--c1))}.head h2{margin:0;font-size:var(--text-lg);font-weight:600}.head .muted{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.head__acts{display:flex;gap:var(--s1);margin-left:auto;align-self:center}.card__body{padding-top:var(--s4);padding-bottom:var(--s4)}.foot{align-items:center;gap:var(--s1);margin:0 calc(var(--bleed) * -1) calc(var(--bleed) * -1);clip-path:polygon(0 0,100% 0,100% calc(100% - var(--c2)),calc(100% - var(--c1)) calc(100% - var(--c2)),calc(100% - var(--c1)) calc(100% - var(--c1)),calc(100% - var(--c2)) calc(100% - var(--c1)),calc(100% - var(--c2)) 100%,var(--c2) 100%,var(--c2) calc(100% - var(--c1)),var(--c1) calc(100% - var(--c1)),var(--c1) calc(100% - var(--c2)),0 calc(100% - var(--c2)))}.foot>.tool:not(.icon-btn){flex:1}.sec{display:flex;flex-direction:column;gap:var(--s2)}.sec+.sec{margin-top:var(--s4)}h3{margin:0;font-size:var(--text-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:.5}h3 small{font-weight:400;letter-spacing:0;text-transform:none}.check{display:flex;align-items:center;gap:var(--s2);min-height:var(--ctl);font-size:var(--text-sm);cursor:pointer}.muted{margin:0;font-size:var(--text-sm);opacity:.6}.craft-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.craft{display:flex;align-items:center;gap:var(--s2);padding:var(--s1) var(--s2)}.craft:hover{background:var(--ui-bg-raised)}.craft.is-locked{opacity:.45}.craft__text{flex:1;min-width:0}.craft__name{font-size:var(--text-sm)}.craft__desc{font-size:var(--text-xs);opacity:.6}.craft__have{min-width:3ch;text-align:right;font-size:var(--text-md);font-weight:600}.craft__have.is-zero{opacity:.35;font-weight:400}.craft__btn{white-space:nowrap}.ed{display:flex;flex-direction:column}.ed>*{flex:none}.ed__work{position:relative}.ed__view{width:100%;aspect-ratio:1 / 1;display:flex;overflow:auto;background:var(--ui-bg-sunken);border:var(--line) solid var(--ui-line);line-height:0}#dz-canvas{display:block;margin:auto;image-rendering:pixelated;touch-action:none;cursor:crosshair}.ed__float{position:absolute;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:var(--s1);padding:0 var(--s1) var(--s1);background:#23232beb;border:var(--line) solid var(--ui-line);backdrop-filter:blur(2px)}.ed__float.is-dragging{border-color:var(--ui-accent)}.ed__float.is-closed .ed__float-body{display:none}.ed__float-toggle{flex:none}.ed__grip{align-self:stretch;height:var(--s3);margin:0 calc(var(--s1) * -1);cursor:grab;touch-action:none;background:radial-gradient(circle,var(--ui-line-hover) 1px,transparent 1.5px) center / 4px 4px repeat-x}.ed__float.is-dragging .ed__grip{cursor:grabbing}.ed__rail{top:var(--s1);left:var(--s1)}.ed__rail .ed__float-body{display:flex;flex-direction:column;gap:var(--s1)}.ed__palette{top:var(--s1);right:var(--s1);max-height:calc(100% - var(--ctl) - var(--s3) - var(--s1) * 7)}.ed__palette .swatches{grid-template-columns:repeat(2,var(--cell));padding:0;border:0;background:none;overflow-y:auto;min-height:0}.ed__zoombar{right:var(--s1);bottom:var(--s1);display:grid;grid-template-columns:auto auto;align-items:center}.ed__zoombar .ed__grip{grid-column:1 / -1}.ed__zoombar .ed__float-body{display:flex;align-items:center;gap:var(--s1)}.ed__zoom{min-width:4ch;text-align:center;font-size:var(--text-xs);opacity:.7}.ed__meta{position:absolute;left:var(--s2);bottom:var(--s2);z-index:1;display:flex;flex-direction:column;gap:var(--s1);padding:var(--s1) var(--s2);background:#0f0f148c;opacity:.75;pointer-events:none}.ed__cost{font-size:var(--text-sm);color:var(--ui-text-dim)}.ed__cost:empty{display:none}.ed__stats{display:flex;gap:var(--s3);font-size:var(--text-sm);color:var(--ui-text-dim)}.ed__stats b{font-weight:600;color:var(--ui-text)}.ed__stats .is-bad,.ed__stats .is-bad b{color:var(--ui-danger)}.menu{position:relative}.menu__panel{position:absolute;z-index:5;width:280px;overflow-y:auto;padding:var(--s4);background:var(--ui-bg);border:var(--line) solid var(--ui-line-hover);box-shadow:0 var(--s2) var(--s4) #0000008c;cursor:default}.menu__panel[hidden]{display:none}.ed__select,.ed__input{width:100%}.ed__select{padding:0 var(--s1)}.ed__input.ed__num{width:5ch;text-align:center;padding:0 var(--s1)}.ed__input.ed__input--clip{width:10ch}.swatches{list-style:none;margin:0;padding:var(--s1);display:grid;grid-template-columns:repeat(auto-fill,var(--cell));gap:var(--s1);justify-content:start;background:var(--ui-bg-sunken);border:var(--line) solid var(--ui-line)}.swatch{position:relative;width:var(--cell);height:var(--cell);cursor:pointer;border:var(--line) solid #0e0e12;box-shadow:0 0 0 1px #ffffff12;overflow:hidden}.swatch:hover{box-shadow:0 0 0 1px var(--ui-line-hover)}.swatch.is-on{border-color:#0e0e12;box-shadow:0 0 0 2px var(--ui-accent),inset 0 0 0 2px #0000008c}.swatch.is-locked{opacity:.4;cursor:not-allowed}.swatch.is-locked:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(0,0,0,.65) 0 3px,transparent 3px 6px)}.swatch__name{display:none}.swatch__n{position:absolute;right:1px;bottom:0;font-size:10px;line-height:1.2;padding:0 2px;color:#fff;background:#0000009e;pointer-events:none}.swatch .dot,.swatch .dot--lg{position:absolute;inset:0;width:auto;height:auto;border:0}.dz__views{display:grid;grid-template-columns:repeat(3,var(--cell));gap:var(--s1);justify-content:start}.dirbtn{width:var(--cell);padding:0;font-size:var(--text-xs)}.dirbtn.is-empty{opacity:.4}.dirbtn.is-mirror{border-style:dashed;opacity:.8}.track{display:flex;align-items:center;gap:var(--s2)}.strip,.track__strip{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--s1);overflow-x:auto;overflow-y:hidden}.strip>*,.track__strip>*{flex:none}.track__strip{flex:1 1 0;min-width:0}.track__ctl{flex:none;display:flex;align-items:center;gap:var(--s1)}.clipbtn small{opacity:.6}.framepick,.tilepick{width:var(--cell-lg);height:var(--cell-lg);padding:var(--s1);cursor:pointer;line-height:0;background:#30303a;border:var(--line) solid var(--ui-line)}.framepick:hover,.tilepick:hover{border-color:var(--ui-line-hover)}.framepick.is-on,.tilepick.is-on{border-color:var(--ui-accent)}.framepick canvas,.tilepick canvas{image-rendering:pixelated;max-width:100%;max-height:100%}.tilepick__art{image-rendering:pixelated;max-width:100%;max-height:100%}.dz__list{display:flex;flex-direction:column;gap:var(--s2)}.lib__tabs{display:flex;gap:var(--s1);flex:none}.lib__tab{flex:1;min-width:0;padding:0 var(--s1)}.lib__tab small{opacity:.5}.build-shelf{display:flex;gap:var(--s1);pointer-events:auto}.slot{padding:var(--s1);cursor:pointer;background:var(--ui-bg);border:var(--line) solid var(--ui-line);line-height:0}.slot:hover{border-color:var(--ui-line-hover)}.slot.is-on{border-color:var(--ui-accent);background:var(--ui-accent-soft)}.slot.is-bad{opacity:.4}.slot__art{width:40px;height:40px;image-rendering:pixelated}.obj{display:flex;gap:var(--s3);align-items:flex-start}.obj__art{width:96px;height:96px;image-rendering:pixelated;flex:none;background:var(--ui-bg-sunken);border:var(--line) solid var(--ui-line)}.obj__stats{flex:1;display:flex;flex-direction:column;gap:var(--s1)}.stat-row{display:flex;align-items:baseline;gap:var(--s2);font-size:var(--text-sm)}.stat-row span{color:var(--ui-text-dim);min-width:7ch}.stat-row b{font-weight:600;min-width:2ch}.stat-row i{color:var(--ui-text-dim);font-style:normal}.cardchip small{opacity:.6}.obj__status{font-size:var(--text-xs);opacity:.75;min-height:1.3em}.obj__status.is-bad{color:var(--ui-danger);opacity:1}.obj__buffer{gap:var(--s2);font-size:var(--text-sm);min-height:var(--ctl)}.obj__buffer .muted{font-size:var(--text-xs)}.obj__facing{align-self:center;font-size:var(--text-xs);opacity:.7;min-width:3ch;text-align:center}.mapbar{position:absolute;z-index:3;left:50%;top:56px;transform:translate(-50%);width:min(560px,calc(100% - var(--s5)));max-height:calc(100% - 160px);pointer-events:auto}.foot>.tool.icon-btn{flex:none}.clipbtn.is-hidden{opacity:.45;text-decoration:line-through}.mapbar__water{display:flex;align-items:center;gap:var(--s1);color:var(--ui-text-dim)}.mapbar__water input{width:96px;accent-color:var(--ui-accent)}.seg{display:flex}.seg__btn{width:var(--ctl);padding:0;flex:none}.seg__btn+.seg__btn{margin-left:calc(var(--line) * -1)}.seg__btn.is-on{position:relative;z-index:1}.has-changes{position:relative}.has-changes:after{content:"";position:absolute;top:3px;right:3px;width:6px;height:6px;background:var(--ui-accent)}#stage.is-editing{cursor:crosshair}#stage.is-editing.is-grab{cursor:grab}#stage.is-editing.is-panning{cursor:grabbing}.icon{display:block;width:var(--s4);height:var(--s4);background:currentColor;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--ctl);padding:0}.panel.btn.icon-btn{width:var(--ctl-lg)}@media(max-width:560px),(max-height:640px){.veil{padding:var(--s2)}.hud--tr{max-width:70vw}}@media(max-width:560px){.bag{gap:var(--s2);padding:var(--s1) var(--s2);font-size:var(--text-xs)}.bag__name{display:none}.hint{font-size:var(--text-xs);max-width:calc(100vw - var(--s3) * 2);text-align:center}.hud--tl{display:none}.hud--tr{max-width:calc(100vw - var(--s3) * 2)}.hud--credit{top:calc(var(--s3) + var(--ctl-lg) + var(--s2));max-width:28ch;font-size:10px}}.tilepick{position:relative}.ts__tag{position:absolute;right:1px;bottom:1px;font-size:10px;line-height:1.2;padding:0 3px;color:#fff;background:#000000a6;pointer-events:none}.ts__slot.is-empty{opacity:.55}.ts__rule{width:auto}.ts__tile-name{font-size:var(--text-sm);color:var(--ui-text-dim);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ts__slot{padding:2px}.ts__slot canvas{width:100%;height:100%;image-rendering:pixelated}.brush--group{border-style:dashed}
