@font-face{font-family:CraftThai;src:url('./vendor/thai.woff2');font-weight:700;unicode-range:U+0E00-0E7F}@font-face{font-family:CraftThai;src:url('./vendor/latin.woff2');font-weight:700}*{box-sizing:border-box} :root{--ink:#283431;--muted:#79827e;--line:#e3e7e2;--orange:#ed6b31;--paper:#fbfcfa;--green:#193e36}body{margin:0;color:var(--ink);font-family:'Segoe UI',Tahoma,sans-serif;font-size:14px;background:var(--paper)}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:background .16s,transform .16s}button:hover{filter:brightness(.96)}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--orange);outline-offset:3px}button:disabled{opacity:.35;cursor:not-allowed}.header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);background:white;gap:20px}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);text-decoration:none;font-size:28px;font-weight:750;letter-spacing:-1.3px}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:650;margin-top:-1px}.brand-icon{width:43px;height:46px;border-radius:13px;background:var(--green);color:#fff7e9;display:grid;place-items:center;font-size:39px;font-family:Georgia;position:relative;line-height:1}.brand-icon span{position:absolute;right:5px;top:2px;color:#ff8b49;font-size:22px}.project-title{font-size:14px;color:#65706a}.tag{font-size:10px;margin-left:12px;letter-spacing:1.5px;background:#f0f3ef;padding:5px 7px;border-radius:4px;color:#65736b}.header-actions{display:flex;gap:10px}.primary{background:var(--green);border:1px solid var(--green);color:white;padding:12px 20px;border-radius:9px;font-weight:600}.primary span{font-size:20px;margin-right:8px}.quiet{padding:10px 12px;border:1px solid var(--line);background:white;border-radius:8px}.workspace{display:grid;grid-template-columns:280px minmax(0,1fr) 275px;height:calc(100dvh - 119px);min-height:650px}.panel{overflow:auto;background:white;scrollbar-width:thin;scrollbar-color:#d8dfd8 transparent}.design{border-right:1px solid var(--line)}.settings{border-left:1px solid var(--line)}.panel-heading{padding:26px 23px 20px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.2px;color:var(--muted)}h1,.panel-heading h2{font-size:22px;margin:8px 0 0;font-weight:650;letter-spacing:-.6px}section section,.panel>section{padding:21px 23px;border-top:1px solid var(--line)}h2,h3{font-size:14px;font-weight:650;margin:0}.field-label{display:flex;justify-content:space-between;font-weight:600;margin-bottom:10px}.field-label span{font-size:10px;color:var(--muted);font-weight:400;letter-spacing:1px}textarea{width:100%;resize:vertical;padding:12px 14px;border:1px solid #dbe1d9;border-radius:9px;background:#fafcf9;color:var(--green);font-size:27px;font-family:CraftThai,Tahoma;line-height:1.5;min-height:77px;max-height:160px}select{width:100%;border:1px solid var(--line);border-radius:7px;padding:10px 8px;background:white;color:var(--ink)}.label-row{display:flex;justify-content:space-between;margin:16px 0 8px}.label-row span,.section-title>span{color:var(--muted);font-size:12px}.upload{width:100%;border:1px dashed #cdd6cc;background:#fbfcfa;border-radius:7px;padding:10px 5px;color:#526454;margin-top:9px;font-size:13px}.control{margin-top:19px}.control label{display:flex;justify-content:space-between;gap:8px;font-size:13px}.control output{font-size:12px;color:#67716b;white-space:nowrap;font-variant-numeric:tabular-nums}input[type=range]{appearance:none;width:100%;height:4px;background:linear-gradient(to right,var(--orange) var(--progress,35%),#e8ece7 var(--progress,35%));border-radius:20px;margin:17px 0 5px;cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;width:13px;height:13px;border-radius:50%;background:white;border:3px solid var(--orange);box-shadow:0 1px 2px #0002}.section-title{display:flex;justify-content:space-between;align-items:center;gap:5px}.emoji-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.emoji-picker button{border:1px solid var(--line);background:#fcfdfb;height:44px;border-radius:8px;font-size:25px;color:#284438}.emoji-entry{display:flex;margin-top:10px;border:1px solid var(--line);border-radius:7px;overflow:hidden}.emoji-entry input{min-width:0;width:100%;border:0;padding:10px;font-size:13px}.emoji-entry button{border:0;border-left:1px solid var(--line);background:#f6f8f3;color:#3e5643;width:40px}.hint{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:0}.object{display:flex;width:100%;align-items:center;gap:10px;padding:9px 10px;margin-top:7px;border:1px solid transparent;border-radius:7px;background:#f6f8f4;color:var(--ink);text-align:left;font-size:13px}.object.active{border-color:#eab48e;background:#fff6ee}.object-icon{font-size:18px;width:24px;text-align:center}.object small{margin-left:auto;color:var(--muted);font-size:11px}.selection-title{margin-top:18px}.text-button{border:0;background:transparent;font-size:12px;color:#a15343}.coordinates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.coordinates label{color:var(--muted);font-size:12px}.coordinates input{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:5px;padding:8px;color:var(--ink)}.stage{position:relative;overflow:hidden;background-color:#eef1ec;background-image:radial-gradient(#b6c2b260 .8px,transparent .8px);background-size:19px 19px;min-height:600px}.stage-toolbar{position:absolute;z-index:3;top:22px;left:25px;right:25px;display:flex;justify-content:space-between}.segmented{display:flex;background:#e0e5dc;padding:4px;border-radius:9px}.segmented button{border:0;background:transparent;padding:8px 15px;color:#788170;border-radius:6px;font-size:12px}.segmented button.active{background:white;color:var(--green);box-shadow:0 1px 4px #0001;font-weight:600}.history{display:flex;gap:6px}.history button,.zoom-controls button{background:#ffffffb8;border:1px solid #dbe1d7;border-radius:7px;width:34px;height:34px;font-size:21px;color:#627461}.stage-heading{position:absolute;top:108px;left:38px;pointer-events:none}.stage-heading h2{font-size:27px;font-weight:500;letter-spacing:-.7px;margin-top:7px}.stage-heading .eyebrow{font-size:10px;color:#7d8c78}#viewport{position:absolute;inset:0}#editor,#three-view{width:100%;height:100%;touch-action:none;display:block}#three-view{position:absolute;inset:0}#three-view[hidden],#editor[hidden]{display:none}#three-view canvas{display:block}.dimension{position:absolute;bottom:126px;left:50%;transform:translateX(-50%);border-top:1px solid #b7c5b0;padding:9px 25px 0;color:#77866e;font-size:12px;white-space:nowrap;pointer-events:none}.stage-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;position:absolute;bottom:57px;left:26px;right:26px}.stage-bottom>span{font-size:12px;color:#83907b}.zoom-controls{display:flex;gap:5px}.zoom-controls #fit{font-size:12px;width:47px}.model-status{position:absolute;bottom:0;left:0;right:0;min-height:34px;text-align:center;font-size:12px;padding:8px 10px;background:#e5eae0;color:#627557}.model-status.warning{background:#fff0d8;color:#8b5c16}.model-status.error{background:#fee5df;color:#a63725}.color-row{display:flex;gap:20px;margin-top:16px}.color-row label{display:flex;align-items:center;gap:9px;font-size:12px}input[type=color]{appearance:none;border:1px solid #0001;border-radius:8px;padding:3px;background:white;width:35px;height:35px;cursor:pointer}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:0;border-radius:5px}.swatches{display:flex;gap:11px;margin-top:15px}.swatches button{border:3px solid white;outline:1px solid #dce2d7;border-radius:50%;background:var(--swatch);width:22px;height:22px}.check-row{display:flex;align-items:center;gap:8px;margin-top:17px;font-size:12px}.check-row input{accent-color:var(--green)}.switch input{appearance:none;position:absolute}.switch span{width:31px;height:18px;border-radius:12px;background:#cbd4c8;display:block;position:relative;cursor:pointer}.switch span:after{content:'';width:12px;height:12px;position:absolute;top:3px;left:3px;border-radius:50%;background:white}.switch input:checked+span{background:var(--green)}.switch input:checked+span:after{left:16px}.switch input:focus-visible+span{outline:2px solid var(--orange)}.print-note{margin:0 18px 20px;padding:16px 11px;background:#f2f5ed;border-radius:8px;display:flex;gap:9px}.print-note>span{font-size:23px;color:#6e8760}.print-note strong{font-size:12px}.print-note p{font-size:12px;line-height:1.7;margin:5px 0 0;color:#7c8972}footer{height:33px;display:flex;justify-content:space-between;align-items:center;padding:0 25px;font-size:9px;letter-spacing:1px;border-top:1px solid var(--line);color:#8a9489;background:white}footer b{margin:0 8px;font-weight:400;color:#c0c8bc}footer>span:last-child{font-size:11px;letter-spacing:0}.footer-dot{display:inline-block;background:#7d9673;width:5px;height:5px;border-radius:50%;margin-left:5px}#toast{position:fixed;z-index:20;bottom:45px;left:50%;transform:translate(-50%,20px);background:#203b32;color:white;border-radius:9px;padding:12px 20px;box-shadow:0 4px 18px #0002;opacity:0;pointer-events:none;transition:.2s;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{width:420px;max-width:calc(100vw - 30px);border:1px solid var(--line);border-radius:17px;padding:32px;color:var(--ink);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#18372b66;backdrop-filter:blur(4px)}dialog h2{font-size:24px;margin:12px 0}dialog p{color:var(--muted);line-height:1.7}.close{position:absolute;right:14px;top:10px;border:0;background:transparent;color:#7b897a;font-size:25px}.wide{width:100%;margin-top:18px}.export-info{background:#f1f5ee;padding:16px;border-radius:8px;font-size:14px;line-height:1.8}
@media(min-width:1600px){.workspace{grid-template-columns:310px minmax(0,1fr) 300px}.panel>section{padding:24px 26px}.panel-heading{padding:27px}.stage-heading{top:120px;left:45px}.stage-heading h2{font-size:34px}}
@media(max-width:1100px){.workspace{grid-template-columns:245px minmax(0,1fr) 245px}.panel>section{padding:17px}.panel-heading{padding:22px 17px}.project-title{display:none}.stage-heading{left:25px}.stage-heading h2{font-size:22px}.stage-bottom>span{max-width:130px}.stage-toolbar{left:16px;right:16px}.segmented button{padding:8px 10px}}
@media(max-width:800px){.header{height:74px;padding:0 16px}.brand{font-size:23px}.brand-icon{width:35px;height:38px;font-size:31px}.brand small{font-size:7px}.header-actions{gap:5px}.header-actions .quiet{font-size:11px;padding:9px 7px}.header-actions .primary{font-size:12px;padding:9px 10px}.primary span{margin-right:2px}.workspace{height:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr}.stage{grid-column:1/-1;grid-row:1;height:480px;min-height:0}.design{grid-row:2;border-right:1px solid var(--line)}.settings{grid-row:2;border-left:0}.panel{overflow:visible}.stage-heading{top:88px}.stage-heading h2{font-size:23px}.stage-bottom>span{max-width:none}.dimension{bottom:105px}.stage-bottom{bottom:50px}.panel>section{padding:20px 16px}.panel-heading{padding:23px 16px}.field-label{font-size:12px}.section-title>span{font-size:10px}.color-row{gap:8px;flex-wrap:wrap}footer>span:first-child{font-size:8px;letter-spacing:0}footer>span:last-child{display:none}}
@media(max-width:430px){.header .quiet{max-width:48px;line-height:1.5}.header-actions{gap:4px}.brand{gap:7px}.brand-icon{width:30px}.header{padding:0 10px;gap:5px}.emoji-picker{gap:5px}.emoji-picker button{font-size:20px;height:36px}.control label{font-size:12px}.panel-heading h2,h1{font-size:19px}.control output{font-size:11px}.stage-bottom{left:15px;right:15px}.stage-bottom>span{font-size:11px;max-width:180px}.field-label span{display:none}}

.font-preview{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f6f8f3;overflow:hidden}.font-preview>span{font-size:12px;color:var(--muted)}#font-preview-sample{font-family:CraftThai,sans-serif;font-size:22px;font-weight:700;line-height:1.8;color:var(--green);overflow-wrap:anywhere}
.brand{letter-spacing:-.5px}.brand-subname{display:block;font-size:14px;letter-spacing:.2px;line-height:1.4;font-weight:600}
