@font-face{font-family:TarotKai;src:url('../assets/psd-s1/fallback-kaiti.woff2') format('woff2');font-display:swap}
@font-face{font-family:TarotWenkai;src:url('../assets/typography/wenkai-gb-medium.woff') format('woff');font-weight:500;font-display:swap}
@font-face{font-family:TarotSerif;src:url('../assets/native/card-serif-heavy.woff2') format('woff2');font-display:swap}
:root{color-scheme:light;--bg:#f1ede7;--panel:#fbf9f5;--field:#fffdfa;--ink:#342b36;--muted:#786b75;--line:#ded5ce;--accent:#9a5449;--accent-soft:#f1e1db;--sans:'Microsoft YaHei','PingFang SC',system-ui,sans-serif}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--ink);font:13px/1.6 var(--sans)}button,input,textarea,select{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:var(--field);color:var(--ink);padding:8px 12px;border-radius:6px;transition:background .15s}button:hover{background:#f0e8df}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input,textarea,select{width:100%;min-width:0;border:1px solid #d6c8bf;border-radius:5px;padding:8px 9px;background:var(--field);color:var(--ink)}textarea{resize:vertical;line-height:1.8}input[type=color]{padding:4px;height:39px}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);margin:0}input[type=range]{padding:0;height:5px;accent-color:var(--accent);margin:12px 0}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#b53236}select{cursor:pointer}h1,h2,h3,p{margin:0}.primary{background:var(--accent);color:white;border-color:var(--accent)}.primary:hover{background:#86483f}.app-header{height:82px;display:flex;align-items:center;gap:30px;padding:0 26px;border-bottom:1px solid var(--line);background:var(--panel)}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink);font:600 15px/1.3 Georgia,serif;min-width:232px}.brand img{width:34px;height:34px}.brand small{display:block;font:11px/1.9 var(--sans);color:var(--muted);letter-spacing:2px}.header-title{border-left:1px solid var(--line);padding-left:28px}.header-title h1{font-size:19px;font-weight:600;letter-spacing:2px}.header-title>span{font-size:11px;color:var(--muted)}.header-actions{margin-left:auto;display:flex;gap:8px}.header-actions .primary{min-width:118px}.header-actions .primary span{margin-left:12px}.workspace{display:grid;grid-template-columns:292px minmax(310px,1fr) 304px;gap:0;height:calc(100dvh - 82px)}.inspector{overflow:auto;background:var(--panel);scrollbar-width:thin;scrollbar-color:#d8c8bf transparent}.left{border-right:1px solid var(--line)}.right{border-left:1px solid var(--line)}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--line)}h2{font-size:14px;font-weight:600}.panel-heading>span{font-size:11px;color:var(--muted)}.inspector section{padding:20px;border-bottom:1px solid var(--line)}h3{font-size:13px;font-weight:600;margin-bottom:15px}.section-no{font:12px Georgia,serif;color:#ab8578;margin-right:8px}label{display:block;font-size:12px;margin-bottom:13px}label>input:not([type=checkbox]):not([type=range]),label>textarea,label>select{display:block;margin-top:5px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check{display:flex;align-items:center;gap:8px;margin:12px 0}.hint{color:var(--muted);font-size:11px;line-height:1.85;margin:6px 0 13px}.slider-label{position:relative;margin-bottom:0}.slider-label output{float:right;font:12px/1.6 Consolas,monospace;color:var(--accent)}.slider-ends{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:-4px}.local-note p,.source-note p{font-size:11px;color:var(--muted);line-height:1.9}.local-note button{margin-top:14px}.subtle{background:transparent}.tabs{display:flex;padding:10px 14px 0;border-bottom:1px solid var(--line);gap:3px}.tabs button{flex:1;border:0;border-radius:4px 4px 0 0;background:transparent;padding:9px 0;color:var(--muted);font-size:12px;border-bottom:2px solid transparent}.tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent);background:#f5ece6}.upload-area{display:flex;align-items:center;flex-direction:column;gap:5px;border-style:dashed;width:100%;padding:20px 5px;background:#f7f1eb}.upload-area strong{font-size:12px;font-weight:500}.upload-area small{font-size:10px;color:var(--muted)}.upload-symbol{font-size:25px;color:var(--accent);line-height:1.2}.button-row{display:flex;flex-wrap:wrap;gap:8px}.button-row button{flex:1;padding:7px 8px;font-size:11px}.preview-panel{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative;background:radial-gradient(ellipse at 50% 43%,#faf6ef 0,#eee7de 80%)}.preview-toolbar{height:57px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:0 22px;border-bottom:1px solid #e3dbd1;color:var(--muted);font-size:11px}.preview-toolbar>div{display:flex;gap:6px;align-items:center}.preview-toolbar button{background:transparent;padding:4px 7px;border-color:transparent}.preview-toolbar select{width:auto;padding:4px 5px;font-size:11px;background:transparent}.canvas-stage{flex:1;min-height:200px;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:22px 24px 8px}.canvas-wrap{position:relative;flex-shrink:0;line-height:0;box-shadow:0 10px 35px #49372826;border-radius:15px;background:#f9f4f1;max-width:100%}canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}canvas:active{cursor:grabbing}.loading{position:absolute;inset:0;background:#f9f3ed;display:flex;align-items:center;justify-content:center;line-height:2;padding:30px;color:var(--muted);font-size:12px;border-radius:15px}.preview-caption{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;font-size:10px;color:#95837b;padding:7px 15px 12px}.feedback{font-size:11px;color:#98632f;padding:0 24px;text-align:center;line-height:1.8;max-height:100px;overflow:auto}.feedback:not(:empty){padding-bottom:10px}.feedback.error{color:#b33035}.bottom-status{display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--muted);padding:11px 20px;border-top:1px solid var(--line)}.range-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.range-inputs label{text-align:center;margin:0;font-family:Georgia,serif;font-size:17px;color:#6c5148}.range-inputs input{text-align:center;font:12px var(--sans);padding:7px 1px}.range-stats{padding:12px 0;font-size:11px;color:var(--muted);line-height:1.8}.heatmap{display:flex;gap:2px;margin-top:9px}.heatmap span{flex:1;text-align:center;font:17px Georgia,serif}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#342b36;color:white;padding:12px 20px;border-radius:8px;box-shadow:0 8px 32px #0002;z-index:20;max-width:min(90vw,650px);font-size:12px}.toast.error{background:#963b35}dialog{border:1px solid var(--line);border-radius:12px;padding:26px;background:var(--panel);color:var(--ink);max-width:440px;box-shadow:0 20px 80px #0003}dialog::backdrop{background:#342b3655}dialog h2{font-size:18px;margin-bottom:12px}dialog p{margin-bottom:24px;color:var(--muted)}
@media(min-width:1600px){.workspace{grid-template-columns:320px minmax(310px,1fr) 336px}.inspector section{padding:23px}.panel-heading{padding-left:23px;padding-right:23px}}
@media(max-width:1120px){.workspace{grid-template-columns:254px minmax(270px,1fr) 262px}.inspector section{padding:15px}.app-header{padding:0 18px;gap:15px}.brand{min-width:210px;font-size:13px}.header-title{padding-left:16px}.preview-toolbar{padding:0 12px}.preview-toolbar button span{display:none}.bottom-status>span:last-child{display:none}}
@media(max-width:850px){.app-header{height:auto;min-height:106px;padding:12px 16px;flex-wrap:wrap;gap:10px 14px}.brand{min-width:0;flex:1}.header-title{border:0;padding:0;text-align:right}.header-title h1{font-size:16px}.header-actions{width:100%;justify-content:flex-end}.header-actions button{padding:6px 10px;font-size:12px}.workspace{height:auto;grid-template-columns:1fr 1fr;align-items:start}.preview-panel{grid-column:1/-1;grid-row:1;min-height:760px;height:calc(100dvh - 125px)}.left,.right{overflow:visible;border-top:1px solid var(--line)}.canvas-stage{min-height:500px}.preview-toolbar{height:46px}.bottom-status>span:last-child{display:inline}.inspector{height:auto}}
@media(max-width:520px){.workspace{display:flex;flex-direction:column}.preview-panel{width:100%;height:730px;min-height:0}.canvas-stage{min-height:0}.left,.right{width:100%;border-left:0;border-right:0}.preview-caption{font-size:9px;gap:8px}.brand span{font-size:12px}.brand small{font-size:9px}.brand img{width:28px;height:28px}.header-title>span{font-size:9px}.header-actions{justify-content:stretch}.header-actions button{flex:1}.panel-heading{padding:16px 20px}.inspector section{padding:20px}.right{order:2}.left{order:3}.bottom-status{padding:10px 13px;font-size:9px}}

.font-presets{display:grid;gap:7px;margin-bottom:18px}.font-presets button{text-align:left;font-size:12px;padding:9px 12px}.font-presets button:first-child{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
