: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}html{min-height:100%}body{min-height:100vh;display:flex;flex-direction:column}body>main{flex:1 0 auto;width:100%}body>footer{flex-shrink:0}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:88px;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:12px;padding:36px 36px 32px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.6),0 8px 28px -12px rgba(30,25,20,.18),0 2px 6px rgba(30,25,20,.06);border:1px solid rgba(30,25,20,.05);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:6px;padding:12px 14px;font-family:var(--sans);font-size:11pt;line-height:1.7;min-height:100px;background:#fff;resize:vertical;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.upload-form textarea:hover{border-color:#c5b394}.upload-form textarea:focus{outline:none;border-color:#b3935a;background:#fffdf6;box-shadow:0 0 0 3px rgba(138,109,59,.14)}.upload-form .image-drop{border:1.5px dashed var(--grid-line);border-radius:8px;padding:28px 24px;text-align:center;cursor:pointer;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease;background:#fff;outline:none}.upload-form .image-drop:hover{border-color:#c5b394;background:#fdfaf2}.upload-form .image-drop:focus-visible{border-color:#b3935a;background:#fdfaf2;box-shadow:0 0 0 3px rgba(138,109,59,.14)}.upload-form .image-drop.active{border-color:#b3935a;border-style:solid;background:#fdfaf2;box-shadow:0 0 0 3px rgba(138,109,59,.18)}.upload-form .image-drop input[type=file]{display:none}.upload-form .image-drop .placeholder{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--ink-soft);font-size:10pt;letter-spacing:1px;line-height:1.7}.upload-form .image-drop .drop-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#f4ede0;color:var(--c-structure);margin-bottom:4px;transition:background .18s ease,color .18s ease,transform .18s ease}.upload-form .image-drop .placeholder-main{font-weight:500;color:var(--ink);letter-spacing:1.5px}.upload-form .image-drop .hint-inline{display:inline-block;font-size:9pt;color:var(--ink-soft);opacity:.78;letter-spacing:.5px}.upload-form .image-drop.active .drop-icon,.upload-form .image-drop:focus-visible .drop-icon,.upload-form .image-drop:hover .drop-icon{background:rgba(138,109,59,.14);color:#8a6d3b;transform:translateY(-1px)}.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 48px;border-radius:4px;font-size:11pt;letter-spacing:4px;cursor:pointer;transition:background .15s;align-self:center;min-width:240px}.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}}@media(max-width:720px){.section-title{font-size:22pt;letter-spacing:3px}.section-subtitle{font-size:10pt;letter-spacing:1px;margin-bottom:32px}.pricing-section{padding:56px 16px}.features{padding:32px 16px 64px}.features .grid{gap:14px}.feature-card{padding:24px 22px}.feature-card .icon{font-size:18pt;margin-bottom:14px;letter-spacing:1px}.feature-card h3{font-size:14pt;letter-spacing:2px;margin-bottom:10px}.feature-card p{font-size:10.5pt;line-height:1.75}.toolbar{top:auto;bottom:12px;right:12px;padding:6px;gap:6px}.toolbar a,.toolbar button{padding:8px 12px;font-size:11px;letter-spacing:1px}.app-container{padding:32px 16px 64px}.app-container h1{font-size:22pt;letter-spacing:3px}.app-container .lede{font-size:10pt;letter-spacing:.5px;margin-bottom:24px}.upload-form{padding:24px 18px 22px;gap:18px;border-radius:10px}.upload-form label{font-size:9.5pt;letter-spacing:1.5px}.upload-form label .hint{display:block;margin-left:0;margin-top:4px;font-size:8.5pt;letter-spacing:.5px}.upload-form textarea{font-size:16px;padding:10px 12px;min-height:88px}.upload-form .image-drop{padding:22px 14px}.upload-form .image-drop .placeholder-main{font-size:9.5pt;letter-spacing:1px}.upload-form .image-drop .hint-inline{font-size:8.5pt}.upload-form .image-drop .drop-icon{width:32px;height:32px}.upload-form .preview-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.upload-form .preview-grid .preview button{width:26px;height:26px;font-size:14px}.upload-form .submit{padding:13px 28px;font-size:10.5pt;letter-spacing:3px;min-width:0;width:100%;max-width:320px}.upload-form .upload-progress-stream{max-height:180px;font-size:9pt}}@media(max-width:380px){.upload-form{padding:20px 14px 18px}.app-container{padding:28px 12px 56px}.app-container h1{font-size:19pt;letter-spacing:2px}}