
:root{--paper:#f3f1e9;--ink:#293b36;--muted:#7c8178;--line:#dcded3;--red:#b84e3a;--serif:Georgia,'Noto Serif SC','Songti SC',SimSun,serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,'Microsoft YaHei',sans-serif;font-size:14px}button,input,select{font:inherit}button,a,input,summary,select{touch-action:manipulation}button{cursor:pointer;color:inherit}button{border:0;background:none}button:disabled{opacity:.45;cursor:wait}button:hover:not(:disabled){filter:brightness(.88)}a{color:inherit;text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible,.upload:focus-visible{outline:2px solid var(--red);outline-offset:4px}input{min-width:0}input:not([type=range]),select{border:1px solid var(--line);background:#faf9f4;color:var(--ink);border-radius:3px;padding:11px;width:100%}.header{height:89px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4.5vw}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brandmark{font-size:38px;color:var(--red);font-weight:400;line-height:1}.brand strong{font-family:var(--serif);font-size:27px;font-weight:500;letter-spacing:3px}.wordmark{font-size:11px;letter-spacing:2.5px;border-left:1px solid #c5c8ba;padding-left:14px;margin-left:4px}.edition{font:10px Consolas,monospace;letter-spacing:2px}.edition i{font-style:normal;color:var(--muted);margin-left:24px}.text-button{font-size:12px;padding:5px 0}.text-button span{margin-left:12px}.text-button:hover{text-decoration:underline}.intro{display:flex;align-items:flex-end;justify-content:space-between;padding:46px 0 31px}.eyebrow{font:10px Consolas,monospace;letter-spacing:2.2px;margin:0 0 18px;display:flex;align-items:center;gap:10px}.red-dot{display:inline-block;flex-shrink:0;width:7px;height:7px;border-radius:100%;background:var(--red)}h1{font:400 37px var(--serif);letter-spacing:2px;margin:0 0 12px}h1 span{color:var(--red)}.subtitle{color:var(--muted);font-size:13px;letter-spacing:2px;margin:0}.intro-note{text-align:right}.intro-note>span{font:10px Consolas,monospace;color:var(--red);letter-spacing:1px}.intro-note p{font-size:11px;line-height:1.9;color:var(--muted);margin:9px 0 0}main{max-width:1580px;margin:auto;padding:0 4.5vw}.workspace{display:grid;grid-template-columns:285px minmax(0,1fr);border:1px solid var(--line);background:#faf9f4}.controls{border-right:1px solid var(--line)}.control-section{padding:22px;border-bottom:1px solid var(--line)}.section-title{display:flex;align-items:center;gap:9px;margin-bottom:18px}.section-title>span:first-child{font:11px Consolas,monospace;color:var(--red)}h2{font-size:14px;letter-spacing:1px;margin:0;font-weight:600}.small-tag{margin-left:auto;color:var(--muted);font-size:9px;border:1px solid var(--line);border-radius:3px;padding:3px 5px}.upload{display:flex;flex-direction:column;gap:8px;align-items:center;border:1px dashed #c2c9ba;border-radius:3px;padding:16px 5px;cursor:pointer;background:#f2f3ea;transition:.2s}.upload.dragging{background:#e2e8db;border-color:var(--red)}.upload-icon{font:25px Georgia;line-height:1;color:#6e7a6e}.upload strong{font-size:12px;font-weight:500}.upload small{font-size:10px;color:var(--muted)}.upload .file-types{font-size:9px;margin-top:5px;letter-spacing:.2px}.file-info{font-size:9px;color:var(--muted);margin-top:10px;overflow-wrap:anywhere}.field-label{display:block;font-size:11px;margin-bottom:8px}.search-box{position:relative;display:flex;align-items:center}.search-box>span{position:absolute;left:10px;font-size:21px;top:4px}.search-box input{padding-left:32px;padding-right:24px;font-size:11px}.search-box button{position:absolute;right:3px;top:7px}.selected-place{display:flex;align-items:center;gap:12px;background:#eef0e6;border:1px solid #dce1d2;border-radius:3px;padding:13px;margin-top:13px}.selected-place strong{display:block;font-size:13px;font-weight:500}.selected-place small{display:block;font-size:9px;margin-top:4px;color:var(--muted)}.location-arrow{margin-left:auto;color:#899279}.hint{font-size:10px;line-height:1.8;color:var(--muted);margin:10px 0 0}.results{max-height:265px;overflow:auto;border:1px solid var(--line);box-shadow:0 8px 20px #23352610}.results button{display:block;text-align:left;padding:11px;width:100%;font-size:12px;border-bottom:1px solid var(--line);background:#fff}.results button small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.results p{padding:10px;font-size:11px;line-height:1.7}.manual{margin-top:12px;font-size:10px}.manual summary{cursor:pointer;color:#6d796c}.coordinate-fields{display:flex;gap:8px;margin:12px 0}.coordinate-fields label{width:50%;color:var(--muted)}.manual input{font-size:11px;margin-top:5px}.secondary{border:1px solid #bcc5b8;padding:9px;background:#eef1e8;font-size:11px;margin-top:10px}.inline-button{color:var(--red);font-size:10px}.tiny{font-size:10px;margin-left:auto;color:var(--muted)}.segmented{display:flex;background:#eaece2;padding:3px;border-radius:4px}.segmented button{width:50%;font-size:11px;padding:9px 3px;border-radius:2px;color:var(--muted)}.segmented button.active{background:#fffef8;box-shadow:0 1px 4px #293b3614;color:var(--ink)}.slider-label{font-size:11px;display:flex;justify-content:space-between;margin-top:20px}.slider-label output{font:11px Consolas,monospace;color:var(--muted)}input[type=range]{width:100%;accent-color:#4e6658;height:3px;margin:15px 0 2px;cursor:pointer}.ink-row,.position-row{display:flex;align-items:center;gap:10px;font-size:11px;margin-top:21px}.swatch{width:23px;height:23px;border-radius:50%;border:1px solid #d2d4c7}.swatch.cream{background:#f0e9d6;margin-left:10px}.swatch.dark{background:#294338}.swatch.active{outline:1px solid #60755e;outline-offset:3px}.ink-caption{margin-left:auto;color:var(--muted);font-size:10px}.position-buttons{display:flex;margin-left:auto;gap:6px}.position-buttons button{border:1px solid #d9ded2;width:31px;height:27px;border-radius:2px}.position-buttons button.active{background:#e4e9db;border-color:#9ea995}.export-section{padding:21px}.wide{width:100%}.primary{background:var(--ink);color:#fffbed;padding:15px 17px;text-align:left;font-size:12px;border-radius:3px;letter-spacing:1px}.primary span{float:right;font-size:17px;line-height:1}.export-options{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:9px}.export-options select{border:0;background:none;font-size:10px;width:56%;padding:5px 0}.export-options button{font-size:10px;white-space:nowrap}.privacy-note{font-size:9px;text-align:center;color:var(--muted);margin:15px 0 0}.preview-area{padding:20px 27px;background:#e9e9df;min-width:0;display:flex;flex-direction:column}.preview-toolbar{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin-bottom:18px}.preview-toolbar>span{display:flex;align-items:center;gap:7px}.live-dot{width:5px;height:5px;border-radius:50%;background:#78946f}.stage{position:relative;min-height:300px;display:flex;align-items:center;justify-content:center;background:#dfdfd4;overflow:hidden;flex:1}canvas{display:block;max-width:100%;max-height:640px;width:auto;height:auto;box-shadow:0 5px 22px #263a3221;touch-action:none;cursor:grab}.loading{position:absolute;background:#f4f0e2ed;padding:16px 22px;font-size:12px}.loading[hidden]{display:none}.preview-caption{display:flex;justify-content:space-between;font:9px Consolas,monospace;letter-spacing:.8px;color:#74806e;margin:13px 0 31px;gap:12px}.sample-heading{display:flex;justify-content:space-between;font-size:11px;margin-bottom:13px}.sample-heading>span:last-child{font:9px Consolas,monospace;letter-spacing:1px;color:var(--muted)}.samples{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.sample{text-align:left;padding:0;opacity:.7;transition:opacity .2s;min-width:0}.sample:hover,.sample.active{opacity:1}.sample img{width:100%;height:85px;object-fit:cover;border:2px solid transparent;padding:2px}.sample.active img{border-color:var(--red)}.sample>span{display:flex;align-items:center;gap:6px;font:9px Consolas,monospace;padding:7px 4px}.sample strong{font:11px Arial,sans-serif;font-weight:500}.sample small{margin-left:auto;font-size:8px;color:var(--muted)}.editor-note{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #d2d7c9;margin-top:20px;padding-top:18px;font-size:10px;color:var(--muted)}.editor-note>span{font-family:var(--serif);font-style:italic;letter-spacing:1px}.editor-note p{font-size:9px;margin:0}footer{display:flex;justify-content:space-between;gap:20px;padding:25px 0 30px;color:var(--muted);font-size:8px;line-height:1.8}footer>span{font:8px Consolas,monospace;letter-spacing:.5px}footer i{font-style:normal;padding:0 8px;color:var(--red)}footer a{text-decoration:none}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#293b36;color:#fffbed;border-radius:4px;box-shadow:0 6px 25px #0002;padding:14px 23px;max-width:90%;z-index:10;font-size:12px;line-height:1.6;display:none}.toast.show{display:block}dialog{border:1px solid var(--line);background:var(--paper);padding:38px;max-width:510px;width:90%;color:var(--ink)}dialog::backdrop{background:#19292188}dialog h2{font:28px/1.5 var(--serif);margin-bottom:22px}dialog p{font-size:12px;line-height:1.9}dialog small{font-size:10px;line-height:1.7;color:var(--muted)}.dialog-close{position:absolute;right:15px;top:10px;font-size:24px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@media(min-width:1500px){.stage{min-height:540px}canvas{max-height:740px}}@media(max-width:1050px){main{padding:0 3vw}.header{padding:0 3vw}.edition{display:none}.workspace{grid-template-columns:260px minmax(0,1fr)}.control-section{padding:18px}.preview-area{padding:20px 18px}.stage{min-height:250px}.sample img{height:65px}.sample small{display:none}.editor-note{flex-direction:column;gap:8px;align-items:flex-start}}@media(max-width:720px){.header{height:67px}.brand strong{font-size:23px}.brandmark{font-size:31px}.wordmark{font-size:9px;letter-spacing:1.5px}.intro{padding:30px 0 25px}h1{font-size:27px;letter-spacing:0}.intro-note{display:none}.eyebrow{font-size:8px;letter-spacing:1.5px}.subtitle{font-size:11px}.workspace{display:flex;flex-direction:column}.controls{display:contents}.preview-area{order:1;padding:15px;position:relative}.controls .control-section:first-child{order:0;padding:16px}.upload{padding:13px;gap:5px}.upload-icon,.upload .file-types{display:none}.upload strong{font-size:12px}.section-title{margin-bottom:12px}.file-info{margin-top:8px}.control-section{order:2}.export-section{order:3}.stage{min-height:200px;max-height:520px;flex:none}.stage canvas{max-height:520px}.preview-caption{margin-bottom:20px;font-size:8px}.sample img{height:60px}.samples{gap:7px}.sample strong{font-size:10px}.sample-heading{font-size:10px}.editor-note{display:none}.control-section{padding:20px}.controls .control-section:nth-child(3){border-bottom:0}.export-section{padding:20px;padding-top:5px}.primary{text-align:center}.export-options{justify-content:center}.export-options select{width:45%}.privacy-note{font-size:10px}footer{flex-direction:column;gap:10px;font-size:8px}dialog{padding:27px}.preview-toolbar{margin-bottom:10px}.upload small{font-size:10px}.intro .eyebrow{margin-bottom:14px}}

button.upload{width:100%;color:inherit;text-align:center}
