:root{--paper:#f5f1e8;--ink:#24382f;--muted:#6c7468;--line:#d9dbcd;--accent:#ba4d36;--green:#e6eadc;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Avenir Next,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(ellipse at 85% 5%, #e7eadb80, transparent 55%), var(--paper);margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.app-shell{max-width:1440px;margin:0 auto;padding:0 5.5%}.header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;height:105px;display:flex}.wordmark{letter-spacing:-4px;font-size:45px;font-weight:800;line-height:1;text-decoration:none}.wordmark>span:first-child{font-family:Georgia,serif;font-style:italic;font-weight:400}.wordmark-dot{color:var(--accent)}.edition,.eyebrow,.section-number,.stage-toolbar,footer{letter-spacing:1.6px;font-size:10px;font-weight:600}.edition span{color:var(--muted);margin-left:18px}.intro{justify-content:space-between;align-items:center;gap:20px;padding:48px 0 38px;animation:.6s both arrive;display:flex}.eyebrow{color:var(--accent);margin:0 0 14px;display:block}h1{letter-spacing:-2px;margin:0;font-family:Songti SC,STSong,Georgia,serif;font-size:clamp(38px,4.3vw,64px);font-weight:500}h1>span{color:var(--accent)}.intro-copy{color:var(--muted);letter-spacing:.6px;margin:18px 0 0;font-size:13px;line-height:1.8}.intro-steps{gap:18px;margin:22px 0 0;padding:0;list-style:none;display:flex}.intro-steps li{color:var(--muted);align-items:center;gap:7px;font-size:11px;display:flex}.intro-steps li span{color:var(--accent);font-family:Georgia,serif;font-size:13px}.intro-steps strong{color:var(--ink);font-weight:500}.intro-note{margin-right:4%;font-family:Kaiti SC,STKaiti,Georgia,serif;font-size:17px;line-height:1.8;transform:rotate(-6deg)}.intro-note span{color:var(--accent);margin-top:6px;font-size:32px;display:block}.workspace{border:1px solid var(--line);background:#fdfbf6;border-radius:4px;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);animation:.65s 80ms both arrive;display:grid;overflow:hidden}.workflow{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.workflow button{border:1px solid var(--line);color:var(--muted);text-align:left;background:0 0;grid-template-columns:auto 1fr;gap:4px 10px;padding:14px 8px;font-size:13px;display:grid}.workflow button span{grid-row:span 2;margin-right:2px;font-family:Georgia,serif}.workflow button strong{font-weight:600}.workflow button small{color:var(--muted);font-size:10px;line-height:1.3}.workflow button[aria-current]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.workflow button[aria-current] small{color:#d6ddce}.workflow button.is-complete{border-color:#aebda4}.workflow button.is-complete strong:before{content:"✓ ";color:#6e7d5b}.editor-panel{padding:22px}.editor-panel>.muted{max-width:none}.crop-editor,.joint-editor{touch-action:none;-webkit-user-select:none;user-select:none;background:#e8eadf;width:100%;height:auto;display:block}.crop-editor{overflow:visible}.crop-editor circle{cursor:nwse-resize}.joint-editor circle{cursor:grab}.joint-editor circle:focus{stroke:#24382f;stroke-width:6px;outline:none}.joint-label{color:var(--accent);font-size:12px}.crop-fields{border:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:15px 0 0;display:grid}.crop-fields legend{padding-top:15px;font-size:12px}.crop-fields label{gap:5px;font-size:12px;display:grid}.crop-fields input{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:#fdfbf6;padding:8px}.editor-tools{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.editor-tools button{background:var(--paper);border:1px solid var(--line);color:var(--ink);padding:8px 10px;font-size:12px}.editor-tools button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.editor-tools label{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.editor-tools input{accent-color:var(--accent);max-width:160px}.mask-editor{background:#fff;width:100%;position:relative}.mask-editor img,.mask-editor canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.mask-editor canvas{touch-action:none}.editor-navigation{margin-top:22px;font-size:12px;line-height:1.8}.editor-navigation small{color:var(--muted);margin-top:12px;display:block}.edit-notice p{min-height:44px}@media (width<=760px){.workflow{gap:4px}.workflow button{padding:12px 5px;font-size:11px}.workflow button small{display:none}.workflow button span{margin:0 0 6px;display:block}.editor-panel{padding:16px}}.controls{padding:30px}.section-number{justify-content:space-between;gap:8px;font-size:9px;display:flex}.section-number span:last-child{color:var(--muted);letter-spacing:.5px;font-weight:400}h2{letter-spacing:-.5px;margin:25px 0 12px;font-size:20px;font-weight:600}.muted{color:var(--muted);max-width:340px;margin:0 0 22px;font-size:12px;line-height:1.9}.step-checklist{color:var(--muted);gap:5px;margin:-8px 0 22px;padding:0;font-size:11px;list-style:none;display:grid}.step-checklist li:before{content:"✓";color:#6e7d5b;margin-right:7px}.file-input{display:none}.upload-zone{width:100%;color:var(--ink);background:#f5f6ed;border:1px dashed #aeb7a4;border-radius:3px;flex-direction:column;align-items:center;gap:9px;padding:19px 12px;display:flex}.upload-zone:hover:not(:disabled),.upload-zone.is-dragging{border-color:var(--ink);background:#e9eede}.upload-plus{font-size:27px;font-weight:300;line-height:1}.upload-zone strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;overflow:hidden}.upload-zone>span:last-child{color:var(--muted);font-size:10px;line-height:1.6}.example-link{color:var(--muted);background:0 0;border:0;gap:12px;padding:12px 0;font-size:11px;display:flex}.example-link:hover:not(:disabled){color:var(--accent)}.upload-option{align-items:flex-start;gap:7px;margin-top:12px;font-size:11px;line-height:1.6;display:flex}.upload-option input{accent-color:var(--ink);flex-shrink:0}.upload-option-note{color:var(--muted);overflow-wrap:anywhere;font-size:10px;line-height:1.7}.upload-advanced{border-top:1px solid var(--line);margin:14px 0 3px;padding-top:10px}.upload-advanced summary{cursor:pointer;color:var(--muted);font-size:11px;list-style-position:inside}.upload-advanced summary span{color:#9a9f92;margin-left:5px}.upload-advanced[open] summary{color:var(--ink)}.playback-loading{z-index:1;text-align:center;width:min(85%,320px);margin:auto;font-size:13px;line-height:1.8;position:relative}.playback-loading small{color:var(--muted);display:block}.playback-loading progress{width:100%;accent-color:var(--ink)}.motion-card{border-top:1px solid var(--line);align-items:center;gap:13px;margin-top:9px;padding:21px 0;display:flex}.motion-mark{background:var(--green);border:1px solid #d6d9cb;border-radius:24px 24px 4px 4px;place-items:center;width:44px;height:48px;font-family:Georgia,serif;font-size:28px;display:grid}.motion-card .eyebrow{margin-bottom:5px;font-size:8px}.motion-card strong,.motion-card small{display:block}.motion-mode-note{color:var(--ink);background:#eef1e7;border-left:3px solid #aebd9d;margin:10px 0 0;padding:9px 10px;font-size:11px;line-height:1.6}.motion-card strong{font-size:12px}.motion-card small{color:var(--muted);margin-top:5px;font-size:10px}.selected-dot{background:#6e7d5b;border:4px solid #fdfbf6;border-radius:50%;outline:1px solid #6e7d5b;width:14px;height:14px;margin-left:auto}.primary-button,.download-button{background:var(--ink);color:#fffef7;border:none;border-radius:3px;justify-content:space-between;align-items:center;gap:20px;padding:16px 19px;font-size:13px;text-decoration:none;display:flex}.primary-button{width:100%}.primary-button:hover:not(:disabled),.download-button:hover{background:#3b5140}.primary-button>span{font-size:22px;line-height:1}.privacy-note{color:var(--muted);text-align:center;margin:13px 0 21px;font-size:10px}.scope-note{color:var(--muted);border-top:1px solid var(--line);padding-top:16px;font-size:10px;line-height:1.8}.scope-note strong{color:var(--ink);font-weight:500}.stage{border-left:1px solid var(--line);background-color:#e8ecdf;background-image:linear-gradient(#b2bcaa25 1px,#0000 1px),linear-gradient(90deg,#b2bcaa25 1px,#0000 1px);background-size:24px 24px;flex-direction:column;min-width:0;padding:20px 24px 0;display:flex}.stage-toolbar{letter-spacing:1px;justify-content:space-between;align-items:center;gap:10px;font-size:8px;display:flex}.paper-tag{white-space:nowrap;border:1px solid #c1c8b5;padding:5px 7px}.paper{background:#fffefb;border:1px solid #dce0d1;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:350px;margin:27px 12px 0;padding:20px;display:flex;position:relative;box-shadow:3px 4px #c4cbb766,0 10px 25px #35452d0b}.paper--processing:after{content:"";z-index:2;background:var(--accent);pointer-events:none;height:2px;animation:2.4s cubic-bezier(.45,0,.35,1) infinite paper-scan;position:absolute;top:0;left:0;right:0;box-shadow:0 0 0 1px #ba4d3620,0 3px 12px #ba4d3675}.paper--processing:before{animation:2.4s ease-in-out infinite tape-breathe}.paper:before{content:"";background:#b8c39b70;width:70px;height:23px;position:absolute;top:-12px;left:calc(50% - 35px);transform:rotate(-5deg)}.doodle{width:min(75%,265px);height:auto;max-height:300px}.empty-caption{text-align:center;font-family:Kaiti SC,STKaiti,Georgia,serif;font-size:16px}.empty-caption span{letter-spacing:2px;color:#89917e;margin-top:10px;font-family:Avenir Next,sans-serif;font-size:8px;display:block}.character{object-fit:contain;width:100%;height:100%;min-height:220px;max-height:420px}.processing-label{z-index:3;color:#65705f;letter-spacing:.7px;white-space:nowrap;background:0 0;border:0;align-items:center;gap:10px;padding:7px 2px 9px;font-size:10px;font-weight:600;display:flex;position:absolute;bottom:17px;left:50%;transform:translate(-50%)}.processing-label:after{content:"";opacity:.8;background:repeating-linear-gradient(90deg,#aeb9a4 0 8px,#0000 8px 12px);height:1px;position:absolute;bottom:0;left:0;right:0}.processing-pulse{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.3s ease-in-out infinite pulse}.stage-bottom{color:#78846b;justify-content:space-between;align-items:center;gap:8px;padding:17px 0;font-size:9px;display:flex}.stage-bottom>span:first-child,.stage-bottom>span:last-child{font-size:16px}.result-strip{border-bottom:1px solid var(--line);align-items:center;gap:18px;padding:27px 0;animation:.65s .16s both arrive;display:flex}.result-icon{border:1px solid #bfc6b3;border-radius:50%;flex-shrink:0;place-items:center;width:47px;height:47px;font-family:Georgia,serif;font-size:29px;display:grid}.result-icon.is-error{color:var(--accent);border-color:var(--accent)}.result-text{flex:1}.result-text h2{margin:0 0 7px;font-size:15px}.result-text p{color:var(--muted);margin:0;font-size:11px;line-height:1.7}.progress-steps{color:#959b8d;gap:16px;margin:12px 0 0;padding:0;font-size:10px;list-style:none;display:flex}.progress-steps li:before{content:"";vertical-align:middle;background:#d4d8c9;width:12px;height:3px;margin-right:5px;display:inline-block}.progress-steps .reached{color:var(--ink)}.progress-steps .reached:before{background:var(--ink)}.result-actions{align-items:center;gap:16px;display:flex}.text-button{color:var(--ink);background:0 0;border:0;align-items:center;gap:12px;padding:10px 0;font-size:11px;display:inline-flex}.error-panel{color:#773723;overflow-wrap:anywhere;background:#f6e7d7;border:1px solid #c39b80;margin:20px 0;padding:18px 22px;font-size:12px;line-height:1.7}.error-panel p{margin:8px 0 0}footer{color:#7b8273;letter-spacing:1px;justify-content:space-between;gap:15px;padding:24px 0 28px;font-size:8px;line-height:1.8;display:flex}@keyframes arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes paper-scan{0%,10%{opacity:0;top:0}18%{opacity:1}85%{opacity:1}to{opacity:0;top:calc(100% - 2px)}}@keyframes tape-breathe{0%,to{opacity:.4}50%{opacity:.75}}@keyframes pulse{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}@media (prefers-reduced-motion:reduce){.paper--processing:after,.paper--processing:before,.processing-pulse{animation:none}.paper--processing:after{opacity:.7}}@media (width>=1280px){.controls{padding:35px 40px}.stage{padding:24px 30px 0}.paper{margin:28px 24px 0}}@media (width<=760px){.app-shell{padding:0 5%}.header{height:80px}.edition{display:none}.wordmark{font-size:39px}.intro{padding:32px 0 28px}.intro-note{display:none}.intro-copy{margin-top:13px;font-size:11px}.intro-steps{gap:10px;margin-top:17px}.intro-steps li{gap:4px;font-size:10px}.workspace{grid-template-columns:1fr}.controls{padding:25px}.stage{border-left:0;border-top:1px solid var(--line);padding:20px 20px 0}.paper{min-height:330px;margin:25px 6px 0}.character{max-height:360px}.result-strip{flex-wrap:wrap;gap:14px;padding:22px 0}.result-text{min-width:200px}.result-actions{flex-wrap:wrap;width:100%;padding-left:61px}.download-button{padding:12px 18px;font-size:12px}footer{flex-direction:column;gap:4px;font-size:8px}}.motion-gallery{margin:24px 0}.gallery-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.gallery-heading small,.motion-option small{color:var(--muted);font-size:11px}.motion-filters{flex-wrap:wrap;gap:6px;margin:14px 0;display:flex}.motion-filters button{border:1px solid var(--line);background:0 0;border-radius:20px;padding:5px 9px;font-size:11px}.motion-filters button[aria-pressed=true]{color:#fff;background:#24382f}.motion-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.motion-option{border:1px solid var(--line);text-align:left;background:#f8f6ee;border-radius:9px;min-width:0;padding:7px}.motion-option[aria-pressed=true]{border-color:#24382f;box-shadow:inset 0 0 0 1px #24382f}.motion-option img{aspect-ratio:160/132;width:100%;height:auto;display:block}.preview-controls{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-top:14px;display:flex}.preview-controls small{color:var(--muted);font-size:10px}.preview-controls .text-button{font-size:11px}.upload-receipt{border:1px solid var(--muted);overflow-wrap:anywhere;border-radius:8px;margin:16px 0;padding:14px}.upload-receipt p{margin:0 0 10px;font-size:12px;line-height:1.7}.upload-receipt small{color:var(--muted);font-size:10px}.upload-receipt-actions{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.upload-receipt-actions button{font-size:11px}.motion-option strong,.motion-option small{margin:6px 3px;display:block}.motion-option strong{font-size:12px}.motion-selected{color:#506342;background:#dfe8d4;border-radius:10px;margin:2px 3px 3px;padding:2px 6px;font-size:10px;display:inline-block}.motion-option:disabled{opacity:.6}.motion-gallery .muted{margin-top:12px;font-size:11px}.status-helper{color:#7d8578!important;margin-top:5px!important;font-size:10px!important}.secondary-action{color:var(--muted)}.stage--result .paper{aspect-ratio:1;flex:none;min-height:0}.workspace--result{overflow:clip}.stage--result .character{min-height:0;max-height:100%}@media (width>=761px){.stage--result{align-self:start;position:sticky;top:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation:none!important}}