@import"https://fonts.googleapis.com/css2?family=Black+Han+Sans&family=Caveat:wght@400;700&family=Dancing+Script:wght@400;700&family=Do+Hyeon&family=Gaegu:wght@300;400;700&family=Gamja+Flower&family=Gothic+A1:wght@100;400;700&family=Hi+Melody&family=Jua&family=Lobster&family=Nanum+Myeongjo:wght@400;700;800&family=Nanum+Pen+Script&family=Noto+Sans+KR:wght@100;300;400;500;700;900&family=Pacifico&family=Permanent+Marker&family=Shadows+Into+Light&family=Sunflower:wght@300;500;700&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--primary-color: #6c5ce7;--primary-hover: #5b4cc4;--accent-color: #00cec9;--bg-color: #1e1e2e;--panel-bg: rgba(30, 30, 46, .8);--sidebar-bg: #2d2d42;--text-color: #dfe6e9;--border-color: #4a4a6a;--glass-border: 1px solid rgba(255, 255, 255, .1);--radius-md: 12px;--radius-lg: 20px;--shadow: 0 8px 32px 0 rgba(0, 0, 0, .3)}*{box-sizing:border-box;outline:none}body{font-family:Noto Sans KR,sans-serif;margin:0;padding:0;background-color:var(--bg-color);background-image:radial-gradient(circle at 10% 20%,rgba(108,92,231,.2) 0%,transparent 20%),radial-gradient(circle at 90% 80%,rgba(0,206,201,.2) 0%,transparent 20%);color:var(--text-color);height:100vh;overflow:hidden;display:flex;flex-direction:column}.editor-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.editor-header{height:60px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:var(--glass-border);background:#1e1e2ef2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100}.logo{font-size:20px;font-weight:900;background:linear-gradient(to right,#a29bfe,#00cec9);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:flex;align-items:center;gap:10px}.logo span:first-child{font-size:28px;-webkit-text-fill-color:initial}.header-actions{display:flex;align-items:center;gap:12px}.user-menu{display:flex;align-items:center;gap:10px;margin-left:20px;padding-left:20px;border-left:1px solid rgba(255,255,255,.2)}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.btn-logout{background:transparent;border:1px solid rgba(255,255,255,.3);color:#ffffffb3;padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer;transition:all .3s}.btn-logout:hover{background:#ffffff1a;color:#fff}.btn-login{display:flex;align-items:center;background:linear-gradient(135deg,var(--primary-color),#a29bfe);border:none;color:#fff;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #6c5ce74d}.btn-login:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6c5ce780;background:linear-gradient(135deg,#5b4cc4,var(--primary-color))}.editor-main{display:flex;flex:1;overflow:hidden}.sidebar{width:360px;background:var(--sidebar-bg);border-right:var(--glass-border);display:flex;flex-direction:column;overflow:hidden}.tabs{display:flex;padding:0 10px;background:#0003;overflow-x:auto}.tab-btn{padding:15px 20px;background:none;border:none;color:#a0a0b0;cursor:pointer;font-weight:500;white-space:nowrap;border-bottom:2px solid transparent;transition:all .3s}.tab-btn.active{color:#fff;border-bottom-color:var(--primary-color)}.tab-content{flex:1;padding:20px;overflow-y:auto}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.control-group{margin-bottom:24px}.control-label{display:block;font-size:13px;color:#a0a0b0;margin-bottom:8px;font-weight:500}input[type=text],input[type=number],select{width:100%;padding:10px 12px;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;transition:border-color .2s}input[type=text]:focus,input[type=number]:focus,select:focus{border-color:var(--primary-color)}.color-picker-wrapper{display:flex;gap:10px;align-items:center;background:#0003;padding:8px;border-radius:8px;border:1px solid rgba(255,255,255,.1)}input[type=color]{-webkit-appearance:none;appearance:none;width:24px;height:24px;border:none;border-radius:4px;cursor:pointer;padding:0;background:none}input[type=range]{width:100%;accent-color:var(--primary-color);background:#ffffff1a;border-radius:4px;height:6px}.color-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}.color-row span{color:#fff9;font-size:12px}.font-controls{display:flex;gap:10px;margin-top:10px}.font-controls select{flex:2}.font-controls input{flex:1}.size-controls{display:flex;gap:15px}.size-controls>div{flex:1}.size-controls span{display:block;color:#fff9;font-size:11px;margin-bottom:5px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all .2s;text-decoration:none}.btn .material-icons{font-size:18px}.btn-primary{background:var(--primary-color);color:#fff;box-shadow:0 4px 12px #6c5ce766}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-secondary{background:#ffffff1a;color:#fff}.btn-secondary:hover{background:#ffffff26}.preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.preset-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:12px;cursor:pointer;transition:all .2s;text-align:center}.preset-card:hover{background:#ffffff1a;border-color:var(--primary-color);transform:translateY(-2px)}.preset-icon{font-size:24px;margin-bottom:5px;display:block}.preset-name{font-size:12px;color:#ddd}.template-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.template-card{position:relative;display:flex;align-items:center;gap:8px;padding:12px;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;transition:all .3s}.template-card:hover{background:#6c5ce733;border-color:var(--primary-color)}.template-card.selected{background:#6c5ce74d;border-color:var(--primary-color);box-shadow:0 0 10px #6c5ce74d}.template-delete-btn{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:#e74c3ccc;border:none;color:#fff;font-size:14px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center}.template-card:hover .template-delete-btn{display:flex}.template-delete-btn:hover{background:#e74c3c}.template-card span:last-child{color:#fffc;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-text{grid-column:1 / -1;text-align:center;color:#fff6;font-size:12px;padding:20px}.preset-sizes{display:flex;flex-direction:column;gap:8px}.preset-sizes button{width:100%;padding:10px;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fffc;font-size:13px;cursor:pointer;transition:all .3s}.preset-sizes button:hover{background:#6c5ce733;border-color:var(--primary-color)}.preview-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;background:linear-gradient(45deg,#252535 25%,transparent 25%,transparent 75%,#252535 75%),linear-gradient(45deg,#252535 25%,transparent 25%,transparent 75%,#252535 75%);background-color:#20202b;background-size:20px 20px;background-position:0 0,10px 10px;overflow:scroll;padding:20px}.thumbnail-frame{position:relative;box-shadow:0 20px 50px #00000080;transition:all .3s ease;background:#0000004d;border-radius:16px;padding:20px}.thumbnail-preview{position:relative;overflow:hidden;background:#fff;transition:all .3s ease}.draggable{position:absolute;cursor:move;-webkit-user-select:none;user-select:none;touch-action:none;padding:5px 10px;border:1px solid transparent;transition:background .2s,border .2s;min-width:50px;text-align:center}.draggable:hover{border:1px dashed rgba(255,255,255,.5);background:#0000001a}.draggable.active{border:1px dashed #fff;background:#0003;z-index:100}.resize-handle{position:absolute;width:12px;height:12px;background:var(--primary-color);border:2px solid #fff;border-radius:50%;bottom:-6px;right:-6px;cursor:se-resize;display:none;z-index:10}.draggable:hover .resize-handle,.draggable.active .resize-handle{display:block}.draggable.resizing{z-index:100;box-shadow:0 5px 20px #0000004d;background:#ffffff26;outline:2px dashed rgba(255,255,255,.5)}.effects-layer{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}.particle{position:absolute;pointer-events:none}@keyframes floatUp{0%{opacity:0;transform:translateY(50px) scale(.5)}20%{opacity:1}to{opacity:0;transform:translateY(-100px) scale(1.2)}}@keyframes fallDown{0%{opacity:0;transform:translateY(-50px)}20%{opacity:1}to{opacity:0;transform:translateY(100px)}}@keyframes twinkle{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.text-glow{text-shadow:0 0 10px currentColor,0 0 20px currentColor}.text-bounce{animation:textBounce 1.5s infinite}@keyframes textBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.context-menu{position:fixed;z-index:10000;background:var(--sidebar-bg);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:15px;min-width:250px;box-shadow:0 10px 40px #00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.context-menu-header{font-size:14px;font-weight:600;color:#fff;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}.context-menu-item{margin-bottom:15px}.context-menu-item label{display:block;font-size:12px;color:#a0a0b0;margin-bottom:6px}.context-menu-item select,.context-menu-item input[type=number]{width:100%;padding:8px 10px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:13px}.context-menu-actions{display:flex;gap:10px;margin-top:15px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}.context-menu-actions .btn{flex:1;padding:8px;font-size:13px}.menu-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;cursor:pointer;transition:background .2s;color:#dfe6e9}.menu-item:hover{background:#6c5ce74d}.menu-item .material-icons{font-size:20px;color:var(--primary-color)}.menu-divider{height:1px;background:#ffffff1a;margin:6px 0}.inline-edit-input{background:#0009;border:2px solid var(--primary-color);color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit;width:100%;padding:4px 8px;border-radius:4px;outline:none}.inline-edit-input:focus{box-shadow:0 0 10px #6c5ce780}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.modal-content{background:var(--sidebar-bg);border:1px solid rgba(255,255,255,.15);border-radius:16px;min-width:350px;max-width:90vw;max-height:80vh;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.modal-header h3{margin:0;font-size:18px;color:#fff}.modal-close{background:none;border:none;color:#a0a0b0;font-size:28px;cursor:pointer;line-height:1;padding:0;transition:color .2s}.modal-close:hover{color:#fff}.modal-body{padding:24px;overflow-y:auto;max-height:60vh}.modal-footer{padding:16px 24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:flex-end;gap:10px}.modal-control-group{margin-bottom:20px}.modal-control-group label{display:block;font-size:13px;color:#a0a0b0;margin-bottom:8px}.modal-control-group select,.modal-control-group input[type=number]{width:100%;padding:10px 12px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px}.modal-control-group input[type=color]{width:100%;height:40px;border:none;border-radius:8px;cursor:pointer}.modal-preset-grid,.modal-effect-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.modal-preset-card,.modal-effect-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:16px 12px;text-align:center;cursor:pointer;transition:all .2s;font-size:14px;color:#dfe6e9}.modal-preset-card:hover,.modal-effect-card:hover{background:#6c5ce74d;border-color:var(--primary-color);transform:translateY(-2px)}.modal-effect-card.selected,.modal-icon-card.selected{background:var(--primary-color);border-color:var(--primary-color)}.modal-image-upload{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;background:#0003;border:2px dashed rgba(255,255,255,.2);border-radius:10px;cursor:pointer;transition:all .2s;color:#a0a0b0}.modal-image-upload:hover{border-color:var(--primary-color);background:#6c5ce71a}.modal-section-title{font-size:14px;font-weight:600;color:#dfe6e9;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.modal-icon-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.modal-icon-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px;text-align:center;cursor:pointer;transition:all .2s;font-size:20px}.modal-icon-card:hover{background:#6c5ce74d;border-color:var(--primary-color);transform:scale(1.05)}.custom-textbox{background:transparent;border:1px dashed transparent;border-radius:4px;transition:border-color .2s,background .2s;display:flex;align-items:center;justify-content:center}.custom-textbox:hover,.custom-textbox.active{background:#ffffff0d;border-color:#ffffff4d}.custom-textbox.active{border-color:var(--primary-color)}.custom-image{background:transparent;border:2px solid transparent;border-radius:4px;transition:border-color .2s;overflow:hidden}.custom-image:hover,.custom-image.active{border-color:#ffffff80}.custom-image.active{border-color:var(--primary-color)}.custom-image img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.material-icons{font-family:Material Icons Round;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}option{background:#2d2d42;color:#fff;padding:10px}optgroup{background:#2d2d42;color:#a0a0b0}.mobile-bottom-bar{display:none;height:60px;background:#2d2d42;border-top:1px solid rgba(255,255,255,.1);align-items:center;justify-content:space-around;padding:0 10px;z-index:50}.mobile-bottom-bar button{background:none;border:none;color:#a0a0b0;display:flex;flex-direction:column;align-items:center;font-size:11px;gap:4px;cursor:pointer}.mobile-bottom-bar button .material-icons{font-size:24px;color:var(--primary-color)}@media(max-width:768px){.editor-main{flex-direction:column}.sidebar{display:none}.mobile-bottom-bar{display:flex;order:1}.preview-area{order:-1;height:auto;flex:1;width:100%;padding:10px}.modal-content{min-width:90vw}}.login-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.login-modal-content{background:linear-gradient(145deg,#1e2a3a,#15202b);border-radius:20px;padding:40px;max-width:420px;width:90%;box-shadow:0 25px 80px #00000080,0 0 0 1px #ffffff1a;position:relative;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.login-modal-close{position:absolute;top:15px;right:15px;background:#ffffff1a;border:none;color:#aaa;font-size:24px;width:36px;height:36px;border-radius:50%;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.login-modal-close:hover{background:#fff3;color:#fff;transform:rotate(90deg)}.login-modal-header{text-align:center;margin-bottom:30px}.login-modal-icon{font-size:48px;display:block;margin-bottom:15px;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.login-modal-header h2{color:#fff;font-size:24px;margin:0 0 12px;font-weight:600}.login-modal-description{color:#94a3b8;font-size:14px;line-height:1.6;margin:0}.login-modal-description strong{color:#60a5fa}.login-modal-body{margin-bottom:25px}.login-modal-error{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#f87171;padding:12px 15px;border-radius:10px;margin-bottom:20px;display:flex;align-items:center;gap:10px;font-size:14px}.login-modal-error .material-icons{font-size:20px}.login-modal-content .google-login-btn{width:100%;padding:14px 24px;border:none;border-radius:12px;background:#fff;color:#333;font-size:16px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .3s;box-shadow:0 4px 15px #0003}.login-modal-content .google-login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #0000004d}.login-modal-content .google-login-btn:disabled{opacity:.7;cursor:not-allowed}.login-spinner{width:20px;height:20px;border:2px solid #ddd;border-top-color:#4285f4;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-modal-benefits{color:#94a3b8;font-size:13px;margin:25px 0 12px;text-align:center}.login-modal-features{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.login-modal-features li{background:#ffffff0d;padding:15px 10px;border-radius:12px;text-align:center;color:#e2e8f0;font-size:12px;display:flex;flex-direction:column;align-items:center;gap:8px;transition:all .2s}.login-modal-features li:hover{background:#ffffff1a;transform:translateY(-2px)}.login-modal-features li .material-icons{font-size:24px;color:#60a5fa}.login-modal-footer{text-align:center;padding-top:15px;border-top:1px solid rgba(255,255,255,.1)}.btn-skip{background:transparent;border:none;color:#64748b;font-size:14px;cursor:pointer;padding:8px 16px;transition:all .2s}.btn-skip:hover{color:#94a3b8;text-decoration:underline}@media(max-width:480px){.login-modal-content{padding:30px 25px;margin:15px}.login-modal-features{grid-template-columns:1fr}.login-modal-icon{font-size:40px}.login-modal-header h2{font-size:20px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e1e2e,#2d2d42);background-image:radial-gradient(circle at 10% 20%,rgba(108,92,231,.3) 0%,transparent 20%),radial-gradient(circle at 90% 80%,rgba(0,206,201,.3) 0%,transparent 20%)}.login-card{background:#2d2d42e6;border-radius:20px;padding:40px;width:100%;max-width:400px;box-shadow:0 20px 60px #0006;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.login-header{text-align:center;margin-bottom:30px}.login-icon{font-size:48px;display:block;margin-bottom:15px}.login-header h1{color:#fff;font-size:28px;margin:0 0 8px;font-weight:700}.login-header p{color:#ffffffb3;margin:0;font-size:14px}.login-body{text-align:center}.login-description{color:#fff9;line-height:1.6;margin-bottom:30px}.google-login-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 24px;background:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;color:#333;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #0003}.google-login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.google-login-btn:active{transform:translateY(0)}.login-footer{text-align:center;margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1)}.login-footer p{color:#fff6;font-size:12px;margin:0}#root{width:100%;height:100vh;margin:0;padding:0}
