@font-face{font-family:Noto Serif TC;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-serif-tc-chinese-traditional-400-normal-DQpnKpeM.woff2)format("woff2")}@font-face{font-family:Noto Serif TC;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-serif-tc-chinese-traditional-700-normal-CplHwGhL.woff2)format("woff2")}@font-face{font-family:Noto Sans TC;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-tc-chinese-traditional-400-normal-ijqRPkq_.woff2)format("woff2")}@font-face{font-family:Noto Sans TC;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-sans-tc-chinese-traditional-700-normal-C8s0_Inz.woff2)format("woff2")}@font-face{font-family:Noto Sans TC;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-tc-latin-400-normal-DiJT3MpU.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans TC;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-sans-tc-latin-700-normal-BQmIo_OV.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:LXGW WenKai TC;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lxgw-wenkai-tc-chinese-traditional-400-normal-BfqVVHHX.woff2)format("woff2")}@font-face{font-family:LXGW WenKai TC;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lxgw-wenkai-tc-latin-400-normal-123bg8iA.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Zen Maru Gothic;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/zen-maru-gothic-latin-400-normal-D528XlL5.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Zen Maru Gothic;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/zen-maru-gothic-latin-700-normal-CSiy1nnP.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/playfair-display-latin-400-normal-CFtfchNt.woff2)format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/playfair-display-latin-700-normal-CuDiGg7c.woff2)format("woff2")}:root{--bg:#f4efe9;--bg-tint:#ede5dc;--panel-bg:#fff;--panel-border:#e8ded4;--text:#382e2b;--text-soft:#857771;--text-softer:#ab9c94;--primary:#6e4b56;--primary-hover:#5a3a45;--primary-soft:#f4e9ec;--primary-soft-border:#e3cdd3;--divider:#f0e9e2;--input-bg:#fff;--input-border:#ded3c9;--input-border-hover:#c8b6ae;--slider-track:#ece0e2;--slider-thumb:var(--primary);--danger:#b3564f;--canvas-bg:#fff;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--shadow-panel:0 1px 2px #382e2b08, 0 6px 20px #382e2b0d;--shadow-canvas:0 2px 6px #382e2b0d, 0 18px 48px #382e2b17;--focus-ring:0 0 0 3px #6e4b5629;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}button{cursor:pointer;font-family:inherit}input,textarea,select{color:inherit;font-family:inherit}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{box-shadow:var(--focus-ring);border-color:var(--primary);outline:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--panel-border);border:3px solid var(--bg);border-radius:10px}::-webkit-scrollbar-track{background:0 0}.app-root{flex-direction:column;height:100%;display:flex;overflow:hidden}.app-header{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--panel-border);background:#f4efe9eb;flex:none;justify-content:space-between;align-items:center;gap:24px;padding:20px 36px;display:flex}.app-header-left{min-width:0}.brand-input{border-radius:var(--radius-sm);letter-spacing:.1em;width:220px;max-width:100%;color:var(--text-softer);background:0 0;border:1px solid #0000;margin:0 0 4px -8px;padding:3px 8px;font-size:12.5px;font-weight:600;transition:all .15s;display:block}.brand-input:hover{border-color:var(--panel-border);background:var(--panel-bg);color:var(--text-soft)}.brand-input:focus{border-color:var(--primary);background:var(--panel-bg);color:var(--text);box-shadow:var(--focus-ring);outline:none}.brand-input::placeholder{color:var(--text-softer);font-weight:400}.app-header-left h1{letter-spacing:.01em;margin:0 0 6px;font-size:22px;font-weight:700}.app-header-left .breadcrumb{color:var(--text-soft);letter-spacing:.02em;margin:0;font-size:12.5px}.app-header-right{align-items:flex-end;gap:14px;display:flex}.export-scale{flex-direction:column;gap:6px;display:flex}.export-scale>span{color:var(--text-soft);letter-spacing:.04em;font-size:11.5px}.export-scale-select{border:1px solid var(--input-border);background:var(--input-bg);border-radius:var(--radius-sm);color:var(--text);padding:11px 12px;font-size:13px}.download-btn{background:var(--primary);color:#fff;border-radius:var(--radius-sm);letter-spacing:.03em;border:none;padding:13px 26px;font-size:14px;font-weight:600;transition:background .15s,transform .1s;box-shadow:0 2px 8px #6e4b5638}.download-btn:hover:not(:disabled){background:var(--primary-hover)}.download-btn:active:not(:disabled){transform:translateY(1px)}.download-btn:disabled{opacity:.55;cursor:default;box-shadow:none}.app-body{grid-template-columns:var(--canvas-col,clamp(300px, 46vh, 620px)) auto minmax(0, 1fr);flex:1;gap:28px;min-height:0;padding:24px 36px;display:grid;overflow:hidden}@media (width<=1500px){.app-body{gap:22px;padding:20px 24px}}.app-splitter{cursor:col-resize;touch-action:none;background:0 0;border:none;justify-content:center;align-self:stretch;align-items:center;width:12px;margin:0 -6px;padding:0;display:flex}.app-splitter:before{content:"";background:var(--panel-border);border-radius:999px;width:3px;height:44px;transition:background .15s,height .15s}.app-splitter:hover:before,.app-splitter.is-dragging:before{background:var(--primary);height:76px}@media (width<=1100px){.app-root{height:auto;min-height:100%;overflow:visible}.app-body{grid-template-columns:1fr;gap:24px;overflow:visible}.app-splitter{display:none}.app-header{padding:16px 20px;position:sticky;top:0}}.canvas-column{flex-direction:column;gap:14px;min-width:0;min-height:0;display:flex}.canvas-shell{background:var(--canvas-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-canvas);aspect-ratio:1;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.canvas-hint{color:var(--text-soft);background:var(--bg-tint);border-radius:var(--radius-md);margin:0;padding:14px 18px;font-size:12.5px;line-height:1.85}.control-scroll{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:22px;min-width:0;min-height:0;padding-bottom:16px;padding-right:6px;display:grid;overflow:hidden auto}@media (width<=1100px){.control-scroll{overflow:visible}}@media (width<=780px){.control-scroll{grid-template-columns:1fr}}.panel-column{flex-direction:column;gap:22px;min-width:0;display:flex}.panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);padding:22px 24px}.panel-title{border-bottom:1px solid var(--divider);letter-spacing:.02em;align-items:center;gap:8px;margin:0 0 16px;padding-bottom:14px;font-size:15px;font-weight:700;display:flex}.accordion{border-top:1px solid var(--divider)}.accordion:first-of-type{border-top:none}.accordion-head{border-radius:var(--radius-sm);width:100%;color:var(--text);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:15px 4px;font-size:13.5px;font-weight:600;transition:color .15s;display:flex}.accordion-head:hover{color:var(--primary)}.accordion-icon{color:var(--text-softer);text-align:center;width:20px;font-size:16px}.accordion-body{flex-direction:column;gap:18px;padding:4px 4px 20px;display:flex}.field-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.field{flex-direction:column;gap:9px;min-width:0;display:flex}.field-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.field-label{color:var(--text-soft);white-space:nowrap;letter-spacing:.02em;font-size:12.5px}.field-value{border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input-bg);align-items:center;gap:4px;padding:5px 10px;transition:border-color .15s;display:flex}.field-value:focus-within{border-color:var(--primary);box-shadow:var(--focus-ring)}.field-number{text-align:right;-moz-appearance:textfield;background:0 0;border:none;outline:none;width:56px;font-size:13px}.field-number:focus-visible{box-shadow:none}.field-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.field-number::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field-unit{color:var(--text-softer);font-size:11px}.field-slider{appearance:none;background:var(--slider-track);border-radius:5px;outline:none;width:100%;height:5px}.field-slider::-webkit-slider-thumb{appearance:none;background:var(--slider-thumb);cursor:pointer;border:3px solid #fff;border-radius:50%;width:17px;height:17px;box-shadow:0 1px 4px #6e4b5659}.field-slider::-moz-range-thumb{background:var(--slider-thumb);cursor:pointer;border:3px solid #fff;border-radius:50%;width:17px;height:17px;box-shadow:0 1px 4px #6e4b5659}.segmented-wrap{flex-direction:column;gap:10px;display:flex}.segmented{gap:8px;display:flex}.segmented-btn{border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);border-radius:var(--radius-sm);flex:1;padding:11px 8px;font-size:12.5px;transition:all .15s}.segmented-btn:hover:not(.is-active){border-color:var(--input-border-hover);background:var(--bg-tint)}.segmented-btn.is-active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 2px 6px #6e4b5633}.segmented-hint{color:var(--text-soft);background:var(--bg-tint);border-radius:var(--radius-sm);margin:0;padding:12px 14px;font-size:12px;line-height:1.85}.tab-group{background:var(--bg-tint);border-radius:var(--radius-md);gap:6px;padding:5px;display:flex}.tab-btn{color:var(--text-soft);border-radius:var(--radius-sm);background:0 0;border:none;flex:1;padding:10px 6px;font-size:12.5px;font-weight:600;transition:all .15s}.tab-btn:hover:not(.is-active){color:var(--text)}.tab-btn.is-active{background:var(--primary);color:#fff;box-shadow:0 2px 6px #6e4b5633}.upload-row{align-items:center;gap:10px;display:flex}.upload-btn{border:1px dashed var(--input-border);background:var(--input-bg);border-radius:var(--radius-sm);color:var(--text);text-align:center;flex:1;padding:13px 14px;font-size:13px;transition:all .15s}.upload-btn:hover{border-color:var(--primary);background:var(--primary-soft)}.badge{color:var(--primary);background:var(--primary-soft);border:1px solid var(--primary-soft-border);white-space:nowrap;border-radius:999px;padding:5px 11px;font-size:11px}.remove-btn{color:var(--danger);border-radius:var(--radius-sm);white-space:nowrap;background:0 0;border:none;padding:6px;font-size:12px}.remove-btn:hover{text-decoration:underline}.toggle-row{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:2px 0;font-size:13px;display:flex}.toggle-checkbox{width:19px;height:19px;accent-color:var(--primary);flex:none}.color-field{flex-direction:column;gap:9px;display:flex}.color-input-wrap{align-items:center;gap:10px;display:flex}.color-swatch{border-radius:var(--radius-sm);border:1px solid var(--input-border);cursor:pointer;background:0 0;width:40px;height:40px;padding:0}.color-hex{border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input-bg);flex:1;min-width:0;padding:10px 12px;font-size:13px}.text-field{flex-direction:column;gap:9px;display:flex}.text-field input[type=text],.text-field textarea,.text-field select{border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input-bg);resize:vertical;width:100%;padding:11px 12px;font-size:13px;transition:border-color .15s}.text-field input[type=text]:hover,.text-field textarea:hover,.text-field select:hover{border-color:var(--input-border-hover)}.text-field textarea{min-height:96px;line-height:1.6}.action-btn{border:1px solid var(--input-border);background:var(--input-bg);width:100%;color:var(--text);border-radius:var(--radius-sm);margin-bottom:12px;padding:14px 16px;font-size:13px;font-weight:600;transition:all .15s}.action-btn:last-child{margin-bottom:0}.action-btn:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}.action-btn:disabled{opacity:.45;cursor:default}.action-btn.danger{color:var(--danger)}.action-btn.danger:hover:not(:disabled){border-color:var(--danger);background:#fbf0ef}.mini-btn{border:1px solid var(--input-border);background:var(--input-bg);border-radius:var(--radius-sm);color:var(--text);padding:10px 12px;font-size:12.5px;transition:all .15s}.mini-btn:hover{border-color:var(--primary);background:var(--primary-soft)}.hstack{align-items:center;gap:10px;display:flex}.spacer{flex:1}.section-note{color:var(--text-soft);background:var(--bg-tint);border-radius:var(--radius-sm);margin:0;padding:12px 14px;font-size:12px;line-height:1.85}
