:root{color:#16213a;font-synthesis:none;text-rendering:optimizelegibility;--ink:#17213a;--muted:#667085;--line:#dcd9d1;--paper:#fffefb;--cream:#f4f1e9;--blue:#1659d4;--blue-dark:#0e378f;--mint:#d9f9e4;--mint-ink:#0d5c38;--coral:#f06c4f;--shadow:0 18px 50px #242c4017;background:#f4f1e9;font-family:Aptos,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:linear-gradient(#1d294309 1px, transparent 1px), linear-gradient(90deg, #1d294309 1px, transparent 1px), var(--cream);background-size:28px 28px;min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input,select{font:inherit}button,a,select,input[type=range]{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[role=button]:focus-visible{outline-offset:2px;outline:3px solid #1659d459}button:disabled,select:disabled,input:disabled{cursor:not-allowed}.app-shell{width:100%;overflow:hidden}.site-header{border-bottom:1px solid #17213a21;justify-content:space-between;align-items:center;gap:18px;width:min(1180px,100% - 40px);min-height:76px;margin:0 auto;display:flex}.brand{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:10px;font-size:19px;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{color:#fff;background:var(--blue);border-radius:9px 9px 9px 2px;place-items:center;width:34px;height:34px;font-size:16px;display:grid;box-shadow:4px 4px #b8cdf9}.header-tag{color:var(--mint-ink);background:var(--mint);border:1px solid #a5e7bc;border-radius:999px;padding:8px 13px;font-size:13px;font-weight:700}main{width:min(1180px,100% - 40px);margin:0 auto}.hero{grid-template-columns:minmax(0,1.65fr) minmax(320px,.65fr);align-items:end;gap:60px;padding:70px 0 42px;display:grid}.eyebrow,.step-label{color:var(--blue);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:800}.hero h1{max-width:760px;color:var(--ink);letter-spacing:-.065em;margin:15px 0 18px;font-size:clamp(42px,6.1vw,76px);line-height:1.03}.hero h1 span{color:var(--blue)}.hero-copy>p{color:#59647a;max-width:650px;margin:0;font-size:17px;line-height:1.75}.privacy-card{color:var(--mint-ink);background:var(--mint);border:1px solid #9ee2b6;border-radius:20px 20px 20px 5px;padding:23px 23px 22px 69px;position:relative;box-shadow:8px 8px #408f5e21}.privacy-icon{color:#fff;background:#129552;border-radius:50%;place-items:center;width:30px;height:30px;font-weight:900;display:grid;position:absolute;top:22px;left:22px}.privacy-card strong{font-size:16px;line-height:1.45;display:block}.privacy-card p{margin:7px 0 0;font-size:13px;line-height:1.6}.tool{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:26px;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);align-items:start;display:grid;overflow:hidden}.editor-panel{border-right:1px solid var(--line);background:#ecf1f8;min-width:0;min-height:770px;padding:30px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;min-height:58px;display:flex}.panel-heading h2{color:var(--ink);letter-spacing:-.025em;margin:7px 0 0;font-size:20px}.text-button,.mini-button,.replace-button{min-height:36px;color:var(--blue);cursor:pointer;background:#fff;border:1px solid #bdc9de;border-radius:9px;padding:6px 11px;font-size:12px;font-weight:800}.dropzone{color:#667085;cursor:pointer;background:radial-gradient(circle at 50% 35%,#1659d417,#0000 33%),#ffffff9e;border:2px dashed #9eafc8;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:590px;margin-top:20px;padding:32px;transition:border-color .16s,background .16s,transform .16s;display:flex}.dropzone:hover{border-color:var(--blue);background-color:#ffffffe6;transform:translateY(-2px)}.upload-glyph{color:#fff;background:var(--blue);border-radius:50% 50% 50% 15%;place-items:center;width:68px;height:68px;margin-bottom:8px;font-size:38px;font-weight:300;display:grid;box-shadow:8px 8px #c7d7f5}.dropzone strong{color:var(--ink);font-size:23px}.dropzone small{margin-top:6px;font-size:12px}.canvas-stage{background-color:#eef2f7;background-image:linear-gradient(45deg,#dce3ed 25%,#0000 25%),linear-gradient(-45deg,#dce3ed 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#dce3ed 75%),linear-gradient(-45deg,#0000 75%,#dce3ed 75%),none;background-position:0 0,0 12px,12px -12px,-12px 0;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box;border:1px solid #ccd4e1;border-radius:18px;place-items:center;min-height:590px;margin-top:20px;padding:24px;display:grid;overflow:hidden}.photo-frame{background:#438edb;border:8px solid #fff;place-items:stretch stretch;width:min(88%,390px);max-height:520px;display:grid;position:relative;overflow:hidden;box-shadow:0 22px 50px #15244247,0 0 0 1px #c8d0dc}.photo-frame canvas,.photo-frame .original-full{object-fit:cover;touch-action:none;cursor:grab;width:100%;height:100%;display:block}.photo-frame canvas:active{cursor:grabbing}.frame-size{color:#fff;pointer-events:none;background:#111c32ad;border-radius:6px;padding:5px 8px;font-size:10px;font-weight:700;position:absolute;bottom:8px;right:8px}.processing-card{aspect-ratio:3/4;background:#23314b;border:8px solid #fff;width:min(86%,390px);max-height:520px;position:relative;overflow:hidden;box-shadow:0 20px 46px #15244240}.processing-card img{object-fit:cover;width:100%;height:100%;display:block}.processing-shade{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f1d3a9e;position:absolute;inset:0}.processing-copy{color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:11px;padding:28px;display:flex;position:absolute;inset:0}.processing-copy strong{margin-top:5px;font-size:17px}.processing-copy>span:not(.spinner){color:#d8e5ff;font-size:13px}.processing-copy small{color:#cdd6e7;max-width:260px;margin-top:5px;font-size:11px;line-height:1.55}.spinner{border:4px solid #ffffff3d;border-top-color:#fff;border-radius:50%;width:42px;height:42px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress-track{background:#ffffff2e;border-radius:999px;width:min(260px,80%);height:7px;overflow:hidden}.progress-track i{border-radius:inherit;background:#8be5aa;height:100%;transition:width .18s;display:block}.status-row{color:#5a667a;background:#ffffffbf;border:1px solid #d3dbe7;border-radius:11px;align-items:center;gap:9px;min-height:46px;margin-top:14px;padding:8px 10px;font-size:12px;display:flex}.status-dot{background:#e2a528;border-radius:50%;flex:none;width:8px;height:8px}.status-done .status-dot{background:#17a45b}.status-error .status-dot{background:#d5473e}.status-main{font-weight:700}.timing{color:#788398;margin-left:auto}.replace-button{margin-left:auto}.error-box{color:#8a2d2d;background:#fff1ef;border:1px solid #f2b7af;border-radius:10px;margin:12px 0 0;padding:12px 14px;font-size:12px;line-height:1.6}.controls-panel{background:var(--paper);min-width:0;padding:16px 30px 30px}.controls-panel.is-disabled .control-section{opacity:.47}.control-section{border-bottom:1px solid #e8e5de;padding:22px 0;transition:opacity .18s}.control-section:last-child{border-bottom:0}.control-title{align-items:center;gap:10px;min-height:31px;display:flex}.control-title>span{color:#fff;background:var(--ink);border-radius:8px 8px 8px 2px;place-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:grid}.control-title h3{color:var(--ink);letter-spacing:-.02em;margin:0;font-size:16px}.control-title .mini-button{margin-left:auto}.control-title>b{color:#9a3e26;background:#ffe1d8;border-radius:6px;margin-left:auto;padding:4px 7px;font-size:10px}.color-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.color-options button{color:#59647a;cursor:pointer;background:#fff;border:1px solid #d6d9df;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:0;min-height:62px;padding:8px 4px;font-size:11px;font-weight:700;display:flex}.color-options button.active{color:var(--blue);border-color:var(--blue);background:#f2f6ff;box-shadow:0 0 0 2px #1659d41a}.color-options i{border:1px solid #17213a2e;border-radius:50%;width:25px;height:25px;display:block}.select-wrap{color:#6b7485;gap:7px;margin-top:15px;font-size:11px;font-weight:700;display:grid}.select-wrap select{width:100%;height:46px;color:var(--ink);background:#fff;border:1px solid #cdd2dc;border-radius:10px;padding:0 40px 0 13px;font-size:13px;font-weight:700}.size-facts{color:#6e7789;grid-template-columns:auto auto 1fr;gap:7px;margin-top:9px;font-size:10px;display:grid}.size-facts span{text-align:center;background:#f3f4f6;border-radius:7px;justify-content:center;align-items:center;gap:3px;min-height:30px;padding:7px 8px;display:flex}.range-row{color:#59647a;grid-template-columns:72px 1fr 42px;align-items:center;gap:10px;margin-top:14px;font-size:11px;font-weight:700;display:grid}.range-row input{width:100%;accent-color:var(--blue)}.range-row output{color:var(--ink);text-align:center;background:#f2f3f5;border-radius:5px;padding:4px;font-size:10px}.hint,.export-intro,.print-section p{color:#788194;margin:10px 0 0;font-size:11px;line-height:1.55}.print-section .print-result{color:var(--mint-ink);background:var(--mint);border:1px solid #a5e7bc;border-radius:8px;padding:9px 10px;font-weight:700}.export-section{background:#f6f8ff;border:1px solid #dbe4fb;border-radius:14px;margin:0 -15px;padding:22px 15px}.kb-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:13px;display:grid}.kb-options button{color:#4e5b71;cursor:pointer;background:#fff;border:1px solid #ccd4e4;border-radius:8px;min-height:40px;padding:7px 3px;font-size:11px;font-weight:800}.kb-options button.active{color:#fff;background:var(--blue);border-color:var(--blue)}.custom-kb{color:#657086;background:#fff;border:1px solid #ccd4e4;border-radius:8px;align-items:center;gap:8px;height:42px;margin-top:9px;padding:0 10px;font-size:11px;font-weight:700;display:flex}.custom-kb input{width:100%;min-width:0;height:32px;color:var(--ink);text-align:right;background:0 0;border:0;outline:0;font-size:12px}.custom-kb em{font-style:normal}.primary-button,.secondary-button{cursor:pointer;border-radius:10px;width:100%;min-height:48px;margin-top:12px;font-weight:800}.primary-button{color:#fff;background:var(--blue);border:1px solid var(--blue);box-shadow:0 5px 0 var(--blue-dark)}.primary-button:hover:not(:disabled){box-shadow:0 6px 0 var(--blue-dark);transform:translateY(-1px)}.primary-button:active:not(:disabled){box-shadow:0 1px 0 var(--blue-dark);transform:translateY(4px)}.primary-button:disabled,.secondary-button:disabled{opacity:.55}.secondary-button{color:var(--ink);background:#fff;border:1px solid #bfc7d5}.export-result{color:var(--mint-ink);background:var(--mint);border:1px solid #a5e7bc;border-radius:9px;grid-template-columns:1fr auto;gap:2px 10px;margin-top:12px;padding:10px 12px;font-size:11px;display:grid}.export-result strong{font-size:13px}.export-result small{color:#3e765b;grid-column:1/-1}.how-it-works{margin:46px 0 70px}.how-it-works>span{color:var(--blue);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:800;display:block}.how-it-works ol{border-top:1px solid #cfcac0;grid-template-columns:repeat(4,minmax(0,1fr));margin:15px 0 0;padding:0;list-style:none;display:grid}.how-it-works li{grid-template-columns:auto 1fr;gap:4px 13px;padding:20px 15px 0 0;display:grid}.how-it-works li b{color:#c1baad;grid-row:1/3;font-size:20px}.how-it-works li strong{color:var(--ink);font-size:14px}.how-it-works li small{color:#71798a;font-size:10px}footer{color:#cdd6e7;background:var(--ink);align-items:center;gap:20px;min-height:90px;padding:25px max(20px,50vw - 590px);font-size:12px;display:flex}footer strong{color:#fff;font-size:15px}footer a{color:#a9c5ff;margin-left:auto}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (max-width:900px){.hero{grid-template-columns:1fr;gap:28px;padding-top:52px}.hero-copy>p{max-width:720px}.tool{grid-template-columns:1fr}.editor-panel{border-right:0;border-bottom:1px solid var(--line);min-height:auto}.dropzone,.canvas-stage{min-height:560px}.controls-panel{padding:12px 30px 28px}}@media (max-width:560px){.site-header,main{width:min(100% - 28px,1180px)}.site-header{min-height:66px}.brand{font-size:16px}.brand-mark{width:30px;height:30px;font-size:14px}.header-tag{padding:7px 9px;font-size:10px}.hero{gap:24px;padding:40px 0 30px}.hero h1{letter-spacing:-.06em;margin-top:12px;font-size:clamp(38px,12.2vw,52px)}.hero-copy>p{font-size:14px;line-height:1.7}.privacy-card{border-radius:16px 16px 16px 4px;padding:19px 18px 18px 59px}.privacy-icon{width:27px;height:27px;top:19px;left:18px}.privacy-card strong{font-size:14px}.tool{border-radius:18px;margin:0 -2px}.editor-panel{padding:20px 14px 16px}.panel-heading h2{font-size:17px}.dropzone,.canvas-stage{border-radius:14px;min-height:455px;margin-top:12px;padding:15px}.dropzone{min-height:430px}.photo-frame,.processing-card{width:min(92%,330px);max-height:430px}.processing-copy{padding:20px}.status-row{flex-wrap:wrap}.timing{order:4;width:100%;margin:-2px 0 0 17px}.replace-button{min-height:34px}.controls-panel{padding:8px 16px 23px}.control-section{padding:20px 0}.export-section{margin:0 -7px;padding:20px 8px}.size-facts{grid-template-columns:1fr .7fr}.size-facts span:last-child{grid-column:1/-1}.range-row{grid-template-columns:61px 1fr 38px;gap:7px}.color-options button{min-height:64px}.kb-options button{min-height:44px}.primary-button,.secondary-button{min-height:50px}.how-it-works{margin:38px 0 50px}.how-it-works ol{grid-template-columns:1fr 1fr;row-gap:18px}footer{flex-wrap:wrap;gap:8px 14px;padding:25px 20px}footer a{width:100%;margin-left:0}}@media (max-width:370px){.site-header,main{width:calc(100% - 20px)}.header-tag{text-align:center;max-width:116px}.hero h1{font-size:40px}.color-options,.kb-options{gap:5px}.color-options button,.kb-options button{font-size:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
