:root{--bg:#f6f5f2;--bg-2:#efede8;--panel:#fff;--ink:#1a1a1a;--ink-2:#4a4a4a;--ink-3:#8a8580;--line:#e6e3dc;--line-2:#d8d4cb;--accent:#1a1a1a;--warn:#b85440;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 16px #140f0a0f;--shadow-lg:0 12px 40px #140f0a1a;--radius:10px;--radius-sm:6px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"kern" 1;font-family:Manrope,IBM Plex Sans KR,system-ui,-apple-system,sans-serif;overflow:hidden}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.app{grid-template-rows:56px 1fr;width:100vw;height:100vh;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--line);z-index:10;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.topbar .brand{align-items:baseline;gap:10px;display:flex}.topbar .brand-mark{letter-spacing:.04em;font-family:Cormorant Garamond,serif;font-size:22px;font-style:italic;font-weight:500}.topbar .brand-sub{color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase;font-size:12px}.topbar .topbar-actions{align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--line-2);background:var(--panel);color:var(--ink);border-radius:var(--radius-sm);letter-spacing:.02em;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn:hover{background:var(--bg-2);border-color:var(--ink-3)}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:#2a2a2a}.btn.ghost{border-color:#0000}.btn.ghost:hover{background:var(--bg-2)}.btn[disabled]{opacity:.5;cursor:not-allowed}.workspace{grid-template-columns:380px 1fr;display:grid;overflow:hidden}.input-panel{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;padding:0;display:flex;overflow-y:auto}.input-panel::-webkit-scrollbar{width:8px}.input-panel::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:4px}.preview-pane{background:linear-gradient(0deg, transparent 49.5%, #00000008 50%, transparent 50.5%) 0 0 / 24px 24px, linear-gradient(90deg, transparent 49.5%, #00000008 50%, transparent 50.5%) 0 0 / 24px 24px, var(--bg);flex-direction:column;display:flex;position:relative;overflow:hidden}.preview-toolbar{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-sm);z-index:5;border-radius:999px;gap:6px;padding:4px;font-size:12px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.preview-toolbar button{color:var(--ink-2);background:0 0;border:none;border-radius:999px;padding:6px 10px;font-size:12px}.preview-toolbar button:hover{background:var(--bg-2);color:var(--ink)}.preview-toolbar .zoom-display{font-variant-numeric:tabular-nums;color:var(--ink-2);text-align:center;min-width:50px;padding:6px 8px}.preview-stage{flex:1;justify-content:center;align-items:center;padding:56px 20px 20px;display:flex;overflow:auto}.canvas-wrap{box-shadow:var(--shadow-lg);background:#fff;flex-shrink:0;position:relative}.preview-footer{border-top:1px solid var(--line);background:var(--panel);color:var(--ink-3);justify-content:space-between;align-items:center;padding:10px 20px;font-size:11px;display:flex}.template-picker{border-bottom:1px solid var(--line);background:var(--bg-2);padding:16px}.template-picker h3{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px;font-size:11px;font-weight:600}.template-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.template-thumb{aspect-ratio:16/9;border:1.5px solid var(--line-2);border-radius:var(--radius-sm);cursor:pointer;background:#fff;padding:0;transition:all .15s;position:relative;overflow:hidden}.template-thumb:hover{border-color:var(--ink-3);transform:translateY(-1px)}.template-thumb.active{border-color:var(--ink);border-width:2px;box-shadow:0 0 0 3px #00000014}.template-thumb .thumb-inner{letter-spacing:.05em;width:100%;height:100%;color:var(--ink-2);justify-content:center;align-items:center;font-size:9px;font-weight:600;display:flex}.template-thumb .thumb-label{text-align:center;letter-spacing:.04em;color:var(--ink-2);background:#ffffffd9;padding:1px 0;font-size:8.5px;font-weight:500;position:absolute;bottom:2px;left:0;right:0}.section{border-bottom:1px solid var(--line)}.section-header{text-align:left;letter-spacing:.08em;text-transform:uppercase;width:100%;color:var(--ink);background:0 0;border:none;justify-content:space-between;align-items:center;padding:14px 16px;font-size:12px;font-weight:600;display:flex}.section-header:hover{background:var(--bg-2)}.section-header .chev{color:var(--ink-3);font-size:10px;transition:transform .2s}.section-header.open .chev{transform:rotate(90deg)}.section-body{flex-direction:column;gap:12px;padding:4px 16px 18px;display:flex}.section-body.collapsed{display:none}.field{flex-direction:column;gap:5px;display:flex}.field-label{color:var(--ink-2);letter-spacing:.02em;justify-content:space-between;align-items:center;font-size:11px;font-weight:500;display:flex}.field-label .hint{color:var(--ink-3);font-size:10.5px;font-weight:400}.field input[type=text],.field textarea,.field select{border:1px solid var(--line-2);background:var(--panel);border-radius:var(--radius-sm);width:100%;color:var(--ink);outline:none;padding:8px 10px;font-size:13px;transition:border-color .15s}.field input[type=text]:focus,.field textarea:focus,.field select:focus{border-color:var(--ink)}.field textarea{resize:vertical;min-height:80px;font-family:Manrope,IBM Plex Sans KR,sans-serif;line-height:1.5}.color-row{grid-template-columns:36px 1fr 90px;align-items:center;gap:8px;display:grid}.color-row input[type=color]{border:1px solid var(--line-2);border-radius:var(--radius-sm);cursor:pointer;background:#fff;width:36px;height:32px;padding:2px}.color-row .swatch-name{color:var(--ink-2);font-size:12px}.color-row .hex{color:var(--ink-3);text-align:right;text-transform:uppercase;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.upload-row{align-items:center;gap:8px;display:flex}.upload-thumb{border:1px dashed var(--line-2);border-radius:var(--radius-sm);background:var(--bg-2);width:56px;height:56px;color:var(--ink-3);background-position:50%;background-size:cover;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.upload-actions{flex-direction:column;flex:1;gap:4px;display:flex}.upload-actions .btn{justify-content:center;padding:6px 10px;font-size:11.5px}.toggle-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.toggle{background:var(--line-2);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:36px;height:20px;padding:0;transition:background .15s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.toggle.on{background:var(--ink)}.toggle.on:after{left:18px}.mobile-tabs{border-bottom:1px solid var(--line);background:var(--panel);display:none}.mobile-tabs button{color:var(--ink-3);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:12px 0;font-size:13px;font-weight:500}.mobile-tabs button.active{color:var(--ink);border-bottom-color:var(--ink)}.disclaimer{color:var(--ink-3);background:var(--bg-2);border-top:1px solid var(--line);padding:14px 16px;font-size:10.5px;line-height:1.55}.disclaimer strong{color:var(--ink-2);letter-spacing:.04em;margin-bottom:4px;font-weight:600;display:block}@media (max-width:860px){.workspace{grid-template-rows:auto 1fr;grid-template-columns:1fr}.mobile-tabs{display:flex}.input-panel{border-right:none;display:none}.preview-pane{display:none}.input-panel.mobile-active,.preview-pane.mobile-active{display:flex}.preview-stage{padding:48px 12px 12px}.topbar{padding:0 12px}.topbar .brand-sub{display:none}.template-grid{grid-template-columns:repeat(3,1fr)}}.canvas{transform-origin:0 0;background:#fff;width:1600px;height:900px;position:relative;overflow:hidden}.canvas,.canvas *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.img-ph{background:repeating-linear-gradient(135deg, #0000000a 0 6px, transparent 6px 12px), var(--ph-bg,#e8e6e1);color:#00000073;letter-spacing:.06em;text-transform:uppercase;text-align:center;white-space:pre-line;justify-content:center;align-items:center;padding:16px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px;line-height:1.4;display:flex}
