:root{--bg:#0c0d11;--panel:#14161c;--panel-2:#1a1d25;--raised:#222632;--raised-2:#2a2f3d;--border:#262a35;--border-2:#333948;--text:#e6e8ee;--muted:#8a90a0;--faint:#5d6373;--accent:#7c8cff;--accent-2:#a78bfa;--accent-soft:#7c8cff29;--danger:#ff5c6c;--green:#3ddc97;--blue:#5aa9ff;--pink:#ff8ad8;--radius:10px;--radius-sm:7px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.4}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}html{touch-action:pan-x pan-y;-webkit-text-size-adjust:100%}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}input,textarea{-webkit-user-select:text;user-select:text}img,canvas,svg{-webkit-user-drag:none}button,select,input[type=range]{touch-action:manipulation}button,input,select{font:inherit;color:inherit}button{cursor:pointer}input[type=number]::-webkit-inner-spin-button{opacity:.4}.app{grid-template:"top top top"56px"left main right"1fr/264px 1fr 292px;height:100vh;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--border);grid-area:top;align-items:center;gap:14px;padding:0 14px;display:flex}.brand{align-items:center;gap:10px;min-width:228px;padding-right:10px;display:flex}.brand strong{letter-spacing:.02em;font-size:15px;display:block}.brand span{color:var(--muted);font-size:11px;display:block}.topbar-group{border-left:1px solid var(--border);align-items:center;gap:4px;height:32px;padding:0 10px;display:flex}.spacer{flex:1}.panel{background:var(--panel);overflow:hidden auto}.panel.left{border-right:1px solid var(--border);flex-direction:column;grid-area:left;display:flex}.panel.right{border-left:1px solid var(--border);grid-area:right}.panel-section{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:14px;display:flex}.panel-section h3,.editor-side h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-items:baseline;gap:8px;margin:0;font-size:11px;font-weight:600;display:flex}.panel-section h3 .muted,.editor-side h3 .muted{text-transform:none;letter-spacing:0;color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-weight:400;overflow:hidden}.section-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.main{background:radial-gradient(circle at 50% 40%, #7c8cff0d, transparent 60%), var(--bg);flex-direction:column;grid-area:main;min-width:0;min-height:0;display:flex;position:relative}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--raised);white-space:nowrap;justify-content:center;align-items:center;gap:6px;height:32px;padding:0 14px;font-weight:500;transition:background .12s,border-color .12s,transform 60ms;display:inline-flex}.btn:hover{background:var(--raised-2)}.btn:active{transform:translateY(1px)}.btn.sm{height:28px;padding:0 10px;font-size:12px}.btn.ghost{background:0 0}.btn.ghost:hover{background:var(--raised)}.btn.primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border-color:#0000;box-shadow:0 4px 18px -6px #7c8cffb3}.btn.primary:hover{filter:brightness(1.1)}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--muted);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--raised);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.active{background:var(--accent-soft);color:var(--accent);border-color:#7c8cff59}.icon-btn.sm{width:28px;height:28px}.icon-btn.xs{border-radius:6px;width:24px;height:24px}.icon-btn.danger:hover:not(:disabled){color:var(--danger);background:#ff5c6c1f}.btn-row{align-items:center;gap:6px;display:flex}.btn-row.wrap{flex-wrap:wrap}input[type=number],input[type=text],.hex-input,select{border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--panel-2);outline:none;min-width:0;height:30px;padding:0 8px}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.select-wrap{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.select-wrap select{color:var(--text);min-width:190px}.mini-select{height:28px;font-size:12px}.custom-size{color:var(--faint);align-items:center;gap:4px;display:flex}.custom-size input{text-align:center;width:62px}.zoom-label{text-align:center;font-variant-numeric:tabular-nums;min-width:48px;color:var(--muted);font-size:12px}.seg{border-radius:var(--radius-sm);background:var(--panel-2);border:1px solid var(--border);gap:2px;padding:3px;display:inline-flex}.seg.full{display:flex}.seg button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:5px;flex:1;height:26px;padding:0 8px;font-size:12px}.seg button:hover{color:var(--text)}.seg button.on{background:var(--raised-2);color:var(--text);box-shadow:0 1px 2px #00000059}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--border-2);height:24px;color:var(--muted);background:0 0;border-radius:999px;padding:0 9px;font-size:11.5px}.chip:hover{color:var(--text);border-color:var(--accent)}.slider{color:var(--muted);grid-template-columns:82px 1fr auto auto;align-items:center;gap:8px;font-size:12px;display:grid}.slider em{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;min-width:34px;font-style:normal}.slider input.mini{text-align:right;width:52px;height:26px}input[type=range]{appearance:none;background:var(--raised-2);border-radius:4px;outline:none;width:100%;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:3px solid var(--accent);cursor:pointer;background:#fff;border-radius:50%;width:14px;height:14px}input[type=range]::-moz-range-thumb{border:3px solid var(--accent);background:#fff;border-radius:50%;width:10px;height:10px}.check{cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.check input{accent-color:var(--accent)}.toggle{cursor:pointer;width:36px;height:20px;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle span{background:var(--raised-2);border-radius:999px;transition:background .15s;position:absolute;inset:0}.toggle span:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle input:checked+span{background:linear-gradient(135deg, var(--accent), var(--accent-2))}.toggle input:checked+span:after{transform:translate(16px)}.label{color:var(--muted);margin-bottom:-4px;font-size:11.5px}.muted{color:var(--muted)}.small{font-size:11.5px}p.small,p.muted{margin:0}.warn{color:#ffc46b;margin:0;font-size:12px}.badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 6px;font-size:10px}.field-grid{gap:6px;display:grid}.field-grid.four{grid-template-columns:repeat(4,1fr)}.field-grid.size-row{grid-template-columns:1fr auto 1fr;align-items:end}.num{color:var(--faint);flex-direction:column;gap:3px;font-size:10.5px;font-weight:600;display:flex}.num input{width:100%;height:28px;color:var(--text);font-size:12px;font-weight:400}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.field.inline{flex-direction:row;justify-content:space-between;align-items:center}.field input[type=color]{border:1px solid var(--border-2);background:0 0;border-radius:6px;width:44px;height:28px;padding:2px}.disabled{opacity:.4;pointer-events:none}.effect>div:last-child{flex-direction:column;gap:10px;transition:opacity .15s;display:flex}.checker{background-color:#2a2d36;background-image:linear-gradient(45deg,#353945 25%,#0000 25%),linear-gradient(-45deg,#353945 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#353945 75%),linear-gradient(-45deg,#0000 75%,#353945 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.pixelated{image-rendering:pixelated;image-rendering:crisp-edges}.library{flex:auto;min-height:200px}.dropzone{border-radius:var(--radius);outline-offset:-1px;outline:1.5px dashed #0000;transition:background .15s,outline-color .15s}.dropzone.empty{outline-color:var(--border-2)}.dropzone.over{outline-color:var(--accent);background:var(--accent-soft)}.dropzone-cta{width:100%;color:var(--muted);text-align:center;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:30px 12px;display:flex}.dropzone-cta strong{color:var(--text);font-weight:600}.dropzone-cta span{font-size:11.5px}.dropzone-cta:hover{color:var(--accent)}.thumbs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.thumb{border:1px solid var(--border);background:var(--panel-2);cursor:pointer;border-radius:8px;transition:border-color .12s,transform .12s;position:relative;overflow:hidden}.thumb:hover{border-color:var(--accent);transform:translateY(-1px)}.thumb-img{aspect-ratio:1;background-position:0 0,0 5px,5px -5px,-5px 0;background-size:10px 10px;place-items:center;display:grid}.thumb-img img{object-fit:contain;max-width:88%;max-height:88%}.thumb-meta{flex-direction:column;padding:5px 7px 6px;display:flex}.thumb-name{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.thumb-dim{color:var(--faint);font-size:10.5px}.thumb-actions{opacity:0;gap:3px;transition:opacity .12s;display:flex;position:absolute;top:5px;right:5px}.thumb:hover .thumb-actions{opacity:1}@media (hover:none){.thumb-actions{opacity:1}}.thumb-actions .icon-btn{color:var(--text);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c0d11d9}.layers{border-bottom:0;flex:none}.layer-list{flex-direction:column;gap:3px;display:flex}.layer{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:9px;width:100%;padding:5px 6px;font-size:12.5px;display:flex}.layer:hover{background:var(--panel-2)}.layer.selected{background:var(--accent-soft);border-color:#7c8cff59}.layer.is-hidden .layer-name,.layer.is-hidden .layer-thumb{opacity:.4}.layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.layer-thumb{background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px;border-radius:4px;flex:none;width:28px;height:28px}.layer.paint{color:var(--muted);border-style:dashed;border-color:var(--border)}.layer.paint.target{color:var(--text);border-color:#7c8cff73}.layer-swatch{border-radius:4px;flex:none;width:28px;height:28px}.layer-swatch.bg{background:linear-gradient(135deg,#2f4f6f,#1f1d2b)}.layer-swatch.fg{background:repeating-linear-gradient(45deg, var(--pink) 0 3px, transparent 3px 7px);opacity:.6}.workspace{touch-action:none;overscroll-behavior:contain;flex:1;position:relative;overflow:auto}.workspace-inner{place-items:center;width:max-content;min-width:100%;height:max-content;min-height:100%;padding:60px 80px;display:grid}.stage{position:relative;box-shadow:0 0 0 1px #ffffff0f,0 24px 60px -20px #000c}.sheet-canvas{width:100%;height:100%;position:absolute;inset:0}.grid-overlay{pointer-events:none;background-image:linear-gradient(90deg,#ffffff24 1px,#0000 1px),linear-gradient(#ffffff24 1px,#0000 1px);position:absolute;inset:0}.brush-cursor{pointer-events:none;outline:1px solid #ffffffe6;position:absolute;box-shadow:0 0 0 1px #000000b3}.brush-cursor.round{border-radius:50%}.selection{outline:1px solid var(--accent);pointer-events:none;position:absolute;box-shadow:0 0 0 1px #00000080}.selection .handle,.crop-rect .handle{border:2px solid var(--accent);pointer-events:auto;background:#fff;border-radius:2px;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute}.h-nw{cursor:nwse-resize;top:0;left:0}.h-n{cursor:ns-resize;top:0;left:50%}.h-ne{cursor:nesw-resize;top:0;left:100%}.h-e{cursor:ew-resize;top:50%;left:100%}.h-se{cursor:nwse-resize;top:100%;left:100%}.h-s{cursor:ns-resize;top:100%;left:50%}.h-sw{cursor:nesw-resize;top:100%;left:0}.h-w{cursor:ew-resize;top:50%;left:0}.sel-label{background:var(--accent);color:#fff;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:5px;padding:2px 7px;font-size:11px;position:absolute;top:-26px;left:-1px}.toolstrip{z-index:5;border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#14161ce0;border-radius:12px;flex-direction:column;gap:3px;padding:5px;display:flex;position:absolute;top:14px;left:14px;box-shadow:0 10px 30px -10px #000000b3}.tool{width:40px;height:40px;color:var(--muted);background:0 0;border:0;border-radius:8px;place-items:center;display:grid;position:relative}.tool:hover{background:var(--raised);color:var(--text)}.tool.active{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff}.tool kbd{opacity:.55;font:600 8px/1 ui-monospace,monospace;position:absolute;bottom:2px;right:3px}.tool-color{border-top:1px solid var(--border);margin-top:4px;padding:4px}.tool-color span{border-radius:7px;width:32px;height:32px;display:block;box-shadow:inset 0 0 0 1px #ffffff26}.statusbar{border-top:1px solid var(--border);background:var(--panel);height:28px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:16px;padding:0 14px;font-size:11.5px;display:flex;overflow:hidden}.statusbar .coords{min-width:64px}.statusbar .hex{align-items:center;gap:6px;font-family:ui-monospace,monospace;display:flex}.statusbar .hex i{border-radius:3px;width:11px;height:11px;box-shadow:inset 0 0 0 1px #fff3}.statusbar .hint{color:var(--faint);text-overflow:ellipsis;margin-left:auto;overflow:hidden}.color-row{gap:10px;display:flex}.color-big{cursor:pointer;border-radius:10px;flex:none;width:64px;height:64px;position:relative;box-shadow:inset 0 0 0 1px #ffffff26}.color-big input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.color-meta{flex-direction:column;flex:1;gap:6px;display:flex}.hex-input{text-transform:uppercase;width:100%;font-family:ui-monospace,monospace}.swatches{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.swatch{aspect-ratio:1;border:0;border-radius:5px;transition:transform 80ms;box-shadow:inset 0 0 0 1px #ffffff1a}.swatch:hover{transform:scale(1.12)}.swatch.on{box-shadow:0 0 0 2px var(--panel), 0 0 0 3.5px var(--accent)}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#050609b3;place-items:center;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border-2);border-radius:14px;flex-direction:column;max-width:calc(100vw - 40px);max-height:calc(100vh - 40px);animation:.18s ease-out pop;display:flex;overflow:hidden;box-shadow:0 30px 80px -20px #000000e6}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-head h2{margin:0;font-size:15px}.modal-head .muted{font-size:12px}.modal-foot{border-top:1px solid var(--border);gap:8px;padding:12px 18px;display:flex}.modal.editor{width:1180px;height:760px}.editor-body{flex:1;min-height:0;display:flex}.crop-view{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;background-color:#1b1d24;background-image:linear-gradient(45deg,#22252e 25%,#0000 25%),linear-gradient(-45deg,#22252e 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#22252e 75%),linear-gradient(-45deg,#0000 75%,#22252e 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;flex:1;place-items:center;display:grid;position:relative;overflow:hidden}.crop-box{position:relative}.crop-box img{width:100%;height:100%;display:block}.crop-rect{cursor:move;outline:1.5px solid #fff;position:absolute;box-shadow:0 0 0 9999px #08090c9e}.crop-rect .thirds{pointer-events:none;background-image:linear-gradient(90deg,#0000 calc(33.33% - .5px),#ffffff40 calc(33.33% - .5px) calc(33.33% + .5px),#0000 calc(33.33% + .5px) calc(66.66% - .5px),#ffffff40 calc(66.66% - .5px) calc(66.66% + .5px),#0000 calc(66.66% + .5px)),linear-gradient(#0000 calc(33.33% - .5px),#ffffff40 calc(33.33% - .5px) calc(33.33% + .5px),#0000 calc(33.33% + .5px) calc(66.66% - .5px),#ffffff40 calc(66.66% - .5px) calc(66.66% + .5px),#0000 calc(66.66% + .5px));position:absolute;inset:0}.crop-hint{color:var(--muted);white-space:nowrap;pointer-events:none;background:#0c0d11cc;border-radius:999px;padding:5px 12px;font-size:11.5px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.editor-side{border-left:1px solid var(--border);flex-direction:column;flex:none;width:330px;display:flex;overflow-y:auto}.editor-side section{border-bottom:1px solid var(--border);flex-direction:column;gap:9px;padding:14px 16px;display:flex}.editor-side section>.btn{align-self:flex-start}.preview-section{flex:none}.preview-box{border-radius:8px;place-items:center;height:190px;display:grid;overflow:hidden}.modal.export{width:420px}.export-body{flex-direction:column;gap:14px;padding:16px 18px;display:flex}.export-body .field input[type=text]{color:var(--text)}.distort-outline{pointer-events:none;position:absolute;inset:0;overflow:visible}.distort-outline polygon,.corner-frame polygon{fill:none;stroke:var(--accent);stroke-width:1.5px}.distort-outline line,.corner-frame line{stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 3;opacity:.7}.corner-handle{border:2.5px solid var(--accent);cursor:move;z-index:2;background:#fff;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;box-shadow:0 1px 4px #0009}.corner-handle:hover{transform:scale(1.2)}.editor-stage{flex:1;min-width:0;display:flex;position:relative}.view-tabs{z-index:3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#14161ce6;position:absolute;top:12px;left:50%;transform:translate(-50%)}.view-tabs button{padding:0 16px}.corner-frame{position:relative}.corner-frame canvas,.corner-frame svg,.corner-origin{position:absolute}.corner-frame svg{pointer-events:none;inset:0;overflow:visible}.corner-origin{pointer-events:none;outline:1px dashed #ffffff4d}.corner-view{cursor:default}.btn:disabled{opacity:.4;cursor:default}.export-preview{border-radius:8px;place-items:center;height:220px;display:grid;overflow:hidden}.project-title{flex-direction:column;min-width:0;display:flex}.project-title strong{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:10.5px}.project-name{width:180px;color:var(--text);text-overflow:ellipsis;margin-left:-6px;font-size:14px;font-weight:600;background:0 0!important;border-color:#0000!important;height:24px!important;padding:0 6px!important}.project-name:hover{border-color:var(--border-2)!important}.project-name:focus{border-color:var(--accent)!important;background:var(--panel-2)!important}.save-status{color:var(--faint);white-space:nowrap;font-size:12px}.save-status.error{color:var(--danger)}.save-status.busy{color:var(--accent)}.account{justify-content:center;align-items:center;min-width:32px;display:flex}.danger-btn{color:#fff;background:var(--danger)!important;border-color:#0000!important}.modal.projects{width:860px;height:620px}.projects-body{flex-direction:column;flex:1;gap:12px;padding:18px;display:flex;overflow-y:auto}.confirm-bar{background:#ff5c6c1a;border-bottom:1px solid #ff5c6c4d;align-items:center;gap:8px;padding:10px 18px;font-size:12.5px;display:flex}.confirm-bar span{flex:1}.project-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.project-card{border:1px solid var(--border);background:var(--panel-2);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;padding:0;transition:border-color .12s,transform .12s;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--accent);transform:translateY(-1px)}.project-card.current{border-color:#7c8cff80}.project-card.new{min-height:210px;color:var(--muted);background:0 0;border-style:dashed;justify-content:center;align-items:center;gap:8px}.project-card.new:hover{color:var(--accent)}.project-thumb{aspect-ratio:1;color:var(--faint);place-items:center;display:grid}.project-thumb img{max-width:100%;max-height:100%}.project-meta{flex-direction:column;gap:2px;min-width:0;padding:8px 10px 10px;display:flex}.project-meta strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.project-meta span{color:var(--faint);font-size:11px}.project-badge{position:absolute;top:8px;left:8px}.project-delete{color:var(--text);opacity:0;background:#0c0d11d9;transition:opacity .12s;position:absolute;top:6px;right:6px}.project-card:hover .project-delete{opacity:1}@media (hover:none){.project-delete{opacity:1}}.project-confirm{background:#0c0d11f2;align-items:center;gap:6px;padding:8px;font-size:12px;display:flex;position:absolute;inset:auto 0 0}.project-confirm span{flex:1}
