:root{--ink:#1d1b17;--ink-soft:#3a3630;--paper:#fdfcf8;--paper-shadow:rgba(30,25,20,.08);--grid-line:#d9c9b5;--grid-line-soft:#ece4d3;--c-error:#c0392b;--c-syntax:#2c6cb0;--c-punct:#d97706;--c-word:#7c3aed;--c-good:#2d8659;--c-note:#6b5d4d;--c-structure:#8a6d3b;--c-brand:#c0392b;--c-brand-dark:#8e2820;--c-accent:#2d8659;--serif:"Noto Serif SC","STSong","SimSun",serif;--sans:"Noto Sans SC",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;--kai:"Ma Shan Zheng","KaiTi","STKaiti",cursive}*{box-sizing:border-box}body,html{margin:0;padding:0;background:#f4ede0;font-family:var(--sans);color:var(--ink);-webkit-print-color-adjust:exact;print-color-adjust:exact}a{color:inherit;text-decoration:none}button{font-family:inherit}@keyframes spin{to{transform:rotate(1turn)}}.section-title{font-family:var(--serif);font-size:28pt;font-weight:700;text-align:center;letter-spacing:5px;margin:0 0 12px}.section-subtitle{text-align:center;color:var(--ink-soft);margin:0 0 48px;letter-spacing:2px;font-size:11pt}.pricing-section{background:var(--paper);padding:80px 24px}.pricing-section .container{max-width:720px;margin:0 auto}.features{max-width:1080px;margin:0 auto;padding:40px 24px 80px}.features .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:24px;gap:24px}.feature-card{background:var(--paper);border-radius:8px;padding:32px 28px;box-shadow:0 2px 14px var(--paper-shadow);border:1px solid rgba(0,0,0,.04)}.feature-card .icon{display:inline-block;font-size:22pt;margin-bottom:18px;color:var(--c-brand);letter-spacing:2px}.feature-card .icon,.feature-card h3{font-weight:700;font-family:var(--serif)}.feature-card h3{font-size:16pt;margin:0 0 12px;letter-spacing:3px}.feature-card p{margin:0;font-size:11pt;line-height:1.85;color:var(--ink-soft)}.toolbar{position:fixed;top:12px;right:12px;z-index:999;padding:10px;font-family:var(--sans);font-size:12px;display:flex;align-items:center;gap:8px}.toolbar a,.toolbar button{font:inherit;border:none;background:#1d1b17;color:#fafaf7;padding:6px 14px;border-radius:4px;cursor:pointer;letter-spacing:2px;text-decoration:none;display:inline-block}.toolbar a:hover,.toolbar button:hover{background:#3a3630}.app-container{max-width:880px;margin:0 auto;padding:48px 24px 80px}.app-container h1{font-family:var(--serif);font-size:26pt;font-weight:700;letter-spacing:4px;margin:0 0 8px}.app-container .lede{color:var(--ink-soft);font-size:11pt;letter-spacing:1px;margin:0 0 36px}.upload-form{background:var(--paper);border-radius:8px;padding:32px;box-shadow:0 2px 14px var(--paper-shadow);gap:24px}.upload-form,.upload-form .field{display:flex;flex-direction:column}.upload-form .field{gap:8px}.upload-form label{font-size:10pt;font-weight:600;letter-spacing:2px;color:var(--ink)}.upload-form label .hint{font-weight:400;letter-spacing:1px;color:var(--ink-soft);margin-left:8px;font-size:9pt}.upload-form textarea{border:1px solid var(--grid-line);border-radius:4px;padding:12px 14px;font-family:var(--sans);font-size:11pt;line-height:1.7;min-height:100px;background:#fff;resize:vertical}.upload-form textarea:focus{outline:none;border-color:var(--c-brand)}.upload-form .image-drop{border:1.5px dashed var(--grid-line);border-radius:6px;padding:24px;text-align:center;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;background:#fff;outline:none}.upload-form .image-drop:focus-visible,.upload-form .image-drop:hover{border-color:var(--c-brand);background:rgba(192,57,43,.03)}.upload-form .image-drop.active{border-color:var(--c-brand);border-style:solid;box-shadow:0 0 0 3px rgba(192,57,43,.12);background:rgba(192,57,43,.04)}.upload-form .image-drop input[type=file]{display:none}.upload-form .image-drop .placeholder{color:var(--ink-soft);font-size:10pt;letter-spacing:1px;line-height:1.7}.upload-form .image-drop .hint-inline{display:inline-block;margin-top:4px;font-size:9pt;color:var(--ink-soft);opacity:.75;letter-spacing:.5px}.upload-form .preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:10px;gap:10px;margin-top:12px}.upload-form .preview-grid .preview{position:relative;aspect-ratio:1;border-radius:4px;overflow:hidden;background:#f0ebe0}.upload-form .preview-grid .preview img{width:100%;height:100%;object-fit:cover}.upload-form .preview-grid .preview button{position:absolute;top:4px;right:4px;background:rgba(0,0,0,.6);color:#fff;border:none;width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:12px;line-height:1}.upload-form .preview-grid .preview button:hover{background:rgba(0,0,0,.8)}.upload-form .submit{background:var(--c-brand);color:#fff;border:none;padding:14px 32px;border-radius:4px;font-size:11pt;letter-spacing:4px;cursor:pointer;transition:background .15s;align-self:flex-start}.upload-form .submit:hover:not(:disabled){background:var(--c-brand-dark)}.upload-form .submit:disabled{opacity:.5;cursor:not-allowed}.upload-form .error{background:rgba(192,57,43,.06);border-left:3px solid var(--c-brand);padding:10px 14px;color:var(--c-brand-dark);font-size:10pt;border-radius:2px}.upload-form .upload-progress{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:rgba(192,57,43,.03);border:1px solid var(--grid-line-soft,var(--grid-line));border-radius:6px}.upload-form .upload-progress-status{display:flex;align-items:center;gap:10px;font-size:10pt;color:var(--ink);letter-spacing:1px}.upload-form .upload-progress-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--grid-line);border-top-color:var(--c-brand);border-radius:50%;animation:upload-progress-spin .9s linear infinite}@keyframes upload-progress-spin{to{transform:rotate(1turn)}}.upload-form .upload-progress-stream{max-height:220px;overflow-y:auto;background:#fff;border:1px solid var(--grid-line);border-radius:4px;padding:10px 12px;font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,monospace);font-size:9.5pt;line-height:1.55;color:var(--ink-soft);white-space:pre-wrap;word-break:break-all}.upload-form .upload-progress-stream .upload-progress-content,.upload-form .upload-progress-stream .upload-progress-thinking{position:relative;padding-left:6px;margin-bottom:8px}.upload-form .upload-progress-stream .upload-progress-thinking{color:var(--ink-soft);opacity:.78;font-style:italic;border-left:2px solid var(--grid-line);padding-left:10px}.upload-form .upload-progress-stream .upload-progress-content{color:var(--ink);border-left:2px solid var(--c-brand);padding-left:10px}.upload-form .upload-progress-stream .upload-progress-tag{display:inline-block;font-style:normal;font-size:8.5pt;font-weight:600;letter-spacing:1px;color:var(--c-brand-dark);background:rgba(192,57,43,.08);padding:0 6px;border-radius:2px;margin-right:8px;vertical-align:1px}.upload-form .upload-progress-stream .upload-progress-thinking .upload-progress-tag{color:var(--ink-soft);background:rgba(0,0,0,.05)}.upload-form .upload-progress-caret{display:inline-block;width:6px;height:1em;margin-left:2px;vertical-align:text-bottom;background:var(--c-brand);animation:upload-progress-caret 1s steps(2) infinite}@keyframes upload-progress-caret{50%{opacity:0}}