.stamp-workshop{padding:28px}.stamp-types{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding-bottom:28px;border-bottom:1px solid #e3e7dc}.stamp-types button{background:#f9faf5;border:1px solid #dfe5d5;border-radius:18px;padding:18px 8px 14px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;color:#293528;min-width:0}.stamp-types button[aria-pressed=true]{background:#f1f8d9;border:2px solid #718a44;padding:17px 7px 13px;box-shadow:0 5px 14px #738f4110}.stamp-types strong{font-size:13px}.stamp-types small{font-size:11px;color:#748069}.mini-seal{height:57px;width:57px;display:flex;align-items:center;justify-content:center;line-height:1.08;font-family:serif;font-size:20px;font-weight:bold;border:2px solid #ed302c;color:#ed302c}.mini-seal.oval{border-radius:50%;width:38px}.mini-seal.round{border-radius:50%}.mini-seal.double{outline:1px solid #ed302c;outline-offset:-6px;font-size:15px}.mini-seal.wide{width:70px;height:35px;margin:11px 0}.stamp-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:36px;padding-top:26px}.stamp-section-title{display:flex;align-items:center;gap:9px;margin-bottom:16px}.stamp-section-title:not(:first-child){margin-top:26px}.stamp-section-title h2{font-size:17px;margin:0}.stamp-section-title>span{font-size:10px;letter-spacing:1px;color:#84936b}.stamp-field-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.stamp-controls input,.stamp-controls select{width:100%;min-width:0}.stamp-controls .field{margin-bottom:16px}.stamp-controls [hidden]{display:none!important}.stamp-ink{font-size:13px;font-weight:600;margin:20px 0}.stamp-swatches{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}.stamp-swatches button{width:30px;height:30px;border-radius:50%;background:var(--ink);border:3px solid white;box-shadow:0 0 0 1px #d9ded2;cursor:pointer}.stamp-swatches button[aria-pressed=true]{box-shadow:0 0 0 2px #495d33}.stamp-swatches label{display:flex;align-items:center;gap:8px;font-size:11px;color:#66755b}.stamp-swatches input[type=color]{width:38px;height:32px;padding:2px}.stamp-result{align-self:start;position:sticky;top:20px;background:#f7f8f2;border:1px solid #e2e7d9;border-radius:24px;padding:22px}.stamp-preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:15px;font-weight:700}.stamp-live{font-size:10px;color:#73865a;font-weight:500}.stamp-paper{border-radius:14px;min-height:350px;height:390px;display:flex;align-items:center;justify-content:center;padding:28px;border:1px solid #e5e7df;background-color:#fff}.stamp-paper canvas{max-width:100%;max-height:100%;object-fit:contain;display:block}.stamp-result .hint{font-size:11px;line-height:1.7}.stamp-result .actions{flex-wrap:wrap}.stamp-result .primary{flex:1;text-align:center}.stamp-workshop button:focus-visible{outline:3px solid #56772d;outline-offset:4px}.stamp-workshop .status:empty{display:none}@media(max-width:800px){.stamp-workshop{padding:18px}.stamp-types{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-bottom:18px}.stamp-types strong{font-size:11px}.stamp-types small{display:none}.stamp-editor-grid{grid-template-columns:1fr;gap:20px}.stamp-result{position:static;grid-row:1;padding:16px}.stamp-paper{height:260px;min-height:260px;padding:18px}.stamp-result .hint{margin:8px 0}.stamp-result .actions{margin-top:10px}.stamp-types button{padding:13px 4px}.stamp-types button[aria-pressed=true]{padding:12px 3px}.stamp-field-pair{gap:10px}}@media(prefers-reduced-motion:reduce){.stamp-workshop *{scroll-behavior:auto}}

.stamp-tuning{background:#f7f9f0;border:1px solid #e2e7d9;border-radius:16px;padding:16px;margin:18px 0}.stamp-tuning h3{font-size:14px;margin:0 0 16px}.stamp-range{display:block;margin:0 0 18px;font-size:12px;color:#4c5e3f}.stamp-range>span{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.stamp-range output{font-variant-numeric:tabular-nums;font-size:12px;background:white;border:1px solid #dce3d2;border-radius:6px;padding:3px 7px;min-width:52px;text-align:center}.stamp-controls .stamp-range input[type=range]{appearance:auto;accent-color:#768d42;width:100%;height:28px;min-height:28px;padding:0;border:0;background:transparent;cursor:pointer}.stamp-range input:disabled{opacity:.35;cursor:default}.stamp-tuning .secondary{font-size:12px}.stamp-tuning #stamp-mark-tuning{border-top:1px solid #dde5d0;padding-top:18px;margin-top:18px}.stamp-tuning .hint{font-size:11px;line-height:1.7}

.stamp-font-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.stamp-font-gallery button{border:1px solid #dfe5d5;border-radius:16px;background:#fbfcf7;padding:16px 8px;display:flex;align-items:center;flex-direction:column;gap:8px;color:#293528;cursor:pointer;min-width:0}.stamp-font-gallery button[aria-pressed=true]{border-color:#718a44;background:#f1f8d9;box-shadow:inset 0 0 0 1px #718a44}.stamp-font-sample{display:flex;justify-content:center;align-items:center;text-align:center;border:2px solid #ed302c;border-radius:50%;width:76px;height:76px;color:#ed302c;font-size:26px;line-height:1.12;font-weight:400}.stamp-font-gallery strong{font-size:13px}.stamp-font-gallery small{font-size:11px;line-height:1.5;color:#65745a}.stamp-font-note{font-size:11px;line-height:1.7}.stamp-local-font{border:1px solid #dfe5d5;border-radius:14px;padding:14px;background:#fafbf6;margin:16px 0}.stamp-local-font summary{font-size:13px;font-weight:600;cursor:pointer}.stamp-local-font .hint{font-size:11px;line-height:1.7;overflow-wrap:anywhere}.stamp-local-font .field{font-size:12px}.stamp-local-font input[type=file]{font-size:12px;padding:10px}.stamp-local-font .secondary{font-size:12px}

.stamp-font-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.stamp-font-filters button{font-size:12px;border:1px solid #dce4ce;background:#f7f9ef;color:#536342;border-radius:20px;padding:8px 12px;min-height:40px;cursor:pointer}.stamp-font-filters button[aria-pressed=true]{background:#33472c;border-color:#33472c;color:#fff}.stamp-font-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.stamp-font-gallery button{padding:12px 5px}.stamp-font-gallery small{font-size:10px}.stamp-font-gallery .stamp-font-sample{width:66px;height:66px;font-size:24px}.stamp-font-gallery [data-font=dongle] .stamp-font-sample{font-size:34px}.stamp-font-gallery [data-font=pen] .stamp-font-sample,.stamp-font-gallery [data-font=eastsea] .stamp-font-sample{font-size:29px}#stamp-font-count{font-size:11px;color:#65745a}.stamp-license-links{line-height:2.1}@media(max-width:480px){.stamp-font-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.stamp-font-gallery button{padding:12px 5px}.stamp-font-filters button{padding:7px 10px;font-size:11px}}

.stamp-square-layout{border:1px solid #dce4ce;border-radius:16px;padding:16px;margin:20px 0;background:#f7f9f0;min-width:0}.stamp-square-layout legend{font-size:14px;font-weight:700;padding:0 6px;color:#3e5530}.stamp-square-layout textarea{width:100%;min-height:126px;resize:vertical;border:1px solid #dce3d2;border-radius:12px;padding:12px;font:inherit;line-height:1.7;background:#fff;color:#263421}.stamp-square-layout .hint{font-size:11px;line-height:1.7}

/* Lettering samples are artwork: retain the source glyphs and explicit two-line layout. */
.stamp-font-sample{flex-shrink:0;overflow:hidden}
.stamp-sample-text{display:block;white-space:nowrap;word-break:normal;overflow-wrap:normal;line-height:1.12}
.mini-seal{flex-shrink:0;white-space:nowrap;word-break:normal;overflow-wrap:normal}

.stamp-font-gallery [data-font=dongle] .stamp-sample-text{line-height:.88}
.stamp-font-gallery [data-font=pen] .stamp-sample-text,.stamp-font-gallery [data-font=eastsea] .stamp-sample-text{line-height:1}

/* Localized sample fitting owns font size and line height, including fallback glyphs. */
.mini-seal{overflow:hidden}
.stamp-sample-text{text-align:center;flex-shrink:0}
