@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;700&display=swap";:root{--primary-color: #f55800;--primary-hover-color: #ff6a1a;--bg-color: #121212;--surface-color: #1e1e1e;--panel-color: #2a2a2a;--text-color: #ede9dc;--text-sub: #a5a094;--text-muted: #8a8a8a;--border-color: #333;--border-radius: 6px;--shadow-soft: 0 4px 20px rgba(0, 0, 0, .25);--header-height: 64px}:root[data-theme=light]{--primary-color: #f55800;--primary-hover-color: #ff6a1a;--bg-color: #e5e7eb;--surface-color: white;--panel-color: #fbf9fa;--text-color: #25251f;--text-sub: #5a5a54;--text-muted: #5a5a54;--text-on-surface: #e4e0d9;--border-color: #a5a094;--shadow-soft: 0 4px 20px rgba(0, 0, 0, .15)}body{font-family:Pretendard,Poppins,Noto Sans KR,sans-serif;background-color:var(--bg-color);color:var(--text-color);min-height:100vh;margin:0}.app-shell{min-height:100vh;background-color:var(--bg-color);color:inherit}.app-header{position:fixed;top:0;left:0;right:0;height:64px;background-color:#1e1e1e;border-bottom:1px solid #333;display:flex;align-items:center;justify-content:space-between;padding:0 32px;z-index:9999!important}.app-header-left{display:flex;align-items:center;gap:12px}.app-header-logo svg{color:var(--primary-color)}.app-header-title{font-size:18px;font-weight:600;color:#fff}.app-header-right{display:flex;align-items:center;gap:24px}.app-header-nav{display:flex;gap:16px}.app-header-nav a{color:var(--text-muted-color);text-decoration:none;font-size:14px;transition:color .2s ease}.app-header-nav a:hover{color:#fff}.app-header-login{background:var(--primary-color);color:#fff;border:none;border-radius:8px;padding:6px 16px;font-size:14px;cursor:pointer;transition:background .2s ease}.app-header-login:hover{background:var(--primary-hover-color)}.app-main{padding-top:var(--header-height);min-height:100vh;display:flex;flex-direction:column}.app-container{display:flex;width:100%;min-height:calc(100vh - var(--header-height));position:relative}.controls-panel{width:480px;background-color:var(--surface-color);padding:36px 24px 24px;display:flex;flex-direction:column;align-items:stretch;gap:16px;border-right:1px solid var(--border-color);z-index:52;position:relative;flex-shrink:0}.scrollable-controls{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch;gap:32px;padding-right:8px;margin-right:-8px}.scrollable-controls::-webkit-scrollbar{width:6px}.scrollable-controls::-webkit-scrollbar-track{background:var(--surface-color)}.scrollable-controls::-webkit-scrollbar-thumb{background:#555;border-radius:3px}.logo-link{display:flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;padding-bottom:16px;border-bottom:1px solid var(--border-color);margin-bottom:-16px}.logo-link .logo-icon{color:var(--primary-color);flex-shrink:0}.logo-link .logo-text{color:var(--text-color);font-size:24px;font-weight:500;line-height:1}.logo-link .logo-text strong{font-weight:700}.main-service-tabs{display:flex;gap:8px}.main-tab-btn{flex:1;padding:12px 8px;background-color:#a5a094;color:#1e1e1e;border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500}.main-tab-btn:hover{background-color:#444;color:var(--text-color)}.main-tab-btn.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.control-section{display:flex;flex-direction:column;align-items:stretch;gap:12px}.control-section h2{font-size:16px;font-weight:600;margin-bottom:0;color:var(--text-muted-color);text-transform:uppercase;letter-spacing:.5px}.photo-type-selector{display:flex;gap:8px}.photo-type-btn{flex:1;padding:12px 8px;background-color:#333;color:var(--text-muted-color);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:600}.photo-type-btn:hover{background-color:#444;color:var(--text-color)}.photo-type-btn.active{background-color:var(--primary-color)!important;color:#fff!important;border-color:var(--primary-color)!important}.drop-zone{display:flex;flex-direction:column;align-items:stretch;align-items:center;justify-content:center;width:100%;aspect-ratio:16 / 9;border:1.5px dashed #333;border-radius:var(--border-radius);background-color:#2a2a2a;color:#777;cursor:pointer;transition:all .2s ease-in-out;text-align:center;position:relative;overflow:hidden}.drop-zone:hover{border-color:#aaa;color:#aaa}.drop-zone.dragover{border-style:solid;border-color:var(--primary-color);background-color:#0009}.drop-zone-prompt i{font-size:40px;margin-bottom:12px}.drop-zone-prompt p{font-size:14px;line-height:1.5}#image-preview{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;padding:8px;background-color:#2a2a2a}.image-controls{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;align-items:center;justify-content:center;gap:20px;opacity:0;pointer-events:none;transition:opacity .2s ease-in-out}.drop-zone:hover .image-controls{opacity:1;pointer-events:auto}.image-control-btn{background:none;border:none;color:#e0e0e0;font-size:24px;cursor:pointer;padding:10px;transition:color .2s ease}.image-control-btn:hover{color:#fff}.image-control-btn:disabled{color:#666;cursor:not-allowed}.image-control-btn:disabled:hover{color:#666}.drop-zone-loader{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:5;border-radius:var(--border-radius)}.template-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tab-btn{padding:8px;background-color:var(--panel-color);color:var(--text-muted);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;font-weight:500;line-height:1.2}.tab-btn:hover{background-color:#444;color:var(--text-color)}.tab-btn.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.aspect-ratio-selector{display:flex;gap:10px;flex-wrap:wrap}.aspect-ratio-btn{flex-grow:1;padding:8px 10px;background-color:var(--panel-color);color:var(--text-muted);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:400;line-height:1.2}.aspect-ratio-btn:hover{background-color:#444;color:var(--text-color)}.aspect-ratio-btn.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.aspect-ratio-btn:disabled{background-color:var(--panel-color);color:var(--text-muted);cursor:not-allowed;border-color:var(--border-color)}.aspect-ratio-btn:disabled:hover{background-color:var(--panel-color)}#prompt-input{width:100%;min-height:130px;background-color:var(--panel-color);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:12px;color:var(--text-color);font-family:Poppins,Noto Sans KR,sans-serif;resize:vertical}#prompt-input:focus{outline:none;border-color:var(--primary-color)}.action-btn{min-height:44px;line-height:1.4;width:100%;padding:18px 0;border:none;border-radius:var(--border-radius);font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s ease;flex-shrink:0}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover-color)}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-secondary:hover:not(:disabled){background-color:var(--secondary-hover-color)}.action-btn:disabled{background-color:#555;color:#fff;cursor:not-allowed}.main-content{display:flex;flex-grow:1;min-height:0;height:100%;overflow:hidden}.canvas-container{flex-grow:1;display:flex;flex-direction:column;align-items:stretch;align-items:center;justify-content:center;padding:40px;gap:20px;overflow:auto}#canvas{position:relative;width:100%;max-width:90vh;max-height:calc(90vh - 220px);background-color:var(--surface-color);border:1px solid #333!important;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-direction:column;align-items:stretch;transition:all .3s cubic-bezier(.25,.8,.25,1);box-shadow:none!important;flex-shrink:0;overflow:hidden}#canvas-prompt{color:var(--text-muted-color);font-size:18px;text-align:center}#canvas img{width:100%;height:100%;object-fit:contain;border-radius:var(--border-radius);transition:opacity .2s ease}.download-buttons-container{position:absolute;top:16px;right:16px;z-index:10;display:flex;gap:8px}.btn-download{width:40px;height:40px;padding:0;background-color:#2a2a2acc;color:var(--text-color);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:16px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:0}.btn-download:hover:not(:disabled){background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.btn-download:disabled{cursor:not-allowed;background-color:#2a2a2a;color:#555}.btn-download-hd{width:auto;padding:0 12px;font-size:14px;font-weight:600;gap:6px}#edit-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:20;border-radius:var(--border-radius);pointer-events:auto}#drawing-canvas{position:absolute;top:0;left:0;cursor:crosshair;touch-action:none;pointer-events:auto}#edit-toolbar{position:absolute;display:flex;align-items:center;gap:16px;background-color:#1e1e1ee6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 24px;border-radius:var(--border-radius);border:1px solid var(--border-color);z-index:21;box-shadow:0 4px 15px #0006;pointer-events:auto;cursor:grab;-webkit-user-select:none;user-select:none;flex-wrap:nowrap;white-space:nowrap}#edit-toolbar.dragging{cursor:grabbing}.tool-group{display:flex;align-items:center;gap:8px}.tool-group label{font-size:14px;color:var(--text-muted-color);font-weight:500;flex-shrink:0}.edit-tool-btn{background:#333;border:1px solid var(--border-color);color:var(--text-color);width:36px;height:36px;border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;font-size:16px}.edit-tool-btn:hover{background-color:#444}.edit-tool-btn.active{background-color:var(--primary-color);border-color:var(--primary-color)}#brush-size{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:120px;height:8px;background:#444;outline:none;border-radius:4px;cursor:pointer}#brush-size::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--text-color);cursor:pointer;border-radius:50%}#brush-size::-moz-range-thumb{width:18px;height:18px;background:var(--text-color);cursor:pointer;border-radius:50%}.tool-group.prompt-group{flex-grow:1}#edit-prompt{background-color:#2a2a2a;border:1px solid var(--border-color);border-radius:var(--border-radius);padding:8px 12px;color:var(--text-color);font-size:14px;width:250px}#edit-prompt:focus{outline:none;border-color:var(--primary-color)}.edit-action-btn{padding:8px 16px;border-radius:var(--border-radius);border:1px solid var(--border-color);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;background:#444;color:var(--text-color)}.edit-action-btn:hover:not(:disabled){background:#555}.edit-action-btn.primary{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.edit-action-btn.primary:hover:not(:disabled){background-color:var(--primary-hover-color)}.edit-action-btn:disabled{background-color:#555;cursor:not-allowed;opacity:.5}.quick-options-container{width:100%;max-width:90vh;padding:16px;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--border-radius);display:flex;flex-direction:column;align-items:stretch;gap:16px}#virtual-model-options-container{padding:0;border:none;background-color:transparent}.option-group{display:flex;flex-direction:column;align-items:stretch;gap:8px}.option-group-title{font-size:14px;font-weight:600;color:var(--text-muted-color);text-transform:uppercase;letter-spacing:.5px;margin:0}.option-buttons{display:flex;gap:10px;flex-wrap:wrap}.option-btn{padding:8px 16px;background-color:#333;color:var(--text-color);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;font-size:14px}.option-btn:hover{background-color:#444;border-color:#555}.option-btn.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.model-layout-container{display:flex;flex-direction:column;align-items:stretch;gap:8px}.model-options-row{display:flex;align-items:flex-start;gap:16px}.model-options-row .option-group{flex:1 1 0}.model-options-separator{color:var(--border-color);font-size:24px;font-weight:100;margin-top:28px}#color-picker-container{width:100%;max-width:680px;padding:20px;background-color:#2a2a2a;border-radius:var(--border-radius);display:none;box-shadow:0 5px 15px #0003;position:relative}.picker-close-btn{position:absolute;top:12px;right:12px;z-index:10}.color-picker-main{display:flex;gap:20px;width:100%;align-items:center}.color-picker-sidebar{display:flex;flex-direction:column;align-items:stretch;gap:16px;flex-basis:130px;flex-shrink:0}.color-picker-sidebar h3{font-size:14px;font-weight:600;color:var(--text-muted-color);text-transform:uppercase;letter-spacing:.5px}.sidebar-toggle{display:flex;flex-direction:column;align-items:stretch;gap:8px}.sidebar-btn{padding:10px;background-color:#383838;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-muted-color);font-size:14px;font-weight:500;cursor:pointer;text-align:left;transition:all .2s ease}.sidebar-btn:hover{background-color:#444;color:var(--text-color)}.sidebar-btn.active{background-color:#4f4f4f;border-color:#666;color:var(--text-color)}#color-box{width:160px;height:160px;border-radius:var(--border-radius);position:relative;cursor:crosshair;background-image:linear-gradient(to top,#000,#0000),linear-gradient(to right,#fff,#fff0);box-shadow:inset 0 0 0 1px #0000001a;flex-shrink:0}#color-box-handle{position:absolute;width:18px;height:18px;border:2px solid white;border-radius:50%;box-shadow:0 0 5px #00000080,inset 0 0 0 1px #0003;transform:translate(-50%,-50%);pointer-events:none}.color-picker-controls-panel{flex:1;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between}.color-controls{display:flex;flex-direction:column;align-items:stretch;gap:16px;justify-content:center;flex-grow:1}.control-row{display:flex;align-items:center;gap:12px}.icon-btn{width:36px;height:36px;background-color:#383838;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-color);font-size:14px;cursor:pointer;transition:background-color .2s ease}.icon-btn:hover{background-color:#444}.slider-wrapper{flex-grow:1;height:12px;position:relative}.color-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:100%;background:transparent;outline:none;margin:0;padding:0;cursor:pointer;border-radius:6px;box-shadow:inset 0 0 0 1px #0000001a}#hue-slider{background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}#opacity-slider{background:linear-gradient(to right,transparent,var(--primary-color))}.color-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:#fff;border-radius:50%;border:2px solid white;box-shadow:0 0 5px #00000080,inset 0 0 0 1px #0003;margin-top:-3px}.color-slider::-moz-range-thumb{width:14px;height:14px;background:#fff;border-radius:50%;border:2px solid #fff;box-shadow:0 0 5px #00000080}.hex-input-wrapper{background-color:#1e1e1e;border:1px solid var(--border-color);border-radius:var(--border-radius);padding:8px;flex-basis:75px}#hex-input{background:none;border:none;color:var(--text-color);font-family:monospace;font-size:14px;width:100%;outline:none;text-transform:uppercase}#opacity-value{font-size:14px;font-family:monospace;color:var(--text-muted-color);flex-basis:40px;text-align:right}#apply-color-btn{padding:12px;font-size:16px;margin-top:0}.history-panel{width:280px;background-color:var(--surface-color);padding:36px 24px 24px;display:flex;flex-direction:column;align-items:stretch;gap:16px;border-left:1px solid #333!important;flex-shrink:0;font-size:14px;font-family:Noto Sans KR,Poppins,sans-serif}.history-panel-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--border-color);margin:-8px 0 0}.history-panel-header h3{font-size:14px;font-weight:500;color:var(--text-muted-color);text-transform:uppercase;letter-spacing:.5px}.history-items-container{flex:1;display:flex;flex-direction:column;gap:16px;overflow-y:auto;max-height:calc(100vh - 180px);padding-right:8px;margin-right:-8px;scroll-behavior:smooth}.history-items-container::-webkit-scrollbar{width:6px}.history-items-container::-webkit-scrollbar-track{background:var(--surface-color)}.history-items-container::-webkit-scrollbar-thumb{background:#555;border-radius:3px}.history-item{aspect-ratio:4 / 3;flex-shrink:0;position:relative;border-radius:var(--border-radius);overflow:hidden;cursor:pointer;border:2px solid transparent;transition:all .2s ease;background-color:#2a2a2a}.history-item:after{content:none}.history-item img{width:100%;display:block;aspect-ratio:16 / 10;object-fit:cover}.history-item-label{position:static;padding:10px 12px;color:var(--text-color);font-size:14px;font-weight:500;z-index:2;display:block;width:100%}.history-item:hover{border-color:#555}.history-item.active{border-color:var(--primary-color);box-shadow:0 0 10px #2f5bff80}.delete-history-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;background-color:#0009;color:#fff;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;opacity:0;transition:opacity .2s ease,background-color .2s ease;z-index:3}.history-item:hover .delete-history-btn{opacity:1}.delete-history-btn:hover{background-color:#dc3545}.panel-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000000b3;z-index:50;opacity:0;pointer-events:none;transition:opacity .3s ease-in-out}.panel-overlay.visible{opacity:1;pointer-events:auto}.template-panel{position:absolute;top:0;left:480px;width:450px;height:calc(100% + -0px);background-color:var(--surface-color);border-right:1px solid var(--border-color);z-index:51;display:flex;flex-direction:column;align-items:stretch;box-shadow:5px 0 35px #00000080;transform:translate(-100%);transition:transform .4s cubic-bezier(.25,.8,.25,1);pointer-events:none}.template-panel.visible{transform:translate(0);pointer-events:auto}.template-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid var(--border-color);flex-shrink:0}.template-panel-header h3{font-size:18px;font-weight:600}.close-btn{background:none;border:none;color:var(--text-muted-color);font-size:28px;line-height:1;cursor:pointer;transition:color .2s}.close-btn:hover{color:var(--text-color)}.template-panel-grid{flex-grow:1;overflow-y:auto;padding:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-content:start}.template-panel-item{width:100%;padding:12px;background-color:#2a2a2a;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-color);font-size:14px;text-align:center;cursor:pointer;transition:all .2s ease;height:180px;display:flex;align-items:center;justify-content:center}.template-panel-item.template-thumbnail{background-size:cover;background-position:center;color:#fff;border-color:#ffffff4d;text-shadow:0 2px 6px rgba(0,0,0,.6);transition:transform .4s ease,filter .4s ease,box-shadow .4s ease}.template-panel-item.template-thumbnail:hover{border-color:#ffffff80;transform:scale(1.2);filter:brightness(1.1);box-shadow:0 8px 20px #0006}.template-panel-item:not(.template-thumbnail){background-image:none!important;background-color:#2a2a2a!important}.template-panel-item:hover{background-color:#3a3a3a;border-color:#555}.template-panel-item.active{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.template-panel-info{grid-column:1 / -1;padding:16px;background-color:#2a2a2a;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-muted-color);font-size:14px;line-height:1.6;text-align:left}.template-panel-info strong{color:var(--text-color);font-weight:600}.canvas.ratio-16-9{aspect-ratio:16 / 9}.canvas.ratio-4-3{aspect-ratio:4 / 3}.canvas.ratio-1-1{aspect-ratio:1 / 1}.canvas.ratio-3-4{aspect-ratio:3 / 4}#loader{display:none;flex-direction:column;align-items:stretch;align-items:center;justify-content:center;gap:16px;color:var(--text-muted-color)}.spinner{width:50px;height:50px;border:5px solid #444;border-top:5px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.spinner-small{width:16px;height:16px;border:2px solid #666;border-top:2px solid var(--text-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:var(--surface-color);padding:32px;border-radius:var(--border-radius);border:1px solid var(--border-color);box-shadow:0 10px 30px #00000080;max-width:450px;width:90%;text-align:center}.modal-content h3{font-size:22px;font-weight:600;margin-bottom:16px}.modal-content p{font-size:16px;color:var(--text-muted-color);line-height:1.6;margin-bottom:24px}.modal-actions{display:flex;gap:16px;justify-content:center}.modal-btn{flex:1;padding:12px 24px;border:none;border-radius:var(--border-radius);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.modal-btn-primary{background-color:var(--primary-color);color:#fff}.modal-btn-primary:hover{background-color:var(--primary-hover-color)}.modal-btn-secondary{background-color:#444;color:var(--text-color);border:1px solid #555}.modal-btn-secondary:hover{background-color:#555;border-color:#666}.photo-type-btn.active,.photo-type-btn.active *{background-color:var(--primary-color)!important;color:#fff!important;border-color:var(--primary-color)!important}button,.button,.btn{border-radius:8px!important}button,.button,.btn{background-color:var(--color-surface);color:var(--color-text-main);border:1px solid var(--color-border);transition:background-color .2s ease,color .2s ease}button:hover,.button:hover,.btn:hover{background-color:var(--color-primary-hover);color:#fff}.app-header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background-color:#1e1e1e!important;border-bottom:1px solid #333!important;display:flex;align-items:center;justify-content:space-between;padding:0 32px;z-index:9999;pointer-events:auto}.header-logo{height:32px}.header-actions{display:flex;align-items:center;gap:16px;position:relative;z-index:10000;pointer-events:auto}.header-actions button,.header-actions a{border-radius:8px;font-size:14px;transition:background-color .2s ease,color .2s ease,border-color .2s ease;cursor:pointer}.btn-theme{background:none;border:1px solid var(--color-border);color:var(--color-text-sub);padding:6px 12px}.btn-theme:hover{color:var(--primary-color);border-color:var(--primary-color)}.btn-ghost{text-decoration:none;color:var(--color-text-sub)}.btn-ghost:hover{color:var(--primary-color)}.app-header .header-actions .btn-primary{background:none!important;border:none!important;box-shadow:none!important;color:#fff;padding:6px 14px;font-weight:600}.app-header .header-actions .btn-primary:hover,.app-header .header-actions .btn-primary:focus,.app-header .header-actions .btn-primary:active{background:none!important;border:none!important;box-shadow:none!important;color:#bdbdbd!important}button,.button,.btn{border-radius:6px!important;transition:background-color .2s ease,color .2s ease}#history-panel .history-item img{aspect-ratio:4 / 3!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;border-radius:6px!important;display:block!important;background-color:#000}.user-wrapper{display:inline-flex;align-items:center;gap:10px;padding:4px 8px;border-radius:999px;background:#ffffff0f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.user-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover}.user-avatar--initials{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;background:#444;color:#fff}.user-name{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;align-items:center;gap:12px}.user-menu-wrap{position:relative}.user-chip-btn{display:inline-flex;align-items:center;justify-content:center;padding:0!important;margin:0;background:transparent!important;border:none!important;box-shadow:none!important;width:auto;height:auto;line-height:1;border-radius:50%!important;cursor:pointer}.user-chip-btn:hover{background:transparent!important}.user-chip-btn:hover .user-chip__avatar,.user-chip-btn:hover .user-chip__avatar--initials{box-shadow:0 0 0 3px #ffffff1f}.user-chip__avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.user-chip__avatar--initials{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#2f6f7a;color:#fff;font-weight:700;font-size:12px}.user-chip__name{color:#eee;opacity:.9;font-weight:600}.user-dropdown{position:absolute;right:0;top:calc(100% + 8px);z-index:1000;width:320px;background:#141414fa;border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 12px 24px #0006;padding:10px}.user-card{display:flex;align-items:center;gap:12px;padding:8px}.user-card__avatar{width:40px;height:40px;border-radius:50%;object-fit:cover}.user-card__avatar--initials{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#2f6f7a;color:#fff;font-weight:700}.user-card__meta{display:flex;flex-direction:column}.user-card__name{font-weight:500}.user-card__email{opacity:.7;font-size:12px}.user-menu-divider{height:1px;background:#ffffff14;margin:6px 0}.user-menu-item{width:100%;text-align:left;border:none;background:transparent;padding:10px 12px;border-radius:8px;cursor:pointer}.user-menu-item:hover{background:#ffffff0f}.user-menu-logout{color:#ff6b6b;font-weight:700}.user-chip__name{display:none}.header-actions .user-chip-btn,.user-chip-btn{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important}.auth-hero{position:relative;overflow:hidden}.auth-hero-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.02);transition:opacity .6s ease,transform .6s ease;will-change:opacity,transform;backface-visibility:hidden}.auth-hero-img.is-active{opacity:1;transform:scale(1)}.auth-hero-dots{position:absolute;bottom:16px;left:0;right:0;display:flex;gap:6px;justify-content:center;pointer-events:none}.auth-hero-dot{width:8px;height:8px;border-radius:999px;background:#ffffff59;transition:background-color .2s ease,transform .2s ease}.auth-hero-dot.is-active{background:#fff;transform:scale(1.1)}.auth-cta{width:100%;height:56px;display:flex;align-items:center;justify-content:center;gap:12px;border-radius:10px;font-size:18px;font-weight:700;letter-spacing:-.2px;cursor:pointer;transition:filter .15s ease,transform .02s ease-in-out,background-color .2s ease,border-color .2s ease;-webkit-user-select:none;user-select:none}.auth-cta:active{transform:translateY(1px)}.auth-cta--google{background:#fff;color:#111;border:1px solid rgba(255,255,255,.18)}.auth-cta--google:hover{filter:brightness(.98)}.auth-cta--google .auth-cta__icon{width:22px;height:22px;display:block;flex:0 0 auto}.auth-cta--kakao{background:transparent;padding:0;border:none}.auth-cta--kakao img{display:block;width:100%;height:56px;object-fit:contain;border-radius:10px}.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0 4px;color:#ffffff80}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#ffffff1f}.guest-credits-pill{margin:0 8px;padding:4px 10px;border-radius:999px;font-size:12px;line-height:1;background:#ffffff14;border:1px solid rgba(255,255,255,.18);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.btn-theme{display:none!important}.header-actions .user-chip__avatar,.header-actions .user-chip__avatar--initials{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0;display:block}.app-main--library .library-shell{padding:16px 40px 40px}.library-main{width:100%;max-width:1600px;margin:0 auto;padding:24px 40px 0;display:flex;flex-direction:column;gap:24px}.app-main--library .library-title{font-size:22px;font-weight:600;margin:0 0 16px;color:var(--text-color)}.library-header-main{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:20px}.library-header{position:sticky;top:0;z-index:5;padding:12px 0 16px;margin-bottom:4px;display:flex;flex-direction:column;gap:12px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(to bottom,rgba(10,10,10,.95),rgba(10,10,10,.85),transparent)}.library-controls{display:flex;align-items:center;justify-content:space-between;gap:24px}.library-sort{display:flex;align-items:center;gap:8px}.library-sort-label{font-size:13px;opacity:.7}.library-sort-btn{padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff05;color:inherit;font-size:13px;display:inline-flex;align-items:center;gap:4px;cursor:pointer}.library-sort-btn:hover{border-color:#ffffff40;background:#ffffff0f}.library-sort-arrow{font-size:10px;opacity:.7}.library-filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.library-filter-btn{padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#ffffff05;color:inherit;font-size:13px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.library-filter-btn.is-active{border-color:var(--primary-color, #ff6a3a);background:#ff6a3a2e;color:#fff}.library-filter-btn:hover:not(.is-active){border-color:#ffffff40;background:#ffffff0f}.library-empty{min-height:360px;padding:40px 32px;border-radius:16px;background:radial-gradient(circle at top left,rgba(255,255,255,.06),transparent 55%),#0f0f0ff5;border:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px}.library-empty h2{font-size:22px;margin:0 0 4px}.library-empty p{margin:0 0 24px;font-size:14px;line-height:1.5;opacity:.8}.library-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:32px 32px}@media(max-width:1280px){.library-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:1100px){.library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:900px){.library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.library-thumb{display:flex;flex-direction:column;gap:6px}.library-thumb-inner{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:radial-gradient(circle at top,rgba(255,255,255,.06),transparent 60%),#101010;cursor:pointer}.library-thumb-inner img{width:100%;height:100%;object-fit:cover;display:block}.library-thumb-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at top,#0009,#000000e6);opacity:0;display:flex;align-items:center;justify-content:center;transition:opacity .18s ease}.library-thumb-inner:hover .library-thumb-overlay{opacity:1}.library-thumb-actions{display:flex;align-items:center;justify-content:center}.library-thumb-action-btn{min-width:88px;padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.8);background:#121212e6;color:#f8f8f8;font-size:13px;font-weight:500;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .15s ease,border-color .15s ease,transform .1s ease}.library-thumb-action-btn:hover{background:#ffffff1f;border-color:#fff;transform:none}.library-thumb-overlay{will-change:opacity}.library-thumb-meta{display:flex;flex-direction:column;gap:2px;font-size:12px}.library-thumb-title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-thumb-sub{opacity:.7}.library-thumb-meta-actions{margin-top:6px;display:flex;gap:8px}.library-thumb-meta-btn{padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#ffffff05;color:inherit;font-size:11px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.library-thumb-meta-btn:hover{border-color:#ffffff47;background:#ffffff0f}.library-thumb-meta-btn.is-danger{border-color:#ffffff29;background:#ffffff05;color:inherit}.library-thumb-meta-btn.is-danger:hover{border-color:#ff4b4b;background:#ff4b4b2e;color:#ffecec}.library-pagination{margin-top:20px;display:flex;align-items:center;justify-content:center;gap:12px}.library-page-btn{padding:6px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff05;color:inherit;font-size:13px;cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease}.library-page-btn:hover:not(:disabled){border-color:#ffffff4d;background:#ffffff0f}.library-page-btn:disabled{opacity:.4;cursor:default}.library-page-info{font-size:13px;opacity:.8}.app-main--library .canvas-container.library-main{align-items:flex-start;justify-content:flex-start;padding:0 0 40px}.library-preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1900;background:#000000d9;display:flex;align-items:center;justify-content:center}.library-preview-dialog{position:relative;z-index:2100;width:min(800px,90vw);height:min(80vh,760px);border-radius:18px;background:radial-gradient(circle at top left,rgba(255,255,255,.08),transparent 55%),#0c0c0cfa;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 60px #000000d9,0 0 0 1px #0009;padding:20px 22px 18px;display:flex;flex-direction:column;gap:16px}.library-preview-close{position:absolute;top:0;right:0;width:30px;height:30px;border-radius:999px;border:0px solid rgba(255,255,255,.2);background:#0a0a0ad9;color:#f5f5f5;font-size:18px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:3;transition:background .15s ease,border-color .15s ease,transform .08s ease}.library-preview-close:hover{background:#ffffff1f;border-color:#fff6}.library-preview-image-wrap{flex:1 1 auto;border-radius:8px;overflow:hidden;background:radial-gradient(circle at top left,rgba(255,255,255,.08),transparent 55%),#0c0c0cfa;display:flex;align-items:center;justify-content:center;position:relative}.library-preview-image-wrap img{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:1}.library-preview-footer{flex:0 0 auto;margin-top:6px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.library-preview-meta{min-width:0;display:flex;flex-direction:column;gap:4px}.library-preview-title{font-size:15px;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.library-preview-sub{font-size:12px;opacity:.7}.library-preview-actions{display:flex;gap:8px}@media(max-width:768px){.library-preview-dialog{padding:18px 14px 14px}.library-preview-footer{flex-direction:column;align-items:flex-start}.library-preview-actions{width:100%}.library-preview-actions .library-thumb-meta-btn{flex:1 1 auto;text-align:center}}.app-header .header-left{display:flex;align-items:center;gap:28px}.app-header .header-nav{display:flex;align-items:center;gap:24px;margin-left:10px}.app-header .header-nav-link{color:#e6e6e6;text-decoration:none;font-size:14px;font-weight:500;padding:6px;line-height:1;opacity:1}.app-header .header-nav-link:hover{opacity:1}.app-header .header-cta{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;border-radius:999px;background:#f55800;color:#fff;text-decoration:none;font-size:13px;font-weight:500}.app-header .header-cta:hover{filter:brightness(.95)}.app-header .header-login-btn{background:none;border:none;padding:6px;color:#e6e6e6;font-size:14px;font-weight:500;opacity:.9;cursor:pointer}.app-header .header-login-btn:hover{opacity:1}.app-header .header-pill{margin-right:12px;padding:6px 18px;background:#ffffff1f;border-radius:24px;font-size:14px;font-weight:500;color:#fff;display:inline-flex;align-items:center;white-space:nowrap}@media(max-width:700px){.app-header .header-nav-link{display:none}.app-header .header-cta,.app-header .header-login-btn{display:inline-flex}}
