:root{color-scheme:light;--bg:#f7f7f9;--surface:#fff;--surface-alt:#f4f4f6;--ink:#1d1e22;--muted:#85868d;--line:#e9e9ed;--accent:#303136;--accent-soft:#e9e9ed;--brand-ink:#fff;--shadow:0 14px 45px rgba(29,30,34,.045)}
@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg:#111114;--surface:#1c1c20;--surface-alt:#28282d;--ink:#f5f5f7;--muted:#a0a0a8;--line:#34343a;--accent:#f1f1f4;--accent-soft:#393940;--brand-ink:#1d1e22;--shadow:0 14px 45px rgba(0,0,0,.12)}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,label:focus-within{outline:3px solid #7899de;outline-offset:3px}button:focus:not(:focus-visible){outline:none}[hidden]{display:none!important}.app-shell{max-width:1490px;margin:auto;padding:0 42px}.site-header{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink);font-size:18px;font-weight:650;letter-spacing:-.04em;text-decoration:none}.brand-mark{display:block;width:33px;height:33px;color:var(--ink)}.brand-mark svg{display:block;width:100%;height:100%}.header-note{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.privacy-dot{width:7px;height:7px;background:#83b790;border-radius:50%}.intro{padding:58px 0 43px}.eyebrow,.section-kicker{margin:0;color:#a1a2aa;font-size:10px;font-weight:700;letter-spacing:.18em}.intro h1{margin:20px 0 15px;font-size:clamp(38px,4.3vw,60px);line-height:1.13;letter-spacing:-.065em;font-weight:700}.intro h1 span{color:#aaaab1}.intro-copy{max-width:520px;margin:0;color:var(--muted);font-size:15px;line-height:1.75}.workspace{display:grid;grid-template-columns:minmax(0,1.37fr) minmax(342px,.83fr);gap:20px;align-items:start}.editor-column,.controls-column{display:grid;gap:20px}.panel{min-width:0;padding:25px;background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:21px}.panel-heading h2{margin:7px 0 0;font-size:21px;line-height:1.2;letter-spacing:-.035em;font-weight:650}.panel-heading.compact{margin-bottom:20px}.dimension-pill,.count-pill{padding:8px 11px;border-radius:12px;background:var(--surface-alt);color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.preview-stage{min-height:435px;border-radius:18px;background-color:#e7e7e9;background-image:linear-gradient(45deg,rgba(255,255,255,.4) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.4) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.4) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.4) 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:24px}.empty-preview{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;color:#85858b}.empty-art{width:96px;height:96px;display:block;color:#b0b0b5;margin-bottom:6px}.empty-art svg{width:100%;height:100%}.empty-preview strong{color:#5c5c62;font-size:17px;font-weight:600}.empty-preview>span:not(.empty-art){font-size:13px}.soft-button{border:0;border-radius:18px;background:#fff;color:#292a2f;padding:10px 18px;margin-top:10px;font-size:13px;font-weight:600;box-shadow:0 2px 10px rgba(0,0,0,.06)}.image-frame{position:relative;max-width:100%;max-height:590px;line-height:0;box-shadow:0 12px 32px rgba(0,0,0,.13);user-select:none}.image-frame>img{display:block;max-width:100%;max-height:590px;width:auto;height:auto;object-fit:contain}.watermark-box{position:absolute;touch-action:none;cursor:grab;border:1.5px solid rgba(255,255,255,.95);box-shadow:0 0 0 1px rgba(0,0,0,.4),0 0 0 9999px rgba(0,0,0,.035);line-height:0}.watermark-box:active{cursor:grabbing}.watermark-box>img{width:100%;height:100%;display:block;pointer-events:none}.resize-handle{position:absolute;right:-7px;bottom:-7px;width:15px;height:15px;border:3px solid #fff;border-radius:50%;background:#303136;box-shadow:0 1px 5px rgba(0,0,0,.35);cursor:nwse-resize;touch-action:none}.preview-footer{display:flex;justify-content:space-between;gap:10px;margin-top:17px;color:var(--muted);font-size:12px}.zoom-note{white-space:nowrap}.upload-zone{min-height:82px;padding:15px 18px;display:flex;align-items:center;gap:14px;border:1.5px dashed #d9d9df;border-radius:17px;cursor:pointer;transition:background .2s,border-color .2s}.upload-zone:hover,.upload-zone.dragover,.watermark-upload.dragover{background:var(--surface-alt);border-color:#94949e}.upload-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:13px;background:var(--surface-alt);color:var(--ink)}.upload-icon svg{width:23px;height:23px}.upload-zone strong,.watermark-upload strong{display:block;font-size:14px;font-weight:600}.upload-zone small,.watermark-upload small{display:block;margin-top:5px;color:var(--muted);font-size:12px}.upload-plus{margin-left:auto;color:#9d9da4;font-size:22px}.photo-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.photo-list:empty{display:none}.photo-item{position:relative;width:74px;height:74px;padding:0;border:2px solid transparent;border-radius:13px;background:var(--surface-alt);overflow:hidden}.photo-item img{display:block;width:100%;height:100%;object-fit:cover}.photo-item[aria-pressed=true]{border-color:#5a5b64}.photo-item[aria-pressed=true]::after{content:"";position:absolute;inset:0;border:2px solid #fff;border-radius:11px;pointer-events:none}.photo-remove{position:absolute;top:-5px;right:-5px;z-index:1;width:19px;height:19px;border:0;border-radius:50%;background:#2e2e32;color:#fff;font-size:14px;line-height:19px;padding:0}.photo-entry{position:relative}.watermark-upload{display:flex;align-items:center;gap:13px;padding:11px 13px;border:1px solid var(--line);border-radius:16px;cursor:pointer;min-width:0}.watermark-thumb{display:grid;place-items:center;flex:none;width:54px;height:54px;overflow:hidden;border-radius:12px;background:var(--surface-alt);color:var(--muted)}.watermark-thumb svg{width:22px;height:22px}.watermark-thumb img{display:block;width:100%;height:100%;object-fit:contain;background-image:linear-gradient(45deg,#ddd 25%,transparent 25%),linear-gradient(-45deg,#ddd 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ddd 75%),linear-gradient(-45deg,transparent 75%,#ddd 75%);background-size:12px 12px;background-position:0 0,0 6px,6px -6px,-6px 0}.watermark-file{min-width:0;flex:1}.watermark-file strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron{color:var(--muted);font-size:26px;font-weight:300}.text-button{padding:8px 2px;border:0;background:none;color:var(--muted);font-size:13px}.text-button:hover{color:var(--ink)}.field-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 12px;font-size:13px;font-weight:600}.field-title span{color:var(--muted);font-size:11px;font-weight:400}.position-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.position-grid button{height:47px;border:1px solid var(--line);border-radius:12px;background:var(--surface-alt);color:var(--muted);font-size:20px;transition:background .2s,transform .2s}.position-grid button:hover{background:var(--accent-soft);transform:translateY(-1px)}.position-grid button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--surface)}.preset-note{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.field-divider{height:1px;margin:23px 0;background:var(--line)}.number-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.number-field{min-width:0;display:block;color:var(--muted);font-size:12px}.number-field>span:first-child{display:block;margin-bottom:7px}.input-wrap{height:46px;display:flex;align-items:center;padding:0 11px;background:var(--surface-alt);border:1px solid transparent;border-radius:11px}.input-wrap:focus-within{border-color:#9ca9c7}.input-wrap input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:15px;font-variant-numeric:tabular-nums}.input-wrap em{color:var(--muted);font-size:11px;font-style:normal}.opacity-heading{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600}.opacity-heading output{font-size:14px;font-variant-numeric:tabular-nums}.opacity-slider{width:100%;height:4px;margin:19px 0 9px;accent-color:#34353b;cursor:pointer}.slider-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.export-card{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:21px;border-radius:22px;background:#27282d;color:#fff}.export-icon{display:grid;place-items:center;flex:none;width:41px;height:41px;border-radius:12px;background:#3b3c42}.export-icon svg{width:20px;height:20px}.export-copy{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.export-copy strong{font-size:13px;font-weight:600}.export-copy span{color:#aeb0b8;font-size:11px}.export-button{height:39px;padding:0 14px;border:0;border-radius:12px;background:#fff;color:#24252a;font-size:12px;font-weight:650;white-space:nowrap}.export-button span{margin-left:6px;font-size:16px}.export-button:disabled{opacity:.45}.page-footnote{text-align:center;margin:34px 0 42px;color:var(--muted);font-size:12px}.toast{position:fixed;left:50%;bottom:26px;z-index:30;max-width:calc(100vw - 32px);padding:12px 18px;border-radius:16px;background:#292a30;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18);font-size:13px;opacity:0;transform:translate(-50%,10px);pointer-events:none;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:980px){.app-shell{padding:0 26px}.workspace{grid-template-columns:minmax(0,1fr) minmax(310px,.8fr)}.preview-stage{min-height:365px}.panel{padding:20px}.export-card{padding:18px}.export-button{width:100%}}
@media(max-width:740px){.app-shell{padding:0 16px}.site-header{height:69px}.header-note{font-size:11px}.intro{padding:42px 2px 32px}.intro h1{font-size:42px}.intro-copy{font-size:14px}.workspace{grid-template-columns:1fr;gap:15px}.editor-column,.controls-column{gap:15px}.panel{padding:18px;border-radius:21px}.preview-stage{min-height:300px;padding:16px}.image-frame,.image-frame>img{max-height:470px}.controls-column{display:contents}.image-panel{order:1}.preview-panel{order:2}.watermark-panel{order:3}.adjust-panel{order:4}.export-card{order:5}.zoom-note{display:none}.page-footnote{margin:26px 0 35px}}
@media(max-width:390px){.header-note{max-width:128px;text-align:right}.intro h1{font-size:36px}.field-title span{font-size:10px}.preview-stage{min-height:255px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.watermark-box{border-color:transparent;box-shadow:none}
.watermark-box.is-selected{border-color:rgba(255,255,255,.95);box-shadow:0 0 0 1px rgba(0,0,0,.4),0 0 0 9999px rgba(0,0,0,.035)}
.watermark-box .resize-handle{display:none}
.watermark-box.is-selected .resize-handle{display:block}
.watermark-ink{display:block;width:100%;height:100%;pointer-events:none;background:#fff;mask-repeat:no-repeat;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;-webkit-mask-size:100% 100%}
.color-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 38px;gap:6px;align-items:center}
.color-options button{height:39px;padding:0 4px;border:1px solid var(--line);border-radius:11px;background:var(--surface-alt);color:var(--muted);font-size:12px;white-space:nowrap}
.color-options button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--surface)}
.color-options input[type=color]{width:38px;height:39px;padding:4px;border:1px solid var(--line);border-radius:11px;background:var(--surface-alt);cursor:pointer}
.color-options input[type=color]::-webkit-color-swatch-wrapper{padding:0}
.color-options input[type=color]::-webkit-color-swatch{border:0;border-radius:7px}
.color-hint{min-height:16px;margin:11px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
.opacity-number{height:35px;min-width:67px;display:flex;align-items:center;gap:2px;padding:0 9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-alt);color:var(--muted)}
.opacity-number input{width:37px;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:14px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.opacity-number span{font-size:12px}
.opacity-number input::-webkit-inner-spin-button,.opacity-number input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.opacity-number input[type=number]{appearance:textfield;-moz-appearance:textfield}
.image-frame{overflow:hidden;flex:none}
.image-frame>img{position:absolute;max-width:none;max-height:none;object-fit:fill}
.crop-controls{margin-top:19px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:13px}
.crop-controls-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.crop-controls-head strong{font-size:14px;font-weight:600}
.crop-controls-head span{color:var(--muted);font-size:11px}
.crop-control-row{display:flex;align-items:center;gap:12px}
.crop-label{width:32px;flex:none;color:var(--muted);font-size:12px}
.crop-segment{display:flex;gap:4px;padding:4px;border-radius:12px;background:var(--surface-alt)}
.crop-segment button{min-width:56px;height:31px;padding:0 10px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:12px}
.crop-segment button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.08);font-weight:600}
.crop-segment button:disabled{opacity:.5}
.crop-open{justify-self:start;min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:600}
.crop-open span{margin-left:7px}.crop-open:disabled{opacity:.45}
.crop-dialog{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(12,13,18,.72);backdrop-filter:blur(8px)}
.crop-dialog-panel{width:min(920px,100%);max-height:calc(100dvh - 36px);display:flex;flex-direction:column;padding:24px;border-radius:23px;background:var(--surface);box-shadow:0 22px 80px rgba(0,0,0,.25)}
.crop-dialog-header{display:flex;justify-content:space-between;align-items:start;gap:12px}.crop-dialog-header h2{margin:7px 0 0;font-size:21px;letter-spacing:-.035em}.crop-close{width:35px;height:35px;border:0;border-radius:10px;background:var(--surface-alt);color:var(--muted);font-size:24px;line-height:1}
.crop-dialog-hint{margin:11px 0 17px;color:var(--muted);font-size:12px;line-height:1.6}
.crop-stage{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;padding:15px;border-radius:16px;overflow:hidden;background:#292a30}
.crop-source-frame{position:relative;line-height:0;flex:none;max-width:100%;max-height:100%}.crop-source-frame>img{display:block;max-width:100%;max-height:min(62dvh,660px);width:auto;height:auto;object-fit:contain;user-select:none}
.crop-selection{position:absolute;touch-action:none;cursor:grab;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.4),0 0 0 9999px rgba(0,0,0,.56);overflow:visible}.crop-selection:active{cursor:grabbing}
.crop-grid-lines{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,transparent 33.1%,rgba(255,255,255,.55) 33.3%,transparent 33.5%,transparent 66.4%,rgba(255,255,255,.55) 66.6%,transparent 66.8%),linear-gradient(to bottom,transparent 33.1%,rgba(255,255,255,.55) 33.3%,transparent 33.5%,transparent 66.4%,rgba(255,255,255,.55) 66.6%,transparent 66.8%)}
.crop-resize-handle{position:absolute;right:-9px;bottom:-9px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;background:#303136;box-shadow:0 1px 5px rgba(0,0,0,.4);cursor:nwse-resize;touch-action:none}
.crop-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:18px;color:var(--muted);font-size:12px}.crop-dialog-footer>div{display:flex;gap:8px}.crop-dialog-footer button{min-height:39px;padding:0 15px;border:0;border-radius:11px;font-size:12px;font-weight:600}.crop-secondary{background:var(--surface-alt);color:var(--ink)}.crop-primary{background:var(--accent);color:var(--surface)}
@media(max-width:740px){.crop-dialog{padding:10px}.crop-dialog-panel{padding:16px;max-height:calc(100dvh - 20px)}.crop-stage{padding:10px}.crop-source-frame>img{max-height:58dvh}.crop-dialog-footer{align-items:stretch;flex-direction:column}.crop-dialog-footer>div{justify-content:flex-end}.crop-control-row{gap:7px}.crop-segment button{min-width:46px;padding:0 7px}}
