:root{--ink-900:#191917;--ink-700:#33322E;--ink-500:#55534C;--ink-300:#8B887E;--sand-50:#F6F2EA;--sand-100:#EFE8DB;--sand-300:#D8CBB2;--sand-500:#B49F7C;--sand-700:#8A7454;--blue-50:#EEF4FF;--blue-100:#DCE7FE;--blue-200:#B9CFFD;--blue-300:#8AAEFB;--blue-400:#5588F7;--blue-500:#2563EB;--blue-600:#1D4FC4;--blue-700:#173F9E;--blue-800:#122F77;--blue-900:#0C2054;--orange-50:#FFF6F1;--orange-100:#FFEDE5;--orange-500:#FF5A1F;--orange-600:#E8480F;--gray-0:#FFFFFF;--gray-25:#FBFCFD;--gray-50:#F5F7FA;--gray-100:#EDF0F4;--gray-200:#DFE4EB;--gray-300:#C7CEDA;--gray-400:#9CA6B8;--gray-500:#6F7B90;--gray-600:#515D73;--gray-700:#3A4356;--gray-800:#252C3B;--gray-900:#161B26;--paper:#FAF9F6;--success-500:#16A34A;--success-bg:#EAF7EF;--warning-500:#F59E0B;--warning-bg:#FEF6E7;--error-500:#DC2626;--error-bg:#FDECEC;--info-500:var(--blue-500);--info-bg:var(--blue-50);--color-primary:var(--ink-900);--color-primary-hover:var(--ink-700);--color-cta:var(--orange-500);--color-cta-hover:var(--orange-600);--color-link:var(--blue-500);--color-link-hover:var(--blue-600);--color-selected:var(--ink-900);--color-selected-bg:var(--sand-100);--color-text:var(--ink-700);--color-text-strong:var(--ink-900);--color-text-sub:var(--ink-500);--color-bg-page:var(--paper);--color-bg-section:var(--sand-50);--color-bg-dark:var(--ink-900);--color-bg-surface:var(--gray-0);--color-border:var(--gray-200);--color-border-strong:var(--gray-300);--color-focus-ring:var(--blue-100);--editor-canvas-bg:#EDEFF3;--editor-ruler:var(--blue-400);--editor-selection:var(--blue-500);--editor-guide-safe:var(--success-500);--editor-guide-bleed:var(--error-500);--editor-grid:rgba(85,136,247,0.18);--font-sans:"Pretendard Variable",Pretendard,"Noto Sans KR",system-ui,-apple-system,"Segoe UI",sans-serif;--text-display:800 40px/1.2 var(--font-sans);--text-h1:700 32px/1.25 var(--font-sans);--text-h2:700 26px/1.3 var(--font-sans);--text-h3:600 20px/1.4 var(--font-sans);--text-h4:600 17px/1.45 var(--font-sans);--text-body-lg:400 16px/1.6 var(--font-sans);--text-body:400 15px/1.6 var(--font-sans);--text-body-sm:400 13px/1.5 var(--font-sans);--text-caption:400 12px/1.4 var(--font-sans);--text-price-lg:800 28px/1.2 var(--font-sans);--text-price:700 18px/1.2 var(--font-sans);--tracking-heading:-0.02em;--tracking-body:-0.01em;--tracking-logo:-0.08em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:999px;--shadow-sm:0 2px 8px rgba(22,27,38,0.08);--shadow-md:0 6px 20px rgba(22,27,38,0.12);--shadow-lg:0 16px 40px rgba(22,27,38,0.18);--shadow-canvas:0 10px 30px rgba(22,27,38,0.11);--duration-fast:120ms;--duration-base:200ms;--duration-slow:320ms;--ease-standard:cubic-bezier(0.2,0,0,1);--z-dropdown:100;--z-sticky:200;--z-header:300;--z-modal:500;--z-toast:600;--bp-sm:600px;--bp-md:900px;--bp-lg:1200px;--container-max:1200px;--header-h:72px;--header-h-mobile:56px;--editor-header-h:64px;--editor-rail-w:84px;--editor-panel-w:320px;--editor-orderbar-h:72px;--sp-size-1:1px;--sp-size-2:2px;--sp-size-3:3px;--sp-size-4:4px;--sp-size-5:5px;--sp-size-6:6px;--sp-size-7:7px;--sp-size-8:8px;--sp-size-9:9px;--sp-size-10:10px;--sp-size-11:11px;--sp-size-12:12px;--sp-size-13:13px;--sp-size-14:14px;--sp-size-15:15px;--sp-size-16:16px;--sp-size-17:17px;--sp-size-18:18px;--sp-size-19:19px;--sp-size-20:20px;--sp-size-21:21px;--sp-size-22:22px;--sp-size-23:23px;--sp-size-24:24px;--sp-size-25:25px;--sp-size-26:26px;--sp-size-27:27px;--sp-size-28:28px;--sp-size-30:30px;--sp-size-32:32px;--sp-size-34:34px;--sp-size-35:35px;--sp-size-36:36px;--sp-size-37:37px;--sp-size-38:38px;--sp-size-39:39px;--sp-size-40:40px;--sp-size-42:42px;--sp-size-44:44px;--sp-size-45:45px;--sp-size-46:46px;--sp-size-48:48px;--sp-size-50:50px;--sp-size-52:52px;--sp-size-54:54px;--sp-size-56:56px;--sp-size-58:58px;--sp-size-60:60px;--sp-size-62:62px;--sp-size-64:64px;--sp-size-65:65px;--sp-size-68:68px;--sp-size-70:70px;--sp-size-72:72px;--sp-size-74:74px;--sp-size-75:75px;--sp-size-76:76px;--sp-size-78:78px;--sp-size-80:80px;--sp-size-84:84px;--sp-size-86:86px;--sp-size-88:88px;--sp-size-90:90px;--sp-size-92:92px;--sp-size-96:96px;--sp-size-98:98px;--sp-size-100:100px;--sp-size-104:104px;--sp-size-105:105px;--sp-size-112:112px;--sp-size-120:120px;--sp-size-130:130px;--sp-size-132:132px;--sp-size-140:140px;--sp-size-142:142px;--sp-size-146:146px;--sp-size-150:150px;--sp-size-210:210px;--sp-size-220:220px;--sp-size-225:225px;--sp-size-240:240px;--sp-size-252:252px;--sp-size-260:260px;--sp-size-270:270px;--sp-size-280:280px;--sp-size-290:290px;--sp-size-315:315px;--sp-size-320:320px;--sp-size-340:340px;--sp-size-360:360px;--sp-size-370:370px;--sp-size-380:380px;--sp-size-390:390px;--sp-size-410:410px;--sp-size-440:440px;--sp-size-470:470px;--sp-size-480:480px;--sp-size-500:500px;--sp-size-560:560px;--sp-size-600:600px;--sp-size-620:620px;--sp-size-700:700px;--sp-size-760:760px;--sp-size-820:820px;--sp-size-850:850px;--sp-size-999:999px;--sp-size-1180:1180px;--sp-size-1240:1240px;--sp-size-1440:1440px}body{font:var(--text-body);letter-spacing:var(--tracking-body)}h1,h2,h3,h4{letter-spacing:var(--tracking-heading);color:var(--color-text-strong)}.dimension,.price,[data-numeric]{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans)}.app{height:100vh;flex-direction:column;overflow:hidden}.app,.top{display:flex}.top{height:var(--sp-size-68);background:var(--color-bg-surface);border-bottom:var(--sp-size-1) solid var(--color-border);align-items:center;padding:0 var(--sp-size-28);gap:var(--sp-size-42)}.logo{font-size:var(--sp-size-23);font-weight:800;letter-spacing:-.08em}.logo span{color:var(--color-cta)}.top nav{display:flex;gap:var(--sp-size-28);color:var(--color-text-sub);font-size:var(--sp-size-13)}.top-actions{margin-left:auto;display:flex;gap:var(--sp-size-8)}.top button{border:var(--sp-size-1) solid var(--color-border-strong);background:var(--color-bg-surface);padding:var(--sp-size-9) var(--sp-size-13);font-size:var(--sp-size-12)}.workspace{display:flex;flex:1 1;min-height:0}.rail{width:var(--sp-size-84);background:var(--gray-50);border-right:var(--sp-size-1) solid var(--color-border)}.rail,.rail button{display:flex;flex-direction:column}.rail button{border:0;background:transparent;padding:var(--sp-size-15) var(--sp-size-3);color:var(--color-text-sub);align-items:center;gap:var(--sp-size-6)}.rail button b{font-size:var(--sp-size-22);font-weight:400;color:var(--color-text-sub)}.rail button small{font-size:var(--sp-size-11)}.rail button.active{background:var(--color-bg-surface);color:var(--color-text-strong);border-left:var(--sp-size-3) solid var(--color-cta)}.rail button.active b{color:var(--color-cta)}.panel{width:var(--sp-size-315);background:var(--color-bg-surface);border-right:var(--sp-size-1) solid var(--color-border);padding:var(--sp-size-18);overflow:auto}.panel h2{font-size:var(--sp-size-18);font-weight:500;margin:0 0 var(--sp-size-24)}.panel h3{font-size:var(--sp-size-13);font-weight:500;color:var(--color-text-sub);margin:var(--sp-size-18) 0 var(--sp-size-12)}.panel hr{border:0;border-top:var(--sp-size-1) solid var(--color-border);margin:var(--sp-size-22) 0}.templates{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--sp-size-8);gap:var(--sp-size-8)}.templates button{border:0;background:var(--gray-50);padding:var(--sp-size-8);text-align:left;color:var(--color-text)}.thumb{height:var(--sp-size-105);background:var(--gray-100);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--sp-size-22);color:var(--sand-500);margin-bottom:var(--sp-size-7)}.templates span{font-size:var(--sp-size-11)}.muted{line-height:1.6}.muted,.panel label{color:var(--color-text-sub);font-size:var(--sp-size-12)}.panel label{display:block;margin:var(--sp-size-18) 0 var(--sp-size-7)}.panel select{border:var(--sp-size-1) solid var(--color-border);padding:var(--sp-size-11)}.panel select,.panel-action{width:100%;background:var(--color-bg-surface)}.panel-action{padding:var(--sp-size-13);border:var(--sp-size-1) solid var(--color-link)}.canvas-area{position:relative;flex:1 1;display:flex;align-items:center;justify-content:center;overflow:auto;background:var(--color-bg-page)}.canvas-area canvas{box-shadow:0 var(--sp-size-10) var(--sp-size-30) var(--shadow-sm)}.ruler-label{position:absolute;color:var(--editor-ruler);font-size:var(--sp-size-15)}.vertical{left:calc(50% - var(--sp-size-480));top:48%;writing-mode:vertical-rl}.horizontal{left:50%;bottom:var(--sp-size-75)}.canvas-tools{position:absolute;bottom:var(--sp-size-22);left:50%;transform:translateX(-50%);background:var(--color-bg-surface);padding:var(--sp-size-5);display:flex;gap:var(--sp-size-4);box-shadow:0 var(--sp-size-2) var(--sp-size-8) var(--shadow-sm)}.canvas-tools button{border:0;padding:var(--sp-size-8) var(--sp-size-11);font-size:var(--sp-size-12)}.bottom,.canvas-tools button{background:var(--color-bg-surface)}.bottom{height:var(--sp-size-65);border-top:var(--sp-size-1) solid var(--color-border);display:flex;align-items:center;padding:0 var(--sp-size-26);gap:var(--sp-size-40)}.preview{border:var(--sp-size-1) solid var(--color-link);background:var(--color-bg-surface);padding:var(--sp-size-10) var(--sp-size-15)}.bottom strong{font-weight:400;margin:auto;font-size:var(--sp-size-15)}.buy{display:flex;align-items:center}.buy button{border:var(--sp-size-1) solid var(--color-border);background:var(--color-bg-surface);height:var(--sp-size-37);min-width:var(--sp-size-35)}.buy span{border-top:var(--sp-size-1) solid var(--color-border);border-bottom:var(--sp-size-1) solid var(--color-border);padding:var(--sp-size-10) var(--sp-size-15)}.buy .cart{padding:0 var(--sp-size-23);margin-left:var(--sp-size-10)}.buy .cart,.toast{color:var(--color-bg-surface)}.toast{position:fixed;right:var(--sp-size-24);bottom:var(--sp-size-86);background:var(--color-text-strong);padding:var(--sp-size-14) var(--sp-size-18);font-size:var(--sp-size-13)}@media(max-width:850px){.top{padding:0 var(--sp-size-14);gap:var(--sp-size-18)}.top nav{display:none}.panel{width:var(--sp-size-240)}.rail{width:var(--sp-size-62)}.bottom{padding:0 var(--sp-size-12);gap:var(--sp-size-10)}.bottom strong{display:none}.canvas-area canvas{transform:scale(.75);transform-origin:center}.buy .cart{padding:0 var(--sp-size-9)}}.inspector{border-top:var(--sp-size-1) solid var(--color-border);margin-top:var(--sp-size-22);padding-top:var(--sp-size-4)}.inspector h3{margin-bottom:var(--sp-size-8)}.inspector label{margin:var(--sp-size-12) 0 var(--sp-size-5)}.inspector input{display:block;width:100%;margin-top:var(--sp-size-5);border:var(--sp-size-1) solid var(--color-border);padding:var(--sp-size-9);background:var(--color-bg-surface)}.inspector input[type=color]{height:var(--sp-size-38);padding:var(--sp-size-3)}.inspector input:disabled{background:var(--gray-50);color:var(--ink-300)}.delete-action{width:100%;margin-top:var(--sp-size-14);padding:var(--sp-size-10);border:var(--sp-size-1) solid var(--error-500);color:var(--error-500);background:var(--color-bg-surface)}.delete-action:disabled{border-color:var(--color-border);color:var(--ink-300)}.history-actions{display:flex;gap:var(--sp-size-5)}.history-actions button{border:var(--sp-size-1) solid var(--color-border-strong);background:var(--color-bg-surface);padding:var(--sp-size-9) var(--sp-size-10);font-size:var(--sp-size-12)}.canvas-area.grid-on{background-color:var(--color-bg-page);background-image:none;background-size:var(--sp-size-20) var(--sp-size-20)}.selection-actions{border-top:var(--sp-size-1) solid var(--color-border);margin-top:var(--sp-size-22);padding-top:var(--sp-size-4)}.selection-actions h3{font-size:var(--sp-size-13);font-weight:500;color:var(--color-text-sub);margin:var(--sp-size-18) 0 var(--sp-size-12)}.selection-action-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--sp-size-6);gap:var(--sp-size-6)}.selection-action-row button{border:var(--sp-size-1) solid var(--color-border);background:var(--color-bg-surface);padding:var(--sp-size-9) var(--sp-size-5);font-size:var(--sp-size-11)}.qr-action{margin-top:var(--sp-size-9)}.opacity-control{display:block;font-size:var(--sp-size-12);color:var(--color-text-sub);margin:var(--sp-size-14) 0}.opacity-control input{display:block;width:100%;margin-top:var(--sp-size-7);accent-color:var(--color-cta)}@media(max-width:600px){body{min-width:var(--sp-size-320)}.app{height:100dvh;min-height:var(--sp-size-620);overflow:hidden}.top{height:auto;min-height:var(--sp-size-58);padding:var(--sp-size-9) var(--sp-size-12);gap:var(--sp-size-10);flex-wrap:wrap}.logo{font-size:var(--sp-size-19)}.top nav{display:none}.top-actions{margin-left:auto;max-width:72%;overflow-x:auto}.history-actions button,.top-actions button{white-space:nowrap;padding:var(--sp-size-8) var(--sp-size-9);font-size:var(--sp-size-11)}.workspace{display:flex;flex-direction:column;min-height:0}.rail{width:100%;height:var(--sp-size-58);min-height:var(--sp-size-58);flex-direction:row;overflow-x:auto;border-right:0;border-bottom:var(--sp-size-1) solid var(--color-border)}.rail button{flex:0 0 var(--sp-size-70);padding:var(--sp-size-8) var(--sp-size-3);gap:var(--sp-size-3)}.rail button b{font-size:var(--sp-size-18)}.rail button small{font-size:var(--sp-size-10)}.panel{width:100%;max-height:var(--sp-size-225);min-height:0;border-right:0;border-bottom:var(--sp-size-1) solid var(--color-border);padding:var(--sp-size-12) var(--sp-size-14);overflow-y:auto}.panel h2{font-size:var(--sp-size-16);margin:0 0 var(--sp-size-10)}.panel h3{margin:var(--sp-size-10) 0 var(--sp-size-8)}.templates{grid-template-columns:repeat(4,minmax(var(--sp-size-104),1fr));overflow-x:auto}.thumb{height:var(--sp-size-58);font-size:var(--sp-size-15)}.selection-actions{margin-top:var(--sp-size-12)}.canvas-area{flex:1 1;min-height:var(--sp-size-280);overflow:hidden}.canvas-area canvas{transform:scale(.52);transform-origin:center;box-shadow:0 var(--sp-size-5) var(--sp-size-18) var(--shadow-sm)}.vertical{left:var(--sp-size-8);top:44%}.horizontal,.vertical{font-size:var(--sp-size-11)}.horizontal{left:50%;bottom:var(--sp-size-44)}.canvas-tools{bottom:var(--sp-size-8);padding:var(--sp-size-3);gap:var(--sp-size-2)}.canvas-tools button{min-width:var(--sp-size-35);padding:var(--sp-size-8) var(--sp-size-7);font-size:var(--sp-size-11)}.bottom{height:auto;min-height:var(--sp-size-72);gap:var(--sp-size-8);flex-wrap:wrap}.bottom,.preview{padding:var(--sp-size-8) var(--sp-size-10)}.preview{font-size:var(--sp-size-11)}.bottom strong{display:block;flex:1 1;min-width:var(--sp-size-120);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--sp-size-12)}.buy{width:100%;display:flex}.buy button{height:var(--sp-size-40);min-width:var(--sp-size-40);font-size:var(--sp-size-14)}.buy span{padding:var(--sp-size-11) var(--sp-size-16)}.buy .cart{flex:1 1;padding:0 var(--sp-size-8);margin-left:var(--sp-size-6);font-size:var(--sp-size-13)}.history-actions{gap:var(--sp-size-3)}.selection-action-row{gap:var(--sp-size-5)}.selection-action-row button{min-height:var(--sp-size-38)}.delete-action,.panel-action{min-height:var(--sp-size-42);font-size:var(--sp-size-13)}.panel input,.panel select{font-size:var(--sp-size-16);min-height:var(--sp-size-42)}.opacity-control input{min-height:var(--sp-size-30)}.toast{right:var(--sp-size-12);left:var(--sp-size-12);bottom:var(--sp-size-84);text-align:center;font-size:var(--sp-size-12)}.grid-on{background-size:var(--sp-size-16) var(--sp-size-16)!important}}body{background:var(--color-bg-page);color:var(--color-text)}.bottom,.panel,.top{background:var(--color-bg-surface);border-color:var(--color-border)}.muted,.panel h3,.top nav{color:var(--color-text-sub)}.canvas-tools button,.templates button,.top button{border-color:var(--color-border-strong);color:var(--color-text)}.rail{background:var(--color-selected-bg);border-color:var(--color-border)}.rail button.active{border-left-color:var(--color-link);color:var(--color-text)}.rail button.active b{color:var(--color-link)}.panel-action,.preview{border-color:var(--color-link);color:var(--color-link);border-radius:var(--radius-md)}.buy .cart{background:var(--color-cta);border-color:var(--color-cta);border-radius:var(--radius-md)}.toast{background:var(--color-text);box-shadow:var(--shadow-md)}.canvas-tools{box-shadow:var(--shadow-sm)}.delete-action{border-color:var(--sp-color-danger);color:var(--sp-color-danger)}