:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--text:#fffffff0;--text-2:#ebebf59e;--text-3:#ebebf552;--fill-1:#7878805c;--fill-2:#7878803d;--fill-3:#76768029;--separator:#5454588c;--accent:#ffd60a;--accent-ink:#1c1600;--green:#30d158;--red:#ff453a;--blue:#0a84ff;--glass:#1e1e20b8;--glass-strong:#1c1c1edb;--glass-edge:#ffffff14;--radius-l:22px;--radius-m:14px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--toolbar-h:56px;--sheet-large:88dvh;--sheet-medium:46dvh;--sheet-head:76px;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font:100%/1.4 system-ui,-apple-system,SF Pro Text,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{-webkit-user-select:none;user-select:none}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.glass{background:var(--glass);-webkit-backdrop-filter:blur(30px)saturate(180%);backdrop-filter:blur(30px)saturate(180%);box-shadow:inset 0 .5px 0 var(--glass-edge), 0 10px 40px #00000059}.app{height:100dvh;position:relative;overflow:hidden}.toolbar{z-index:20;top:max(8px, env(safe-area-inset-top));height:var(--toolbar-h);border-radius:999px;align-items:center;gap:8px;padding:0 8px;display:flex;position:absolute;left:8px;right:8px}.toolbar-group{gap:2px;margin:0 auto;display:flex}.stage{inset:calc(var(--toolbar-h) + max(8px, env(safe-area-inset-top)) + 8px) 0 var(--sheet-medium) 0;place-items:center;padding:12px 16px;display:grid;position:absolute;overflow:hidden}.stage canvas{object-fit:contain;touch-action:none;border-radius:4px;max-width:100%;max-height:100%}.stage canvas.painting{cursor:crosshair}.empty-stage{bottom:0}.empty{text-align:center;justify-items:center;gap:10px;padding:24px;display:grid}.empty h1{letter-spacing:-.02em;margin:0;font-size:2.125rem;font-weight:700;line-height:1.1}.empty p{color:var(--text-2);margin:0 0 14px;font-size:1.0625rem}.empty .build{color:var(--text-3);font-variant-numeric:tabular-nums;margin:18px 0 0;font-size:.75rem}.pill,.icon-button,.chip,.icon,.segmented button,.grabber-button{cursor:pointer;transition:transform .12s var(--ease-out), background-color .16s ease, opacity .16s ease;border:0}.pill:active:not(:disabled),.icon-button:active:not(:disabled),.chip:active,.icon:active:not(:disabled){transition-duration:80ms;transform:scale(.96)}:disabled{opacity:.35;cursor:default}.pill{background:var(--fill-2);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:0 16px;font-size:.9375rem;font-weight:600;display:inline-flex}.pill.small{min-height:34px;padding:0 14px;font-size:.875rem}.pill.large{min-height:50px;padding:0 26px;font-size:1.0625rem}.pill.primary{background:var(--accent);color:var(--accent-ink)}.pill[aria-pressed=true]{background:var(--text);color:#000}.icon-button{background:0 0;border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.icon-button[aria-pressed=true]{background:var(--text);color:#000}.icon{width:34px;height:34px;color:var(--text-2);background:0 0;border-radius:50%;place-items:center;display:grid}@media (hover:hover) and (pointer:fine){.pill:hover:not(:disabled):not(.primary){background:var(--fill-1)}.icon-button:hover:not(:disabled),.icon:hover:not(:disabled){background:var(--fill-3)}.chip:hover{background:var(--fill-1)}}.chip{background:var(--fill-2);white-space:nowrap;border-radius:999px;flex:none;min-height:32px;padding:0 13px;font-size:.8125rem;font-weight:500}.chip[aria-pressed=true],.chip[aria-selected=true]{background:var(--text);color:#000}.protect-chip{box-shadow:inset 0 0 0 1.5px var(--green)}.chips,.add,.brush-row{scrollbar-width:none;gap:6px;padding:2px 0;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.add::-webkit-scrollbar{display:none}input[type=range]{appearance:none;touch-action:pan-y;background:0 0;width:100%;min-width:0;height:28px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) 0 var(--fill,50%), var(--fill-1) var(--fill,50%) 100%);border-radius:2px;height:4px}input[type=range]::-moz-range-track{background:var(--fill-1);border-radius:2px;height:4px}input[type=range]::-moz-range-progress{background:var(--accent);border-radius:2px;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;transition:transform .12s var(--ease-out);background:#fff;border-radius:50%;margin-top:-10px;box-shadow:0 2px 6px #00000059,0 0 0 .5px #0000000a}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:24px;height:24px}.switch{appearance:none;background:var(--fill-1);cursor:pointer;border-radius:999px;flex:none;width:44px;height:27px;margin:0;transition:background-color .2s;position:relative}.switch:after{content:"";width:23px;height:23px;transition:transform .22s var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0000004d}.switch:checked{background:var(--green)}.switch:checked:after{transform:translate(17px)}select,.chat-input input,.setting input,.preset-save input,.preset-name input{background:var(--fill-3);border:0;border-radius:10px;min-width:0;min-height:38px;padding:0 12px;font-size:.9375rem}select{appearance:auto}.segmented{background:var(--fill-3);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;padding:2px;display:grid;position:relative}.segmented button{z-index:1;min-height:32px;color:var(--text-2);white-space:nowrap;background:0 0;border-radius:8px;padding:0 6px;font-size:.8125rem;font-weight:600;position:relative}.segmented button[aria-selected=true]{color:var(--text)}.segmented-pill{transition:transform .22s var(--ease-out), width .22s var(--ease-out);background:#636366bf;border-radius:8px;position:absolute;top:2px;bottom:2px;left:0;box-shadow:0 3px 8px #0003}.panel{z-index:10;height:var(--sheet-large);border-radius:var(--radius-l) var(--radius-l) 0 0;will-change:transform;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.panel-head{touch-action:none;cursor:grab;flex:none;padding:6px 16px 10px}.grabber-button{background:0 0;width:100%;height:18px;padding:0;display:block}.grabber,.modal-sheet>.grabber{background:var(--text-3);border-radius:3px;width:36px;height:5px;margin:6px auto;display:block}.panel-body{overscroll-behavior:contain;min-height:0;padding:0 16px max(16px, env(safe-area-inset-bottom));flex:1;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 0,#000 10px);mask-image:linear-gradient(#0000 0,#000 10px)}.panel[data-detent=medium] .panel-body{height:calc(var(--sheet-medium) - var(--sheet-head));flex:none}@media (width>=700px){.stage{inset:calc(var(--toolbar-h) + 16px) min(400px, 40%) 0 0;padding:16px 24px 24px}.panel{top:calc(var(--toolbar-h) + 16px);border-radius:var(--radius-l);width:calc(min(400px,40%) - 16px);height:auto;bottom:8px;left:auto;right:8px;transform:none!important}.panel-head{cursor:default;padding-top:12px}.panel[data-detent] .panel-body{flex:1;height:auto}.add{flex-wrap:wrap}.chat-lines{max-height:none}}.recipe,.regions,.presets,.chat{gap:12px;padding-top:4px;display:grid}.steps{gap:10px;margin:0;padding:0;list-style:none;display:grid}.card{border-radius:var(--radius-m);background:var(--fill-3);min-width:0;padding:12px 12px 14px}.step{gap:8px;transition:opacity .2s;display:grid}.step.off .param,.step.off .chips{opacity:.4}.step-head{align-items:center;gap:8px;min-width:0;display:flex}.toggle{cursor:pointer;align-items:center;gap:10px;min-width:0;display:flex}.step-name{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:600;overflow:hidden}.toggle.small{gap:8px;font-size:.875rem}.toggle.small input{width:18px;height:18px;accent-color:var(--accent)}.tools{flex:none;margin-left:auto;display:flex}.badge{background:var(--accent);color:var(--accent-ink);letter-spacing:.02em;border-radius:6px;flex:none;padding:2px 6px;font-size:.6875rem;font-weight:700}.reason,.caption,.hint{color:var(--text-2);margin:0;font-size:.8125rem;line-height:1.35}.hint{padding:8px 2px}.section-title{color:var(--text-2);letter-spacing:.04em;text-transform:uppercase;margin:6px 2px -4px;font-size:.75rem;font-weight:600}.param{grid-template-columns:1fr auto;align-items:center;column-gap:8px;min-width:0;display:grid}.param-label{color:var(--text-2);font-size:.875rem}.param output{font-variant-numeric:tabular-nums;color:var(--text);font-size:.875rem}.param input[type=range]{grid-column:1/-1}.param-select{grid-template-columns:auto 1fr}.param-select select{justify-self:end;max-width:70%}.protect{gap:6px;padding-top:2px;display:grid}.regions .region{gap:8px;display:grid}.region.role-protect{box-shadow:inset 0 0 0 1.5px #30d15899}.region.role-remove{box-shadow:inset 0 0 0 1.5px #ff453a99}.field-inline{color:var(--text-2);align-items:center;gap:8px;font-size:.875rem;display:flex}.preset-save,.preset-name{align-items:center;gap:8px;min-width:0;display:flex}.preset-save input,.preset-name input{flex:1}.preset-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.preset{border-radius:var(--radius-m);background:var(--fill-3);align-items:center;gap:6px;min-width:0;padding:10px 12px;display:flex}.preset .preset-name{flex:1;gap:2px;min-width:0;display:grid}.preset strong{text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;overflow:hidden}.chat-lines{gap:6px;max-height:26dvh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.chat-line{overflow-wrap:anywhere;max-width:85%;animation:bubble-in .24s var(--ease-out);border-radius:18px;padding:8px 12px;font-size:.9375rem;line-height:1.35}.chat-line.user{background:var(--blue);color:#fff;border-bottom-right-radius:6px;justify-self:end}.chat-line.assistant{background:var(--fill-2);border-bottom-left-radius:6px;justify-self:start}.chat-line.error{color:var(--red);background:0 0;justify-self:start;padding-left:2px}.chat-line.pending{color:var(--text-2)}@keyframes bubble-in{0%{opacity:0;transform:translateY(6px)scale(.98)}}.chat-input{align-items:center;gap:6px;min-width:0;display:flex}.chat-input input{border-radius:999px;flex:1;min-height:40px;padding:0 16px}.chat-settings{gap:10px;display:grid}.setting{color:var(--text-2);gap:4px;font-size:.8125rem;display:grid}.status-pill{z-index:30;top:calc(max(8px, env(safe-area-inset-top)) + var(--toolbar-h) + 10px);background:var(--glass-strong);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:.8125rem;font-weight:500;transition:opacity .2s;display:flex;position:absolute;left:50%;transform:translate(-50%)}@starting-style{.status-pill{opacity:0}}.spinner{border:2px solid var(--text-3);border-top-color:var(--text);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{z-index:40;top:calc(max(8px, env(safe-area-inset-top)) + 4px);background:var(--glass-strong);-webkit-backdrop-filter:blur(24px)saturate(180%);backdrop-filter:blur(24px)saturate(180%);max-width:480px;color:var(--text);cursor:pointer;transition:transform .26s var(--ease-out), opacity .26s var(--ease-out);border-radius:16px;margin:0 auto;padding:12px 16px;font-size:.875rem;position:absolute;left:12px;right:12px;box-shadow:inset 0 0 0 .5px #ff453a80,0 10px 30px #0006}@starting-style{.toast{opacity:0;transform:translateY(-16px)}}.toast:before{content:"⚠︎ ";color:var(--red);font-weight:700}.scrim{z-index:50;opacity:0;transition:opacity .3s var(--ease-out);background:#00000073;border:0;position:absolute;inset:0}.scrim.shown{opacity:1}.modal-sheet{z-index:60;max-width:520px;padding:2px 20px max(20px, env(safe-area-inset-bottom));border-radius:var(--radius-l) var(--radius-l) 0 0;background:var(--glass-strong);touch-action:none;will-change:transform;margin:0 auto;position:absolute;bottom:0;left:0;right:0}.export{gap:14px;display:grid}.export h2{letter-spacing:-.01em;margin:4px 0 -8px;font-size:1.25rem}.row{justify-content:flex-end;gap:10px;display:flex}.row .pill{flex:1}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}.spinner{border-top-color:var(--text-2);animation:none}}@media (prefers-reduced-transparency:reduce){.glass,.toast,.status-pill,.modal-sheet{-webkit-backdrop-filter:none;backdrop-filter:none;background:#1c1c1e}}@media (prefers-contrast:more){.glass,.card,.chip,.pill{box-shadow:inset 0 0 0 1px #ffffff80}:root{--text-2:#ebebf5d9}}
