@font-face{font-family:Noto Serif SC;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-serif-sc-chinese-simplified-700-normal-B9DMK6uu.woff2)format("woff2"),url(/assets/noto-serif-sc-chinese-simplified-700-normal-CqJZCHp9.woff)format("woff")}:root{--night:#161827;--night-raised:#202238;--plum:#302d43;--ink-light:#f4eddc;--ink-muted:#c2b8ab;--rail-line:#ede1c933;--paper:#ece1c9;--paper-bright:#f7f0df;--paper-shadow:#c7b68f;--paper-ink:#292634;--paper-muted:#6c625e;--paper-line:#b8a37e;--copper:#bd6d51;--signal:#8bd9c6;color:var(--ink-light);background:var(--night);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;font-family:Noto Sans CJK SC,Microsoft YaHei,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}html,body{background:var(--night)}body{min-height:100vh}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}::selection{color:var(--night);background:var(--signal)}button,input,select{font:inherit}button,input:not([type=range]):not([type=color]),select,.file-picker{min-height:44px}button:focus-visible,input:focus-visible,select:focus-visible,.file-picker:focus-within{outline:3px solid var(--signal);outline-offset:3px}button{color:#201c25;background:var(--signal);cursor:pointer;border:1px solid #0000;border-radius:.55rem;padding:.68rem .95rem;font-weight:800}button:disabled{color:#82798c;cursor:not-allowed;background:#393648}.app-shell{width:min(100%,100rem);min-height:100vh;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));margin:0 auto}.hero{border-bottom:1px solid var(--rail-line);gap:1.15rem;padding:.75rem 0 1.65rem;display:grid}h1,h2,p{overflow-wrap:anywhere}h1{max-width:13ch;color:var(--ink-light);letter-spacing:-.038em;text-wrap:balance;margin:0;font-family:Noto Serif SC,serif;font-size:clamp(2.25rem,6vw,4.9rem);font-weight:700;line-height:1.04}h2{letter-spacing:-.015em;margin:0;font-size:1.04rem;font-weight:850;line-height:1.25}.hero-copy{max-width:45ch;color:var(--ink-muted);margin:.9rem 0 0;font-size:.98rem;line-height:1.6}.hero-status{border:1px solid var(--rail-line);width:fit-content;color:var(--signal);letter-spacing:.04em;border-radius:.45rem;align-self:end;margin:0;padding:.55rem .7rem;font-size:.78rem;font-weight:760;line-height:1.35}.workspace-layout{align-items:start;gap:1.2rem;padding-top:1.2rem;display:grid}.compact-workbench-actions{display:none}.control-column,.result-column{min-width:0}.control-column{border:1px solid var(--rail-line);background:var(--plum);border-radius:.9rem;gap:0;display:grid;overflow:hidden;box-shadow:0 1rem 2.75rem #0102094d}.result-column{order:-1;gap:.8rem;display:grid}.panel{color:var(--ink-light);padding:1.05rem}.control-section+.control-section{border-top:1px solid var(--rail-line)}.panel-heading,.preview-heading{justify-content:space-between;align-items:flex-start;gap:.9rem;display:flex}.panel-heading{margin-bottom:1rem}.panel-heading h2{color:var(--ink-light)}.file-name,.technique-badge,.non-destructive{border:1px solid var(--rail-line);max-width:11.5rem;color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;background:#1314224d;border-radius:.4rem;padding:.3rem .5rem;font-size:.72rem;font-weight:760;line-height:1.35;overflow:hidden}.technique-badge{color:var(--signal)}.file-picker{width:100%;color:var(--night);background:var(--signal);cursor:pointer;border:1px solid #8bd9c6bf;border-radius:.6rem;place-items:center;padding:.95rem 1rem;font-weight:850;display:grid}.file-picker input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hint,.privacy-note{color:var(--ink-muted);font-size:.84rem;line-height:1.55}.hint{margin:.75rem 0 0}.privacy-note{margin:.35rem 0 0}.status{color:var(--signal);margin:.85rem 0 0;font-weight:800}.inline-error{color:#ffd4cb;background:#6627365c;border:1px solid #ffb3a1bf;border-radius:.55rem;margin-top:1rem;padding:.85rem}.inline-error p{margin:0 0 .75rem}.control-group,.preset-options,.axis-options{border:0;margin:0;padding:0}.control-group legend,.preset-options legend,.axis-options legend{color:var(--ink-muted);letter-spacing:.055em;margin-bottom:.55rem;font-size:.76rem;font-weight:820;line-height:1.4}.control-grid,.crop-grid{grid-template-columns:minmax(0,1fr);gap:.75rem;display:grid}.control-grid{margin-top:1rem}.control-grid label,.crop-grid label,.transparency-controls label{color:var(--ink-light);gap:.4rem;font-size:.82rem;font-weight:730;display:grid}input[type=number],select{border:1px solid var(--rail-line);width:100%;color:var(--ink-light);background:var(--night-raised);font-variant-numeric:tabular-nums;border-radius:.5rem;padding:.62rem .7rem}.checkbox-control{align-items:center;min-height:44px;flex-direction:row!important;gap:.55rem!important;display:flex!important}.checkbox-control input,.preset-card input,.axis-options input{width:1.05rem;height:1.05rem;accent-color:var(--signal)}.slider-stack{gap:.8rem;margin-top:1rem;display:grid}.range-control{min-height:44px;color:var(--ink-light);grid-template-columns:4rem minmax(0,1fr) 2.5rem;align-items:center;gap:.65rem;font-size:.84rem;font-weight:750;display:grid}.range-control input{width:100%;accent-color:var(--signal)}.range-control output{font-variant-numeric:tabular-nums;text-align:right}input[type=color]{border:1px solid var(--rail-line);background:var(--night-raised);border-radius:.5rem;width:100%;min-height:44px;padding:.18rem}.generation-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.axis-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:1rem;display:grid}.axis-options legend{grid-column:1/-1}.axis-options label{border:1px solid var(--rail-line);min-height:44px;color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:.5rem;align-items:center;gap:.45rem;padding:.45rem .55rem;font-size:.84rem;font-weight:760;line-height:1.3;display:flex}.axis-options label:has(input:checked){border-color:var(--signal);color:var(--ink-light);background:#8bd9c61f}.derived-size{color:var(--ink-muted);justify-content:space-between;align-items:baseline;gap:.75rem;margin:1rem 0 0;font-size:.84rem;display:flex}.derived-size output{color:var(--ink-light);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.96rem;font-weight:850}.preset-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:1rem;display:grid}.preset-options legend{grid-column:1/-1}.preset-card{border:1px solid var(--rail-line);min-height:44px;color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:.5rem;justify-content:center;align-items:center;gap:.35rem;padding:.42rem;font-size:.82rem;font-weight:760;display:flex}.preset-card:has(input:checked){border-color:var(--signal);color:var(--ink-light);background:#8bd9c61f}.primary-button{width:100%;margin-top:1rem}.generation-actions{gap:.75rem;margin-top:1rem;display:grid}.generation-actions .status{margin:0}.secondary-button,.undo-edit-button{color:var(--ink-light);border-color:var(--rail-line);background:0 0}.preview-card,.empty-preview{color:var(--paper-ink);background:var(--paper);box-shadow:0 1.4rem 3.5rem #01020961}.preview-card{border:1px solid var(--paper-shadow);border-radius:.95rem;overflow:hidden}.preview-heading{border-bottom:1px solid var(--paper-line);align-items:end;padding:1.15rem 1.1rem .95rem}.preview-heading h2{color:var(--paper-ink);font-size:clamp(1.12rem,2vw,1.4rem)}.preview-actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.pattern-view-switch{border:1px solid var(--paper-line);background:var(--paper-bright);border-radius:.5rem;display:inline-flex;overflow:hidden}.pattern-view-switch button{min-height:38px;color:var(--paper-muted);white-space:nowrap;background:0 0;border:0;border-radius:0;padding:.45rem .55rem;font-size:.72rem;font-weight:800;line-height:1.2}.pattern-view-switch button+button{border-left:1px solid var(--paper-line)}.pattern-view-switch button[aria-pressed=true]{color:var(--paper-bright);background:var(--paper-ink)}.pattern-view-select{min-width:0;display:block}.pattern-view-select select{width:100%;min-height:42px;color:var(--paper-ink);border:1px solid var(--paper-line);background:var(--paper-bright);border-radius:.5rem;padding:.45rem .55rem;font:800 .76rem/1.15 ui-sans-serif,system-ui,sans-serif}.edit-mode-button,.export-pattern-button{border-color:var(--paper-line);min-height:38px;color:var(--paper-ink);background:var(--paper-bright);white-space:nowrap;padding:.5rem .7rem;font-size:.78rem;line-height:1.25}.edit-mode-button[aria-pressed=true]{border-color:var(--paper-ink);color:var(--paper-bright);background:var(--paper-ink)}.export-error{color:#8c3541;margin:0;padding:.65rem 1.1rem 0;font-size:.82rem;font-weight:760;line-height:1.45}.result-summary{color:var(--paper-muted);text-align:right;white-space:nowrap;margin:0;font-size:.84rem;line-height:1.45}.result-summary strong{color:var(--paper-ink);font-variant-numeric:tabular-nums}.canvas-scroll{background:var(--paper-bright);overscroll-behavior-inline:contain;scrollbar-color:#837457 transparent;scrollbar-width:thin;max-width:100%;padding:.8rem;overflow:auto}.canvas-scroll canvas{border:1px solid var(--paper-line);background:#fffaf0;max-width:none;display:block;box-shadow:0 .5rem 1.25rem #41311f29}.canvas-scroll-hint{color:var(--paper-muted);margin:0;padding:.55rem 1.1rem 0;font-size:.78rem;line-height:1.45;display:none}.canvas-keyboard-hint{color:var(--paper-muted);margin:0;padding:.65rem 1.1rem 0;font-size:.78rem;line-height:1.45}.selection-controls{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.9rem 1.1rem 0;display:grid}.selection-summary,.edit-dirty-hint{color:var(--paper-muted);margin:0;font-size:.86rem;line-height:1.45}.edit-dirty-hint{color:#2a675d;margin:.8rem 1.1rem 0;font-weight:800}.undo-edit-button{color:var(--paper-ink);border-color:var(--paper-line);background:0 0;font-size:.82rem}.undo-edit-button:disabled,.palette-select-button:disabled,.global-color-button:disabled{cursor:not-allowed;opacity:.48}.palette-legend{border-top:1px solid var(--paper-line);scrollbar-color:#837457 transparent;scrollbar-width:thin;gap:.45rem;margin:0;padding:1rem 1.1rem 1.15rem;list-style:none;display:flex;overflow-x:auto}.palette-legend li{min-width:max-content;color:var(--paper-ink);white-space:nowrap;align-items:center;gap:.4rem;font-size:.8rem;font-weight:760;display:flex}.palette-stitch-label{color:var(--paper-muted);font-weight:760}.palette-stitch-select{min-height:36px;color:var(--paper-ink);border:1px solid var(--paper-line);background:var(--paper-bright);font:inherit;border-radius:.4rem;padding:.35rem .45rem}.palette-editor{gap:.45rem;min-width:15rem;display:grid}.palette-editor-actions{align-items:stretch;gap:.4rem;display:flex}.palette-select-button,.global-color-button{border:1px solid var(--paper-line);min-height:40px;color:var(--paper-ink);background:var(--paper-bright);font:inherit;font-size:inherit;font-weight:inherit;text-align:left;border-radius:.45rem;align-items:center;gap:.4rem;padding:.35rem .45rem;display:flex}.palette-select-button{flex:auto;min-width:0}.palette-select-button[aria-pressed=true]{border-color:#006b5d;box-shadow:inset 0 0 0 1px #006b5d}.global-color-button{color:var(--paper-muted);white-space:nowrap;background:0 0;flex:none;justify-content:center;font-size:.76rem}.global-color-editor{border-top:1px solid #b8a37ead;align-items:end;gap:.45rem;padding-top:.45rem;display:flex}.global-color-editor label{min-width:0;color:var(--paper-muted);flex:auto;gap:.3rem;font-size:.72rem;font-weight:760;line-height:1.25;display:grid}.global-color-editor input[type=color]{border-color:var(--paper-line);background:var(--paper-bright);border-radius:.4rem;width:100%;min-height:36px;padding:.15rem}.global-color-editor button{min-height:36px;color:var(--paper-bright);background:var(--paper-ink);white-space:nowrap;padding:.45rem .55rem;font-size:.74rem;line-height:1.2}.color-swatch,.no-stitch-swatch{border:1px solid #5a514e;border-radius:.28rem;flex:none;width:1.15rem;height:1.15rem}.no-stitch-swatch{background:#ecebee}.canvas-scroll--browse{touch-action:pan-x pan-y pinch-zoom}.canvas-scroll--paint{touch-action:none}.mobile-workbench{min-height:100dvh;color:var(--paper-ink);background:radial-gradient(circle at 18% 0%, #cca96c29, transparent 28rem), linear-gradient(145deg, var(--night), #0e101d 58%, #1f1927)}.mobile-app-bar{min-height:calc(3.6rem + env(safe-area-inset-top));padding:max(.8rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) .8rem max(1rem, env(safe-area-inset-left));color:var(--paper-bright);border-bottom:1px solid #f7f0df24;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.mobile-app-bar p{letter-spacing:.02em;margin:0;font-family:Georgia,Noto Serif SC,serif;font-size:.98rem;font-weight:800}.mobile-app-bar p span{color:#f7f0df94;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.72rem;font-weight:700}.mobile-app-bar button,.mobile-app-bar label{min-height:40px;color:var(--paper-bright);cursor:pointer;background:0 0;border:1px solid #f7f0df47;border-radius:.45rem;align-items:center;padding:.35rem .55rem;font:750 .8rem/1 ui-sans-serif,system-ui,sans-serif;display:inline-flex}.mobile-import-content,.mobile-settings-content{box-sizing:border-box;width:min(100%,42rem);padding:2.6rem max(1rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));margin:0 auto}.mobile-import-content{align-content:center;min-height:calc(100dvh - 4.5rem);display:grid}.mobile-eyebrow{color:#9c805c;letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:850}.mobile-import-content h1,.mobile-settings-content>h1,.mobile-result-heading h1{color:var(--paper-bright);margin:.5rem 0 0;font-family:Georgia,Noto Serif SC,serif;font-size:clamp(2rem,8vw,3rem);line-height:1.08}.mobile-intro{color:#f7f0dfb3;max-width:28rem;margin:.85rem 0 1.55rem;font-size:.92rem;line-height:1.65}.mobile-import-content .import-panel,.mobile-settings-content .generation-panel{box-sizing:border-box;border-color:#b8a37eb3;width:100%;box-shadow:0 1.1rem 2.8rem #0000003d}.mobile-settings-content{padding-top:1.6rem}.mobile-settings-content>h1{font-size:clamp(1.75rem,7vw,2.5rem)}.mobile-settings-content .mobile-intro{margin-bottom:1rem}.mobile-result-workbench{grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;display:grid;overflow:hidden}.mobile-result-sheet{min-width:0;min-height:0;margin:1rem max(.75rem, env(safe-area-inset-right)) 0 max(.75rem, env(safe-area-inset-left));background:var(--paper-bright);border:1px solid #f7f0df42;border-radius:.9rem .9rem 0 0;grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 1.4rem 3.4rem #00000047}.mobile-result-heading{border-bottom:1px solid var(--paper-line);padding:1.25rem 1.1rem .9rem}.mobile-result-heading h1{color:var(--paper-ink);font-size:clamp(1.55rem,6vw,2.25rem)}.mobile-result-metadata{justify-content:space-between;align-items:center;gap:.65rem;margin-top:.55rem;display:flex}.mobile-result-metadata .pattern-view-select{flex:0 8.5rem}.mobile-result-metadata p{color:var(--paper-muted);white-space:nowrap;margin:0;font-size:.8rem;font-weight:700}.mobile-result-sheet .canvas-scroll--editor,.mobile-editor-canvas .canvas-scroll--editor{box-sizing:border-box;background:linear-gradient(145deg, #e9dcc5, var(--paper));-webkit-overflow-scrolling:touch;max-width:100%;min-height:0;padding:1rem;overflow:auto}.mobile-result-sheet .canvas-scroll--editor{height:100%;padding:.5rem}.mobile-result-actions{padding:.85rem max(.75rem, env(safe-area-inset-right)) max(.85rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));grid-template-columns:1.15fr 1fr 1fr;gap:.55rem;display:grid}.mobile-result-actions button,.mobile-primary-action{min-height:48px;color:var(--paper-bright);background:#ffffff0f;border:1px solid #f7f0df59;border-radius:.55rem;padding:.65rem .45rem;font:780 .78rem/1.15 ui-sans-serif,system-ui,sans-serif}.mobile-result-actions .mobile-primary-action,.mobile-primary-action{color:var(--night);border-color:var(--signal);background:var(--signal)}.mobile-result-actions button:disabled,.mobile-edit-actions button:disabled{opacity:.48}.mobile-result-pending{min-height:36dvh;color:var(--paper-bright);place-content:center;display:grid}.mobile-export-error{color:#ffd9d7;background:#6d1f226b;border:1px solid #f589847a;border-radius:.5rem;margin:0 .85rem 1rem;padding:.75rem;font-size:.82rem}.visually-hidden-file-input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.mobile-editor-workbench{grid-template-rows:auto auto minmax(0,1fr) auto;height:100dvh;display:grid;overflow:hidden}.mobile-editor-topbar{padding:.7rem max(.75rem, env(safe-area-inset-right)) .7rem max(.75rem, env(safe-area-inset-left));background:#171928;border-bottom:1px solid #f7f0df24;justify-content:space-between;align-items:center;gap:.65rem;display:flex}.mobile-editor-topbar .pattern-view-select{flex:none;width:7.85rem}.mobile-editor-topbar .pattern-view-select select{min-height:38px;color:var(--paper-bright);background:#ffffff0d;border-color:#f7f0df33}.interaction-switch,.mobile-zoom-controls{border:1px solid #f7f0df33;border-radius:.45rem;align-items:stretch;min-height:38px;display:inline-flex;overflow:hidden}.interaction-switch button,.mobile-zoom-controls button{min-width:42px;color:var(--paper-bright);background:0 0;border:0;padding:.35rem .55rem;font:750 .76rem/1 ui-sans-serif,system-ui,sans-serif}.interaction-switch button[aria-pressed=true]{color:var(--night);background:var(--signal)}.mobile-zoom-controls output{color:#f7f0dfcc;border-inline:1px solid #f7f0df2e;place-content:center;min-width:42px;font:700 .72rem/1 ui-monospace,monospace;display:grid}.mobile-editor-canvas{background:#111320;min-height:0;overflow:hidden}.mobile-editor-canvas .canvas-scroll--editor{height:100%;padding:1rem max(.85rem, env(safe-area-inset-right)) 1rem max(.85rem, env(safe-area-inset-left));background:linear-gradient(90deg,#1e1f2d0d 1px,#0000 1px) 0 0/24px 24px,linear-gradient(#e8dac2,#f5ecdb)}.mobile-editor-dock{padding:.65rem max(.75rem, env(safe-area-inset-right)) max(.65rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));color:var(--paper-bright);background:#171928;border-top:1px solid #f7f0df24}.mobile-color-strip{overscroll-behavior-inline:contain;gap:.45rem;padding-bottom:.65rem;display:flex;overflow-x:auto}.mobile-color-button{min-width:48px;min-height:48px;color:var(--paper-bright);background:0 0;border:1px solid #f7f0df3d;border-radius:.5rem;flex:none;place-items:center;padding:.25rem;display:grid}.mobile-color-button[aria-pressed=true]{border-color:var(--signal);box-shadow:inset 0 0 0 1px var(--signal)}.mobile-color-button>span{border:1px solid #00000073;border-radius:.3rem;width:21px;height:21px}.mobile-color-button small{margin-top:.1rem;font:700 .65rem/1 ui-monospace,monospace}.mobile-edit-actions{grid-template-columns:minmax(0,1fr) minmax(5.5rem,.5fr);gap:.55rem;display:grid}.mobile-edit-actions button{min-height:44px;color:var(--paper-bright);background:#ffffff0d;border:1px solid #f7f0df42;border-radius:.5rem;padding:.5rem;font:750 .78rem/1 ui-sans-serif,system-ui,sans-serif}.mobile-editor-dock .edit-dirty-hint{color:#e5bc82;margin:.55rem 0 0;font-size:.75rem}.mobile-color-drawer-backdrop{z-index:20;background:#00000085;align-items:end;display:grid;position:fixed;inset:0}.mobile-color-drawer{padding:1.2rem max(1rem, env(safe-area-inset-right)) max(1.2rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));border:1px solid var(--paper-line);color:var(--paper-ink);background:var(--paper-bright);border-bottom:0;border-radius:1rem 1rem 0 0;gap:1rem;display:grid;box-shadow:0 -1.5rem 3rem #00000047}.mobile-drawer-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.mobile-drawer-heading h2{margin:.35rem 0 0;font-family:Georgia,Noto Serif SC,serif}.mobile-drawer-heading button{min-height:36px;color:var(--paper-muted);border-color:var(--paper-line);font:inherit;background:0 0}.mobile-color-input{color:var(--paper-muted);gap:.45rem;font-size:.84rem;font-weight:750;display:grid}.mobile-color-input input{box-sizing:border-box;border-color:var(--paper-line);background:var(--paper);border-radius:.45rem;width:100%;min-height:48px;padding:.25rem}.mobile-stitch-input{color:var(--paper-muted);gap:.45rem;font-size:.84rem;font-weight:750;display:grid}.mobile-stitch-input select{width:100%;min-height:48px;color:var(--paper-ink);border:1px solid var(--paper-line);background:var(--paper);font:inherit;border-radius:.45rem;padding:.55rem .65rem}.mobile-color-drawer .mobile-primary-action{min-height:48px;font:800 .84rem/1 ui-sans-serif,system-ui,sans-serif}.empty-preview{border:1px solid var(--paper-shadow);text-align:center;border-radius:.95rem;place-content:center;min-height:22rem;padding:2rem;display:grid}.empty-preview h2{max-width:14ch;color:var(--paper-ink);letter-spacing:-.03em;margin:0 auto;font-size:clamp(1.5rem,3.5vw,2.5rem);font-weight:850;line-height:1.12}.empty-preview p{max-width:29ch;color:var(--paper-muted);margin:.75rem auto 0;line-height:1.6}.confirmation-backdrop{z-index:10;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));background:#090a12c2;place-items:center;display:grid;position:fixed;inset:0}.confirmation-dialog{border:1px solid var(--paper-shadow);width:min(100%,30rem);color:var(--paper-ink);background:var(--paper-bright);border-radius:.8rem;padding:1.3rem;box-shadow:0 1.4rem 4rem #00000070}.confirmation-dialog>p{color:var(--paper-muted);line-height:1.6}.confirmation-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1.25rem;display:grid}.confirmation-dialog .secondary-button{color:var(--paper-ink);border-color:var(--paper-line)}@media (hover:hover){button:not(:disabled):hover,.file-picker:hover{color:var(--night);background:#d1f2e9}.secondary-button:not(:disabled):hover{color:var(--night);border-color:var(--signal);background:var(--signal)}.axis-options label:hover,.preset-card:hover{color:var(--ink-light);border-color:#8bd9c6b8}.edit-mode-button:not(:disabled):hover,.undo-edit-button:not(:disabled):hover,.export-pattern-button:not(:disabled):hover,.palette-select-button:not(:disabled):hover,.global-color-button:not(:disabled):hover{border-color:var(--paper-ink);color:var(--paper-ink);background:#fffaf07a}.edit-mode-button[aria-pressed=true]:not(:disabled):hover,.global-color-editor button:not(:disabled):hover{border-color:var(--paper-ink);color:var(--paper-bright);background:#403d49}}@media (prefers-reduced-motion:no-preference){button,.file-picker,.axis-options label,.preset-card,.edit-mode-button,.undo-edit-button,.export-pattern-button,.palette-select-button,.global-color-button,.global-color-editor button{transition:color .18s ease-out,background-color .18s ease-out,border-color .18s ease-out,box-shadow .18s ease-out}.preview-card,.empty-preview{animation:.48s cubic-bezier(.16,1,.3,1) both sheet-arrive}}@keyframes sheet-arrive{0%{clip-path:inset(1.5% 0 0 round .95rem);box-shadow:0 .7rem 1.8rem #0102092e}to{clip-path:inset(0 round .95rem);box-shadow:0 1.4rem 3.5rem #01020961}}@media (pointer:coarse){button,input:not([type=range]):not([type=color]),select,.file-picker,.axis-options label,.preset-card,.edit-mode-button,.undo-edit-button,.export-pattern-button,.palette-select-button,.global-color-button,.global-color-editor button{min-height:48px}}@media (width<=719px){.canvas-scroll-hint{display:block}.selection-controls{grid-template-columns:1fr}.undo-edit-button{width:100%}.global-color-editor{align-items:stretch}}@media (width<=480px){.mobile-result-heading{padding:.65rem 1rem .35rem}.mobile-result-heading .mobile-eyebrow{display:none}.mobile-result-heading h1,.mobile-result-metadata{margin-top:0}.mobile-result-actions{padding-top:.55rem;padding-bottom:max(.55rem, env(safe-area-inset-bottom))}.preview-heading{flex-wrap:wrap}.preview-actions{width:100%;margin-left:0}.preview-actions>button{flex:1 1 0}.result-summary{text-align:left;flex-basis:100%}.palette-editor{min-width:min(16rem,100vw - 4.5rem)}.mobile-editor-topbar{grid-template-columns:minmax(0,1fr) auto;display:grid}.mobile-editor-topbar .pattern-view-select{grid-column:1/-1;width:100%}}@media (width<=1099px){.compact-workbench-actions{align-items:center;gap:.65rem;padding:.85rem 0 0;display:flex}.compact-upload,.compact-workbench-actions a{border:1px solid var(--rail-line);min-height:44px;color:var(--ink-light);cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;padding:.55rem .8rem;font-size:.84rem;font-weight:800;text-decoration:none;display:inline-flex}.compact-upload{color:var(--night);border-color:var(--signal);background:var(--signal)}}@media (width>=720px){.app-shell{padding:1.7rem max(1.75rem, env(safe-area-inset-right)) max(2.5rem, env(safe-area-inset-bottom)) max(1.75rem, env(safe-area-inset-left))}.hero{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:2rem;padding:1rem 0 2rem}.workspace-layout{gap:1.5rem;padding-top:1.5rem}.panel{padding:1.3rem}.preview-heading{padding:1.3rem 1.35rem 1.1rem}.control-grid,.crop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.canvas-scroll{padding:1.15rem}.canvas-keyboard-hint,.selection-controls,.palette-legend,.export-error{padding-inline:1.35rem}.confirmation-actions{justify-content:flex-end;display:flex}}@media (width>=1100px){.app-shell{padding-top:2.6rem}.app-shell--has-result{padding-top:1.25rem}.app-shell--has-result .hero{padding:.2rem 0 .85rem}.app-shell--has-result h1{letter-spacing:-.03em;max-width:none;font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:1.12}.app-shell--has-result .hero-copy{display:none}.app-shell--has-result .workspace-layout{padding-top:.85rem}.workspace-layout{grid-template-columns:minmax(19rem,24rem) minmax(0,1fr);gap:1.8rem}.control-column{position:sticky;top:1.35rem}.result-column{order:0}.preview-heading{padding:1.55rem 1.65rem 1.25rem}.canvas-scroll{padding:1.4rem}.canvas-keyboard-hint,.selection-controls,.palette-legend,.export-error{padding-inline:1.65rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
