@font-face{font-family:Source Han Serif SC Local;src:url(/fonts/custom/SourceHanSerifSC-VF-user.woff2)format("woff2");font-display:swap}@font-face{font-family:LXGW WenKai Local;src:url(/fonts/custom/LXGWWenKai-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:LXGW WenKai Local;src:url(/fonts/custom/LXGWWenKai-Bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Zhuque Fangsong Local;src:url(/fonts/custom/ZhuqueFangsong-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Smiley Sans Local;src:url(/fonts/custom/SmileySans-Oblique.woff2)format("woff2");font-style:oblique;font-display:swap}@font-face{font-family:KingHwa OldSong Local;src:url(/fonts/custom/KingHwa-OldSong.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Early Summer Serif Local;src:url(/fonts/custom/EarlySummerSerif-ExtraLight.woff2)format("woff2");font-weight:200;font-display:swap}@font-face{font-family:Early Summer Serif Local;src:url(/fonts/custom/EarlySummerSerif-Light.woff2)format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Early Summer Serif Local;src:url(/fonts/custom/EarlySummerSerif-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Early Summer Serif Local;src:url(/fonts/custom/EarlySummerSerif-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Early Summer Serif Local;src:url(/fonts/custom/EarlySummerSerif-SemiBold.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Early Summer Serif Local;src:url(/fonts/custom/EarlySummerSerif-Bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Early Summer Serif Local;src:url(/fonts/custom/EarlySummerSerif-Heavy.woff2)format("woff2");font-weight:800;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 2 Local";src:url(/fonts/custom/AlibabaPuHuiTi-2-35-Thin.woff2)format("woff2");font-weight:200;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 2 Local";src:url(/fonts/custom/AlibabaPuHuiTi-2-45-Light.woff2)format("woff2");font-weight:300;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 2 Local";src:url(/fonts/custom/AlibabaPuHuiTi-2-55-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 2 Local";src:url(/fonts/custom/AlibabaPuHuiTi-2-65-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 2 Local";src:url(/fonts/custom/AlibabaPuHuiTi-2-75-SemiBold.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 2 Local";src:url(/fonts/custom/AlibabaPuHuiTi-2-85-Bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 2 Local";src:url(/fonts/custom/AlibabaPuHuiTi-2-95-ExtraBold.woff2)format("woff2");font-weight:800;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 2 Local";src:url(/fonts/custom/AlibabaPuHuiTi-2-105-Heavy.woff2)format("woff2");font-weight:850;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 2 Local";src:url(/fonts/custom/AlibabaPuHuiTi-2-115-Black.woff2)format("woff2");font-weight:900;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 3 Local";src:url(/fonts/custom/AlibabaPuHuiTi-3-35-Thin.woff2)format("woff2");font-weight:200;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 3 Local";src:url(/fonts/custom/AlibabaPuHuiTi-3-65-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:"Alibaba PuHuiTi 3 Local";src:url(/fonts/custom/AlibabaPuHuiTi-3-115-Black.woff2)format("woff2");font-weight:900;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#171717;--muted:#6b6357;--muted-strong:#4b463e;--line:#b5ac9959;--bg:radial-gradient(circle at top, #ffffffe0, transparent 26%), linear-gradient(180deg, #f6f2e8 0%, #ebe4d7 100%);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:16px/1.5 Source Han Serif SC Local,Songti SC,STSong,serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);margin:0}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:2px solid #2563eb5c}h1,h2,p{margin:0}.studio-shell{box-sizing:border-box;flex-direction:column;gap:18px;min-height:100svh;padding:18px;display:flex}.topbar,.tool-rail,.inspector{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffcf5b8;border:1px solid #b5ac995c;box-shadow:0 18px 40px #45371f14}.topbar{border-radius:24px;justify-content:space-between;align-items:center;gap:20px;padding:16px 18px;display:flex}.brand{align-items:center;gap:14px;display:flex}.brand__mark{border-radius:999px;width:56px;height:56px;overflow:hidden;box-shadow:0 14px 24px #2411382e,inset 0 0 0 1px #ffffff57}.brand__avatar{object-fit:cover;width:100%;height:100%;display:block}.brand h1{margin:0;font-size:1.5rem}.topbar__controls{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.topbar__template-save{flex:0 232px;grid-template-columns:minmax(0,136px) auto;gap:10px;width:min(232px,100%);display:grid}.topbar__template-save input{width:100%;color:var(--ink);font:inherit;box-sizing:border-box;background:#ffffffc7;border:1px solid #b5ac9966;border-radius:16px;padding:12px 14px}.topbar__select{min-width:212px}.upload-trigger{position:relative;overflow:hidden}.upload-trigger input{opacity:0;cursor:pointer;position:absolute;inset:0}.field{flex-direction:column;gap:8px;display:flex}.field span{color:var(--muted);font-size:.82rem}.field--compact{min-width:212px}.field input,.field select,.topbar__select select,.field textarea{width:100%;color:var(--ink);font:inherit;box-sizing:border-box;background:#ffffffc7;border:1px solid #b5ac9966;border-radius:16px;padding:12px 14px}.topbar__select select{height:100%;min-height:48px}.field textarea{resize:vertical;min-height:150px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.primary-button,.ghost-button,.tabs button,.tool-rail__button,.icon-group button,.swatch,.canvas__layer,.template-chip__main,.template-chip__remove{transition:transform .16s,border-color .16s,background-color .16s,box-shadow .16s}.primary-button,.ghost-button{font:inherit;cursor:pointer;border:1px solid #b5ac9961;border-radius:16px;align-items:center;gap:8px;padding:12px 14px;display:inline-flex}.primary-button{color:#fff;background:linear-gradient(135deg,#111827,#2f3a4d)}.ghost-button{color:var(--ink);background:#ffffffbd}.ghost-button--full{justify-content:center;width:100%}.primary-button:disabled,.ghost-button:disabled,.tool-rail__button:disabled{opacity:.5;cursor:not-allowed}.primary-button:hover:not(:disabled),.ghost-button:hover:not(:disabled),.tool-rail__button:hover:not(:disabled),.tabs button:hover,.icon-group button:hover,.swatch:hover,.canvas__layer:hover,.template-chip__main:hover,.template-chip__remove:hover{transform:translateY(-1px)}.studio-grid{flex:1;grid-template-columns:72px minmax(0,1fr) 320px;gap:18px;min-height:0;display:grid}.tool-rail{border-radius:24px;flex-direction:column;align-items:center;gap:12px;padding:18px 12px;display:flex}.tool-rail__button,.tool-rail__label{width:44px;height:44px;color:var(--ink);cursor:pointer;background:#ffffffbd;border:1px solid #b5ac9961;border-radius:14px;place-items:center;display:grid;position:relative}.tool-rail__button.is-active{color:#fff;background:#111827}.tool-rail__label input{opacity:0;cursor:pointer;position:absolute;inset:0}.workspace{flex-direction:column;gap:16px;min-width:0;display:flex}.workspace__viewport{background:radial-gradient(circle at 0 0,#ffffffe0,#0000 22%),linear-gradient(#ffffff85,#ffffff1a);border:1px solid #b5ac993d;border-radius:32px;flex:1;min-height:0;padding:22px;overflow:auto}.workspace__canvas-stage{margin:0 auto;position:relative}.workspace__canvas-scale{transform-origin:0 0}.canvas{border-radius:24px;position:relative;overflow:hidden;box-shadow:0 30px 80px #503f2329,inset 0 0 0 1px #1118270f}.canvas__texture,.canvas__accent{position:absolute;inset:0}.canvas__texture{opacity:.95}.canvas__accent{pointer-events:none;background:linear-gradient(#ffffff80,#0000 18%),linear-gradient(90deg,#0000 82%,#ffffff29)}.canvas__layer{z-index:3;cursor:grab;box-sizing:border-box;-webkit-user-select:none;user-select:none;touch-action:none;border:none;border-radius:18px;outline:none;padding:16px 18px;position:absolute;box-shadow:0 18px 36px #0f172a14}.canvas__layer.is-selected{box-shadow:0 18px 36px #0f172a14,0 0 0 2px #2563eb29}.canvas__layer.is-selected.is-primary-selected{box-shadow:0 18px 36px #0f172a14,0 0 0 3px #2563eb3d}.canvas__text-layer--plain{box-shadow:none;border-radius:0;padding:0}.canvas__text-layer--plain.is-selected{box-shadow:0 0 0 2px #2563eb29}.canvas__text-layer--plain.is-selected.is-primary-selected{box-shadow:0 0 0 3px #2563eb3d}.canvas__layer:active{cursor:grabbing}.canvas__text-layer{white-space:pre-wrap}.canvas__text-editor{resize:none;cursor:text;appearance:none;white-space:pre-wrap;caret-color:currentColor;border:none;outline:none;overflow:hidden}.canvas__image-layer{background:0 0;padding:0}.canvas__image-frame{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;border:1px solid #ffffff7a;width:100%;height:100%;display:block;box-shadow:0 18px 36px #0f172a1f}.canvas__resize-handle{cursor:nwse-resize;background:#111827;border:2px solid #fffffff2;border-radius:999px;width:28px;height:28px;position:absolute;bottom:-12px;right:-12px;box-shadow:0 12px 24px #0f172a38}.canvas__resize-handle--text{background:#6d28d9}.inspector{border-radius:24px;padding:18px;overflow:auto}.template-panel{gap:12px}.template-list{flex-direction:column;gap:10px;display:flex}.template-chip{grid-template-columns:minmax(0,1fr) 40px;gap:8px;display:grid}.template-chip__main,.template-chip__remove{color:var(--muted-strong);cursor:pointer;font:inherit;background:#ffffffb8;border:1px solid #b5ac9961;border-radius:14px}.template-chip__main{text-align:left;padding:12px 14px}.template-chip__main.is-active,.template-chip__remove:focus-visible{border-color:#111827}.template-chip__remove{font-size:1.25rem}.panel__hint{color:var(--muted)}.template-panel__status{color:var(--muted);font-size:.88rem}.tabs{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.tabs button,.icon-group button{color:var(--muted-strong);font:inherit;cursor:pointer;background:#ffffffb8;border:1px solid #b5ac9961;border-radius:14px;padding:11px 12px}.tabs button.is-active,.icon-group button.is-active{color:#fff;background:#111827;border-color:#111827}.panel-stack{flex-direction:column;gap:14px;display:flex}.panel-subsection{margin-top:14px}.panel{background:#ffffffb3;border:1px solid #b5ac9947;border-radius:20px;padding:16px}.panel--muted{color:var(--muted-strong)}.panel__heading{margin-bottom:14px}.panel__heading h2{margin:0 0 6px;font-size:1rem}.panel__heading p,.panel p{color:var(--muted);margin:0;font-size:.92rem}.subtle-label{color:var(--muted);margin-bottom:8px;font-size:.82rem;display:block}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{cursor:pointer;border:1px solid #11182724;border-radius:12px;width:32px;height:32px}.swatch.is-active{box-shadow:0 0 0 3px #2563eb2e}.background-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.solid-background-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.solid-background-swatch{cursor:pointer;border:1px solid #11182724;border-radius:16px;min-height:54px;box-shadow:inset 0 0 0 1px #ffffff3d}.solid-background-swatch.is-active{box-shadow:inset 0 0 0 1px #ffffff47,0 0 0 3px #2563eb2e}.background-card{cursor:pointer;border:1px solid #1118271f;border-radius:18px;min-height:78px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}.background-card span{color:#111827;text-align:center;background:#ffffffc7;border-radius:999px;padding:6px 8px;font-size:.78rem;position:absolute;bottom:10px;left:10px;right:10px}.background-card.is-active{box-shadow:inset 0 0 0 1px #ffffff2e,0 0 0 3px #2563eb2e}.icon-group{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.icon-group--double{grid-template-columns:repeat(2,minmax(0,1fr))}.icon-group button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.upload-field{box-sizing:border-box;width:100%;color:var(--muted-strong);cursor:pointer;background:#ffffffb3;border:1px dashed #b5ac998f;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:14px;display:inline-flex;position:relative}.upload-field input{opacity:0;cursor:pointer;position:absolute;inset:0}.panel-empty{margin-top:16px}@media (width<=1180px){.studio-grid{grid-template-columns:1fr}.tool-rail{flex-direction:row;order:2;justify-content:center}.inspector{order:3}}@media (width<=768px){.studio-shell{padding:12px}.topbar{flex-direction:column;align-items:stretch}.topbar__controls{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.topbar__select,.field--compact{min-width:0}.topbar__controls .ghost-button,.topbar__controls .primary-button{justify-content:center;width:100%}.topbar__controls .primary-button{grid-column:1/-1}.field-grid,.tabs,.solid-background-grid,.background-grid,.topbar__template-save,.icon-group{grid-template-columns:1fr}.template-chip{grid-template-columns:minmax(0,1fr) 48px}}
