:root{--bg:#f4f4f6;--panel:#f8f8f9;--card:#fff;--line:#e3e1ee;--txt:#2b2b33;--sub:#7a7a86;--accent:#1f6fb2;--accent-h:#185a91;--soft:#eef5fb}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--txt);font-family:Segoe UI,Malgun Gothic,sans-serif}.wrap{height:100vh;min-height:640px;display:flex}.gallery{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;width:300px;min-width:260px;display:flex}.gallery h2{letter-spacing:.08em;color:var(--sub);padding:18px 16px 8px;font-size:12px;font-weight:600}.cats{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:5px;padding:0 14px 12px;display:flex}.cat{border:1px solid var(--line);cursor:pointer;color:var(--txt);white-space:nowrap;background:#fff;border-radius:14px;padding:5px 9px;font-size:12px}.cat.sel{background:var(--accent);border-color:var(--accent);color:#fff}.cat small{opacity:.65;margin-left:3px}.tpls{flex:1;grid-template-columns:1fr 1fr;grid-auto-rows:max-content;align-content:start;gap:8px;padding:12px 14px 20px;display:grid;overflow-y:auto}.tpl{border:2px solid var(--line);cursor:pointer;text-align:left;font:inherit;color:inherit;background:#fff;border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.tpl.sel{border-color:var(--accent);background:var(--soft)}.tpl .th{background-color:#fff;background-image:linear-gradient(45deg,#f3f3f6 25%,#0000 25%),linear-gradient(-45deg,#f3f3f6 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#f3f3f6 75%),linear-gradient(-45deg,#0000 75%,#f3f3f6 75%);background-position:0 0,0 5px,5px -5px,-5px 0;background-size:10px 10px;justify-content:center;align-items:center;height:64px;padding:5px;display:flex}.tpl .th svg,.tpl .th img{max-width:100%;max-height:100%}.tpl .th img{object-fit:contain;width:auto;height:100%}.tpl .th .ph{color:#b9b9c4;font-size:11px}.tpl .nm{border-top:1px solid var(--line);padding:4px 7px 6px;font-size:11.5px}.stage{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-width:0;padding:18px 24px;display:flex}.toolbar{align-items:center;gap:6px;width:100%;max-width:960px;display:flex}.toolbar .sp{flex:1}.tbtn{border:1px solid var(--line);cursor:pointer;color:var(--txt);background:#fff;border-radius:6px;padding:6px 11px;font-size:13px}.tbtn:hover{border-color:var(--accent);color:var(--accent)}#zoomV{color:var(--sub);text-align:center;font-variant-numeric:tabular-nums;width:44px;font-size:12px}.canvas-card{border:1px solid var(--line);background-color:#fff;background-image:linear-gradient(45deg,#f0f0f3 25%,#0000 25%),linear-gradient(-45deg,#f0f0f3 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#f0f0f3 75%),linear-gradient(-45deg,#0000 75%,#f0f0f3 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;border-radius:10px;width:100%;max-width:960px;height:min(68vh,620px);position:relative;overflow:hidden}#preview{padding:4%;display:flex;position:absolute;inset:0;overflow:auto}#preview svg{flex:none;max-width:100%;max-height:100%;margin:auto}#preview.zoomed svg{max-width:none;max-height:none}#loading{color:var(--sub);z-index:5;text-align:center;background:#ffffffe0;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;font-size:14px;display:flex;position:absolute;inset:0}.spin{border:4px solid #ddd;border-top-color:var(--accent);border-radius:50%;width:30px;height:30px;animation:1s linear infinite sp}@keyframes sp{to{transform:rotate(360deg)}}.stage .cap{color:var(--sub);font-size:13px}.panel{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;gap:15px;width:320px;min-width:290px;padding:20px 22px 28px;display:flex;overflow-y:auto}label.hd{letter-spacing:.08em;color:var(--sub);margin-bottom:7px;font-size:12px;font-weight:600;display:block}input[type=text]{border:1px solid var(--line);background:#fff;border-radius:8px;outline:none;width:100%;padding:12px 13px;font-size:16px}input[type=text]:focus{border-color:var(--accent)}select{border:1px solid var(--line);background:#fff;border-radius:8px;outline:none;width:100%;padding:9px 10px;font-size:13.5px}.row{gap:10px;display:flex}#fontRow{flex-wrap:wrap}#fontRow>div{flex:calc(50% - 5px);min-width:0}.row>div{flex:1;min-width:0}.slider-row{align-items:center;gap:10px;margin-bottom:6px;font-size:13px;display:flex}.slider-row>span:first-child{width:66px}.slider-row span.v{text-align:right;width:34px;color:var(--sub);font-variant-numeric:tabular-nums}input[type=range]{accent-color:var(--accent);flex:1;min-width:0}.colors{flex-wrap:wrap;gap:10px 14px;display:flex}.colors label{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.colors input[type=color]{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:5px;width:32px;height:26px;padding:1px}.linkbtn{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:0;font-size:12px}.chk{cursor:pointer;user-select:none;align-items:center;gap:8px;font-size:13.5px;display:flex}hr{border:none;border-top:1px solid var(--line)}.btn{letter-spacing:.05em;color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:6px;width:100%;padding:13px;font-size:15px;font-weight:700;display:block}.btn:hover{background:var(--accent-h)}.btn:disabled{cursor:default;background:#9db6c9}.btn2{width:100%;color:var(--accent);border:1px solid var(--accent);cursor:pointer;background:#fff;border-radius:6px;padding:10px;font-size:13.5px;font-weight:600;display:block}.btn2:hover{background:var(--soft)}.btn2:disabled{color:#9db6c9;cursor:default;background:#fff;border-color:#c9d8e4}.hint{color:var(--sub);font-size:12px;line-height:1.6}#err{color:#c0392b;font-size:12px;line-height:1.5;display:none}#toast{color:#fff;opacity:0;pointer-events:none;z-index:20;background:#2b2b33;border-radius:18px;padding:9px 16px;font-size:13px;transition:opacity .2s;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}#toast.on{opacity:.95}@media (width<=980px){.wrap{flex-direction:column;height:auto}.gallery,.panel{border:none;width:auto;min-width:0}.tpls{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));max-height:320px}.canvas-card{height:48vh}}@media (width<=768px){.gallery h2{padding-bottom:8px}.cats{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:10px;overflow-x:auto}.tpls{grid-template-columns:none;grid-auto-columns:124px;grid-auto-flow:column;max-height:none;padding:10px 14px 12px;overflow:auto hidden}.stage{gap:8px;padding:10px 12px}.canvas-card{height:40vh;min-height:220px}.panel{padding:16px 16px 28px}}.sp-samples{color:var(--sub);flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:10px;font-size:12px;display:flex}.sp-samples .linkbtn{margin-top:0;font-size:12.5px;font-weight:600}.new-badge{letter-spacing:.04em;color:#fff;vertical-align:1px;background:#e5335b;border-radius:4px;margin-right:5px;padding:3px 5px 2px;font-size:9.5px;font-weight:800;line-height:1;display:inline-block}.cat.new{color:#b3163c;border-color:#e5335b;font-weight:800}.cat.new.sel{color:#fff;background:#e5335b;border-color:#e5335b}.cat.new.sel .new-badge{color:#e5335b;background:#fff}.tpl.new .nm{font-weight:800}.tpl.new .new-badge{margin-right:4px;padding:2px 4px 1px;font-size:8.5px}html[lang=en] .row>div:has(>#fontKo),html[lang=en] .sp-samples button[data-lang=ko],html[lang=en] .sp-samples button[data-lang=mix]{display:none}.tbtn:disabled{opacity:.45;cursor:default;border-color:var(--line);color:var(--txt)}.tbtn-hot{color:#fff;background:#d6334a;border-color:#d6334a;font-weight:600}.tbtn-hot:hover{color:#fff;background:#b82a3e;border-color:#b82a3e}.cl-count{letter-spacing:0;color:var(--sub);margin-left:4px;font-weight:400}.cl-table{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.cl-head,.cl-row{grid-template-columns:1fr 48px 28px 24px 22px;align-items:center;gap:3px;padding:0 4px 0 0;display:grid}.cl-head{color:#fff;background:var(--accent);padding-block:6px;font-size:11.5px;font-weight:600}.cl-head span:first-child{padding-left:10px}.cl-head span{text-align:center}.cl-head span:first-child{text-align:left}.cl-head span:last-child{grid-column:span 2}#clRows{max-height:218px;overflow-y:auto}.cl-row{border-bottom:1px solid var(--line)}.cl-row input[type=text]{background:0 0;border:none;border-radius:0;min-width:0;padding:7px 10px;font-size:14px}.cl-row input[type=text]:focus{background:var(--soft)}.cl-row select{text-align:center;border-radius:5px;padding:3px 2px;font-size:12.5px}.cl-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);justify-self:center}.cl-row .cl-del{color:var(--sub);cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px;line-height:1}.cl-row .cl-del:hover{color:#c0392b}.cl-row .cl-more{color:var(--sub);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 0;font-size:15px;line-height:1}.cl-row .cl-more:hover,.cl-row .cl-more.on{color:var(--accent);background:var(--soft)}.cl-row.has-opt .cl-more{color:var(--accent);font-weight:800}.cl-detail{background:var(--soft);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:7px 10px 9px;display:flex}.cl-detail .chk{gap:5px;font-size:12.5px}.cl-detail input[type=color]{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:4px;width:26px;height:22px;padding:1px}.cl-detail select{flex:1;width:auto;min-width:110px;padding:4px 6px;font-size:12.5px}.cl-import{border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;gap:8px;margin-top:8px;padding:10px;display:flex}.cl-import textarea{border:1px solid var(--line);resize:vertical;border-radius:6px;outline:none;width:100%;min-height:96px;padding:8px 10px;font:13.5px/1.5 inherit}.cl-import textarea:focus{border-color:var(--accent)}.cl-import .cl-inline{flex-wrap:wrap}.cl-import input[type=number]{width:64px}.cl-import .btn2{width:auto;padding:8px 14px}.cl-import .linkbtn{margin-top:0}#clNew{border:none;border-radius:0;padding:9px 10px;font-size:13.5px;font-style:italic}.cl-actions{flex-wrap:wrap;gap:4px 14px;display:flex}.cl-actions .linkbtn{margin-top:6px}#cloudCtl{flex-direction:column;gap:15px;display:flex}.cl-sub{margin-top:8px}.cl-inline{align-items:center;gap:8px;display:flex}.cl-inline input[type=text]{flex:1;min-width:0;padding:9px 11px;font-size:14px}.cl-inline input[type=color],.cl-swatch{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:5px;flex:none;width:34px;height:30px;padding:1px}.chk .cl-swatch{width:26px;height:22px}.cl-inline input[type=number]{border:1px solid var(--line);border-radius:8px;outline:none;width:80px;padding:8px 10px;font-size:14px}.cl-lbl{color:var(--sub);font-size:13px}.cl-colors{gap:8px;margin-top:8px}.cl-colors input[type=color]{width:30px;height:26px}.cl-colors .cl-cbtn{border:1px dashed var(--line);width:26px;height:26px;color:var(--sub);cursor:pointer;background:#fff;border-radius:5px;font-size:15px;line-height:1}.cl-img{align-items:flex-start;gap:10px;margin-top:8px;display:flex}#clImgPrev{border:1px solid var(--line);background:#fff;border-radius:6px;flex:none;width:96px;height:96px}.cl-img-ctl{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.cl-img-ctl .slider-row{margin:0}.cl-img-ctl .slider-row>span:first-child{width:auto}.cl-size{color:var(--sub);border:1px solid var(--line);background:#fff;border-radius:6px;margin-top:6px;padding:8px 10px;font-size:12.5px;line-height:1.6}.cl-size b{color:var(--txt);font-variant-numeric:tabular-nums}.cl-size.warn{background:#fff8ec;border-color:#f0b35a}.cl-size.warn em{color:#a65f00;font-style:normal;font-weight:600}.tbtn{white-space:nowrap}.toolbar{flex-wrap:wrap;row-gap:6px}@media (width<=768px){.toolbar .sp{flex-basis:0}}#ransomCtl{flex-direction:column;gap:15px;display:flex}.rn-text{border:1px solid var(--line);resize:vertical;background:#fff;border-radius:8px;outline:none;width:100%;min-height:72px;padding:9px 11px;font:15px/1.5 inherit}.rn-text:focus{border-color:var(--accent)}.rn-sub{color:var(--sub);margin-top:8px;font-size:12px}.rn-fonts{flex-wrap:wrap;gap:5px;margin-top:5px;display:flex}.rn-font{border:1px solid var(--line);color:var(--sub);cursor:pointer;background:#fff;border-radius:14px;padding:4px 10px;font-size:12px}.rn-font.on{border-color:var(--accent);background:var(--accent);color:#fff}#ransomCtl .cl-inline select{flex:1}#rnWrap{border:1px solid var(--line);border-radius:8px;outline:none;width:100%;padding:8px 10px;font-size:14px}#preview.rn-pick g[data-i]{cursor:pointer}#preview.rn-pick g[data-i]:hover{opacity:.78}.cl-hd{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.cl-hd .linkbtn{margin-top:0}.cl-guide{z-index:300;background:#191c2880;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.cl-guide[hidden]{display:none}.cl-guide-box{background:var(--card);border-radius:14px;width:min(1080px,100%);max-height:100%;padding:22px 26px 24px;overflow:auto;box-shadow:0 20px 60px #00000040}.cl-guide-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.cl-guide-head h2{letter-spacing:-.02em;font-size:21px}.cl-guide-close{cursor:pointer;color:var(--txt);background:0 0;border:none;padding:2px 6px;font-size:26px;line-height:1}.cl-guide-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;list-style:none;display:grid}.cl-guide-step{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.cl-guide-pic{border-bottom:1px solid var(--line);cursor:zoom-in;background:#eef1f5;height:230px;padding:10px;display:block}.cl-guide-pic:hover{background:#e3e8ef}.cl-guide-pic img{object-fit:contain;width:100%;height:100%;display:block}.cl-guide-txt{grid-template-columns:auto 1fr;align-items:baseline;gap:2px 8px;padding:12px 14px 14px;display:grid}.cl-guide-n{color:#fff;font-variant-numeric:tabular-nums;background:#e5335b;border-radius:50%;grid-row:span 2;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex}.cl-guide-txt h3{font-size:14.5px}.cl-guide-txt p{color:var(--sub);font-size:12.5px;line-height:1.6}.cl-guide-foot{justify-content:center;margin-top:18px;display:flex}.cl-guide-foot .btn{width:auto;padding:11px 28px}@media (width<=980px){.cl-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.cl-guide{padding:10px}.cl-guide-pic{height:260px}.cl-guide-box{padding:16px 14px}.cl-guide-grid{grid-template-columns:1fr}}
