:root{--bg-color: #e8e8e8;--card-bg: #ffffff;--text-primary: #1a1a1a;--text-secondary: #666666;--accent-green: #c8ff00;--accent-red: #ff6b6b;--shadow-light: rgba(0, 0, 0, 0.08);--shadow-medium: rgba(0, 0, 0, 0.12);--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-family);background:var(--bg-color);color:var(--text-primary);overflow:hidden;height:100vh;width:100vw}.canvas-viewport{position:fixed;inset:0;overflow:hidden;cursor:grab}.canvas-viewport.is-dragging{cursor:grabbing}.canvas-viewport.is-modal-open{cursor:default}.canvas{position:absolute;width:2400px;height:1800px;will-change:transform;transform-origin:0 0;transform:translate(0, 0) scale(1)}.header{position:fixed;top:32px;left:0;right:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;z-index:9999;pointer-events:none;padding:0 16px}@media(max-width: 480px){.header{top:16px;gap:2px}}.logo{font-size:1.125rem}@media(max-width: 480px){.logo{font-size:1rem}}@media(max-width: 480px){.tagline{font-size:.7rem}}.tagline{font-weight:600;letter-spacing:-0.02em;text-align:center;color:var(--text-primary);margin:0;pointer-events:auto}.tagline{font-size:.75rem;color:var(--text-secondary);font-weight:400;text-align:center;margin:0;pointer-events:auto}.link-bar{position:fixed;top:85px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:12px;z-index:9998;padding:8px 16px;background:hsla(0,0%,100%,.8);backdrop-filter:blur(10px);border-radius:20px;box-shadow:0 2px 8px var(--shadow-light)}@media(max-width: 480px){.link-bar{top:55px;gap:8px;padding:6px 12px}}.link-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 1px 3px var(--shadow-light)}.link-icon:hover{transform:scale(1.1);box-shadow:0 4px 12px var(--shadow-medium)}.link-icon img{width:100%;height:100%;object-fit:cover}@media(max-width: 480px){.link-icon{width:32px;height:32px;border-radius:6px}}.floating-card.link-card{display:none !important}.back-link{font-size:.875rem;color:var(--text-primary);text-decoration:none;display:flex;align-items:center;gap:8px}.back-link:hover{opacity:.7}.canvas-indicator{position:fixed;bottom:24px;right:24px;padding:8px 14px;background:var(--card-bg);border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-secondary);box-shadow:0 2px 8px var(--shadow-light);z-index:100;font-family:"SF Mono",Monaco,monospace;opacity:0;transition:opacity .3s ease}.canvas-indicator.visible{opacity:1}.archive-canvas{position:absolute;top:0;left:0;width:100%;height:100%}.folder-stack{position:absolute;left:calc(50% + var(--stack-x, 0px));top:calc(50% + var(--stack-y, 0px));transform:translate(-50%, -50%);cursor:pointer}.stack-label{position:absolute;top:-36px;left:0;padding:8px 16px;font-size:.8rem;font-weight:600;letter-spacing:-0.01em;border-radius:var(--radius-sm);color:var(--text-primary);background:var(--card-bg);box-shadow:0 2px 8px var(--shadow-light);z-index:10;pointer-events:none;opacity:0;white-space:nowrap}.folder-stack:has(.stack-cards:empty) .stack-label{opacity:1}.stack-count{position:absolute;top:-8px;left:-8px;min-width:22px;height:22px;padding:0 6px;font-size:.75rem;font-weight:700;line-height:22px;text-align:center;color:#000;background:#c8ff00;border-radius:11px;z-index:20;box-shadow:0 2px 6px rgba(0,0,0,.15);transition:opacity .2s ease,transform .2s ease}.folder-stack[data-expanded=true] .stack-count{opacity:0;transform:scale(0.8)}.stack-cards{position:relative;min-width:200px;min-height:160px}.stack-cards:empty{background:var(--card-bg);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--shadow-light),0 8px 24px var(--shadow-medium)}.stack-cards:empty::after{content:"비어있음";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:.85rem;color:var(--text-secondary);opacity:.5}.stack-card{position:absolute;top:0;left:0;width:240px;max-width:100%;min-height:0;background:var(--card-bg);border-radius:var(--radius-md);padding:20px;cursor:pointer;box-shadow:0 2px 8px var(--shadow-light),0 8px 24px var(--shadow-medium),0 0 0 1px rgba(0,0,0,.04);transition:box-shadow .2s ease}.stack-card:hover{box-shadow:0 4px 12px var(--shadow-light),0 12px 32px var(--shadow-medium),0 0 0 1px rgba(0,0,0,.04)}.floating-card{position:absolute;left:calc(50% + var(--card-x, 0px));top:calc(50% + var(--card-y, 0px));transform:translate(-50%, -50%);width:280px;max-width:100%;min-width:0;min-height:auto;background:var(--card-bg);border-radius:var(--radius-md);padding:16px;cursor:grab;box-shadow:0 2px 8px var(--shadow-light),0 8px 24px var(--shadow-medium),0 0 0 1px rgba(0,0,0,.04);transition:box-shadow .2s ease;z-index:5}.floating-card:hover{box-shadow:0 4px 12px var(--shadow-light),0 16px 40px var(--shadow-medium),0 0 0 1px rgba(0,0,0,.04)}.floating-card.sticky-card{background:var(--accent-green);width:280px;max-width:100%;min-width:0;padding:16px}.floating-card.sticky-card .card-content{padding:0}.floating-card.sticky-card .card-preview{color:#1a1a1a;font-size:.85rem;line-height:1.5;color:var(--text-secondary);-webkit-line-clamp:5}.floating-card.link-card{padding:0;background:rgba(0,0,0,0);border-radius:0;min-width:auto;max-width:none;width:auto;height:auto;display:inline-block;box-shadow:none;cursor:pointer;position:relative;transition:transform .2s ease,filter .2s ease;filter:drop-shadow(0 4px 12px rgba(0, 0, 0, 0.2))}.floating-card.link-card:hover{transform:scale(1.03);filter:drop-shadow(0 8px 20px rgba(0, 0, 0, 0.3))}.floating-card.link-card .link-image{display:block;max-width:280px;max-height:280px;width:auto;height:auto;object-fit:contain}.floating-card.link-card .link-badge{position:absolute;bottom:8px;right:8px;width:24px;height:24px;background:rgba(0,0,0,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.floating-card.dragging{cursor:grabbing;box-shadow:0 8px 20px var(--shadow-light),0 24px 60px var(--shadow-medium);z-index:100;transform:scale(1.02)}.floating-card.drag-over-valid{opacity:.7}.floating-card .card-image{width:calc(100% + 32px);height:auto;margin:-16px -16px 12px -16px;overflow:visible;border-radius:var(--radius-md) var(--radius-md) 0 0}.floating-card .card-image img{width:100%;height:auto;display:block}.floating-card .card-content .card-title{font-size:.9rem;font-weight:600;margin-bottom:6px;color:var(--text-primary)}.floating-card .card-content .card-preview{font-size:.8rem;color:var(--text-secondary);line-height:1.5}.floating-card .card-detail{display:none}.floating-card.image-card{padding:0;min-height:0;width:280px;max-width:100%;height:auto}.floating-card.image-card .card-image{margin:0;width:100%;height:auto;border-radius:var(--radius-md);overflow:hidden}.floating-card.image-card .card-image img{width:100%;height:auto;max-height:none;border-radius:var(--radius-md)}.floating-card.image-card .card-content{display:none}.folder-stack[data-droppable=true].drag-hover .stack-cards::after{content:"";position:absolute;inset:-20px;border:2px dashed var(--text-secondary);border-radius:var(--radius-lg);pointer-events:none;animation:pulse-border 1s ease infinite}@keyframes pulse-border{0%,100%{opacity:.5}50%{opacity:1}}.card-detail-memo{position:absolute;top:0;left:0;width:280px;min-height:200px;background:var(--card-bg);border-radius:var(--radius-md);padding:24px;visibility:hidden;box-shadow:0 2px 8px var(--shadow-light),0 8px 24px var(--shadow-medium),0 0 0 1px rgba(0,0,0,.04);z-index:99}.memo-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:16px;line-height:1.3}.memo-content{font-size:.9rem;color:var(--text-secondary);line-height:1.7;margin-bottom:20px}.memo-date{font-size:.75rem;color:var(--text-secondary);opacity:.7}.image-card{padding:0;overflow:hidden;min-height:0;height:auto}.stack-card.image-card{width:240px;max-width:100%}.image-card .card-image{width:100%;height:auto;line-height:0;overflow:hidden;border-radius:var(--radius-md)}.image-card .card-image img{display:block;width:100%;height:auto;max-height:none;border-radius:var(--radius-md);transition:transform .4s ease}.image-card .card-content{display:none}.image-card:hover .card-image img{transform:scale(1.02)}.text-card{display:flex;flex-direction:column;justify-content:flex-start;position:relative;padding-bottom:10px}.text-card .card-content{flex:1;overflow:hidden}.text-card .card-preview{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.sticky-card{background:var(--accent-green)}.sticky-card .card-title{color:#1a1a1a}.sticky-card .card-preview{color:#1a1a1a}.card-title{font-size:1rem;font-weight:600;margin-bottom:8px;line-height:1.3}.card-preview{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.card-detail{display:none}.card-date{font-size:.75rem;color:var(--text-secondary);margin-top:12px;display:block}.card-author{position:absolute;bottom:12px;left:12px;display:flex;align-items:center;gap:6px}.card-author-avatar{width:20px;height:20px;border-radius:50%;object-fit:cover}.card-author-initials{width:20px;height:20px;border-radius:50%;background:var(--accent-green);color:#1a1a1a;font-size:.6rem;font-weight:600;display:flex;align-items:center;justify-content:center}.card-author-name{font-size:.7rem;color:var(--text-secondary)}.detail-modal{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%) scale(0.9);width:90%;max-width:800px;max-height:80vh;background:var(--card-bg);border-radius:var(--radius-lg);padding:40px;z-index:1001;opacity:0;visibility:hidden;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.2),0 0 0 1px rgba(0,0,0,.05);transition:transform .4s cubic-bezier(0.34, 1.56, 0.64, 1),opacity .3s ease,visibility .3s ease}.detail-modal.active{transform:translate(-50%, -50%) scale(1);opacity:1;visibility:visible}.modal-close{position:absolute;top:20px;right:24px;width:40px;height:40px;border:none;background:rgba(0,0,0,0);font-size:1.5rem;cursor:pointer;color:var(--text-secondary);border-radius:50%;transition:background .2s ease}.modal-close:hover{background:rgba(0,0,0,.05)}.modal-content{display:flex;flex-direction:column;gap:24px}.modal-image{width:100%;max-height:400px;border-radius:var(--radius-md);overflow:hidden}.modal-image img{width:100%;height:100%;object-fit:cover}.modal-image:empty{display:none}.modal-title{font-size:1.75rem;font-weight:600;line-height:1.2}.modal-body{font-size:1rem;line-height:1.7;color:var(--text-secondary)}.modal-date{font-size:.875rem;color:var(--text-secondary);opacity:.7}.overlay{position:fixed;inset:0;background:rgba(0,0,0,0);z-index:50;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}.overlay.active{opacity:1;visibility:visible;pointer-events:auto}.item-detail{max-width:720px;margin:100px auto 60px;padding:0 24px}.item-image{width:100%;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:32px}.item-image img{width:100%;display:block}.item-content h1{font-size:2rem;font-weight:600;margin-bottom:16px;line-height:1.2}.item-preview{font-size:1.125rem;color:var(--text-secondary);margin-bottom:24px}.item-body{font-size:1rem;line-height:1.8;color:var(--text-primary);margin-bottom:32px}.item-date{font-size:.875rem;color:var(--text-secondary)}body::-webkit-scrollbar{display:none}.detail-memo-fixed{text-align:center;width:400px;max-width:90vw}.detail-memo-fixed .memo-title{font-size:1.1rem;font-weight:600;margin-bottom:12px;color:var(--text-primary)}.detail-memo-fixed .memo-content{font-size:.95rem;line-height:1.7;color:var(--text-secondary)}.detail-memo-fixed .memo-date{display:block;margin-top:16px;font-size:.8rem;color:var(--text-secondary);opacity:.7}.back-btn-component{position:fixed;top:24px;left:24px;z-index:300;width:44px;height:44px;border:none;background:var(--card-bg);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary);box-shadow:0 2px 12px rgba(0,0,0,.1);transition:transform .2s ease,box-shadow .2s ease}@media(max-width: 480px){.back-btn-component{top:16px;left:16px;width:40px;height:40px}}.back-btn-component:hover{transform:scale(1.05);box-shadow:0 4px 16px rgba(0,0,0,.15)}.blog-detail-view{position:fixed;inset:0;z-index:200;background:#fff;overflow-y:auto}.blog-detail-article{max-width:680px;margin:0 auto;padding:80px 24px 120px}@media(max-width: 768px){.blog-detail-article{padding:60px 20px 80px}}@media(max-width: 480px){.blog-detail-article{padding:50px 16px 60px}}.blog-detail-header{margin-bottom:48px;text-align:center}@media(max-width: 480px){.blog-detail-header{margin-bottom:32px}}.blog-detail-title{font-size:2rem;font-weight:700;color:var(--text-primary);line-height:1.3;margin-bottom:16px;letter-spacing:-0.02em}@media(max-width: 768px){.blog-detail-title{font-size:1.75rem}}@media(max-width: 480px){.blog-detail-title{font-size:1.5rem;margin-bottom:12px}}.blog-detail-author{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}.blog-detail-author-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.blog-detail-author-initials{width:28px;height:28px;border-radius:50%;background:var(--accent-green);color:#1a1a1a;font-size:.7rem;font-weight:600;display:flex;align-items:center;justify-content:center}.blog-detail-author-name{font-size:.9rem;color:var(--text-primary);font-weight:500}.blog-detail-date{font-size:.9rem;color:var(--text-secondary)}@media(max-width: 480px){.blog-detail-date{font-size:.8rem}}.blog-detail-content{font-size:1.05rem;line-height:1.85;color:var(--text-primary)}@media(max-width: 768px){.blog-detail-content{font-size:1rem;line-height:1.75}}@media(max-width: 480px){.blog-detail-content{font-size:.95rem;line-height:1.7}}.blog-detail-content p{margin-bottom:1.5em}@media(max-width: 480px){.blog-detail-content p{margin-bottom:1.2em}}.blog-detail-content img{max-width:100%;border-radius:var(--radius-md);margin:2em 0}@media(max-width: 480px){.blog-detail-content img{margin:1.5em 0;border-radius:var(--radius-sm)}}.blog-detail-content h2,.blog-detail-content h3{margin-top:2em;margin-bottom:.8em;font-weight:600}@media(max-width: 480px){.blog-detail-content h2,.blog-detail-content h3{margin-top:1.5em;margin-bottom:.6em}}.blog-detail-content ul,.blog-detail-content ol{margin-bottom:1.5em;padding-left:1.5em}@media(max-width: 480px){.blog-detail-content ul,.blog-detail-content ol{padding-left:1.2em}}.blog-detail-content li{margin-bottom:.5em}.blog-detail-content strong,.blog-detail-content b{font-weight:600}.card-context-menu{position:fixed;z-index:1000;background:var(--card-bg);border-radius:var(--radius-sm);box-shadow:0 4px 12px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.05);overflow:hidden;min-width:140px}.context-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:rgba(0,0,0,0);font-size:.85rem;font-weight:500;color:var(--text-primary);cursor:pointer;transition:background .15s ease;text-align:left}.context-menu-item:hover{background:rgba(0,0,0,.05)}.context-menu-item.delete{color:#e53935}.context-menu-item.delete:hover{background:rgba(229,57,53,.08)}.context-menu-item .context-icon{font-size:1rem;font-weight:600;line-height:1}.category-modal,.confirm-modal{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center}.category-modal-backdrop,.confirm-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px)}.category-modal-content{position:relative;background:var(--card-bg);border-radius:var(--radius-md);padding:24px;min-width:280px;max-width:90vw;box-shadow:0 20px 60px rgba(0,0,0,.2)}.category-modal-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:16px;text-align:center}.category-modal-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.category-modal-item{padding:12px 16px;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);background:rgba(0,0,0,0);font-size:.95rem;color:var(--text-primary);cursor:pointer;transition:background .15s ease,border-color .15s ease;text-align:left}.category-modal-item:hover{background:rgba(0,0,0,.04);border-color:var(--text-primary)}.category-modal-divider{height:1px;background:rgba(0,0,0,.08);margin:8px 0}.category-modal-new{width:100%;padding:12px 16px;margin-bottom:8px;border:1px dashed rgba(0,0,0,.2);border-radius:var(--radius-sm);background:rgba(0,0,0,0);font-size:.95rem;color:var(--text-secondary);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease;text-align:left}.category-modal-new:hover{border-color:var(--text-primary);color:var(--text-primary);background:rgba(0,0,0,.02)}.category-modal-cancel{width:100%;padding:10px;border:none;background:rgba(0,0,0,0);font-size:.9rem;color:var(--text-secondary);cursor:pointer;transition:color .15s ease}.category-modal-cancel:hover{color:var(--text-primary)}.category-new-form{margin-bottom:8px}.category-new-input{width:100%;padding:12px 14px;border:1px solid rgba(0,0,0,.15);border-radius:var(--radius-sm);font-size:.95rem;color:var(--text-primary);background:var(--card-bg);margin-bottom:12px;transition:border-color .15s ease}.category-new-input:focus{outline:none;border-color:var(--text-primary)}.category-new-input::placeholder{color:var(--text-secondary);opacity:.6}.category-new-actions{display:flex;gap:8px}.category-new-back,.category-new-create{flex:1;padding:10px 16px;border:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s ease}.category-new-back{background:rgba(0,0,0,.06);color:var(--text-secondary)}.category-new-back:hover{background:rgba(0,0,0,.1)}.category-new-create{background:var(--text-primary);color:var(--card-bg)}.category-new-create:hover{background:#333}.confirm-modal-content{position:relative;background:var(--card-bg);border-radius:var(--radius-md);padding:24px;min-width:280px;max-width:90vw;box-shadow:0 20px 60px rgba(0,0,0,.2);text-align:center}.confirm-modal-message{font-size:1rem;color:var(--text-primary);margin-bottom:20px}.confirm-modal-actions{display:flex;gap:12px}.confirm-modal-cancel,.confirm-modal-confirm{flex:1;padding:12px 16px;border:none;border-radius:var(--radius-sm);font-size:.95rem;font-weight:500;cursor:pointer;transition:background .15s ease,transform .1s ease}.confirm-modal-cancel:active,.confirm-modal-confirm:active{transform:scale(0.98)}.confirm-modal-cancel{background:rgba(0,0,0,.06);color:var(--text-secondary)}.confirm-modal-cancel:hover{background:rgba(0,0,0,.1)}.confirm-modal-confirm{background:var(--text-primary);color:var(--card-bg)}.confirm-modal-confirm:hover{background:#333}.fab-write{position:fixed;bottom:32px;right:32px;width:52px;height:52px;border-radius:var(--radius-md);background:var(--card-bg);color:var(--text-primary);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:500;box-shadow:0 2px 8px var(--shadow-light),0 8px 24px var(--shadow-medium),0 0 0 1px rgba(0,0,0,.04);transition:transform .2s ease,box-shadow .2s ease}.fab-write:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-light),0 12px 32px var(--shadow-medium),0 0 0 1px rgba(0,0,0,.04)}.fab-write:active{transform:translateY(0) scale(0.98)}.fab-write svg{width:22px;height:22px}.editor-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.editor-overlay.active{opacity:1;visibility:visible}.editor-panel{position:fixed;bottom:0;left:50%;margin-left:-320px;width:100%;max-width:640px;min-height:50vh;max-height:85vh;background:var(--card-bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:1001;transform:translateY(100%);visibility:hidden;box-shadow:0 -8px 32px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.05)}.editor-panel.active{visibility:visible}@media(max-width: 680px){.editor-panel{left:0;margin-left:0;max-width:100%;border-radius:var(--radius-md) var(--radius-md) 0 0}}.editor-panel-inner{display:flex;flex-direction:column;height:100%;max-height:85vh}.editor-row{display:flex;align-items:center;justify-content:center;padding:12px 20px;flex-shrink:0}.editor-header{justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(0,0,0,.06)}.editor-close{width:32px;height:32px;border:none;background:rgba(0,0,0,0);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:color .2s ease}.editor-close:hover{color:var(--text-primary)}.editor-title{font-size:.9rem;font-weight:600;color:var(--text-primary);letter-spacing:-0.01em}.editor-actions{display:flex;gap:8px}.editor-draft{padding:8px 14px;background:rgba(0,0,0,0);color:var(--text-secondary);border:none;border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;cursor:pointer;transition:color .2s ease}.editor-draft:hover{color:var(--text-primary)}.editor-draft:disabled{opacity:.6;cursor:default}.editor-submit{padding:8px 16px;background:var(--text-primary);color:var(--card-bg);border:none;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;cursor:pointer;transition:opacity .2s ease,background .2s ease}.editor-submit:hover{opacity:.85}.editor-submit:disabled{cursor:not-allowed;opacity:.6}.editor-submit.loading{background:var(--text-secondary);pointer-events:none}.editor-tabs-row{border-bottom:1px solid rgba(0,0,0,.06)}.editor-tabs{display:flex;gap:4px}.editor-category-row{border-bottom:1px solid rgba(0,0,0,.06)}.custom-select{position:relative;min-width:160px}.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 14px;background:rgba(0,0,0,.04);border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;color:var(--text-primary);cursor:pointer;transition:background .2s ease}.custom-select-trigger:hover{background:rgba(0,0,0,.06)}.custom-select.open .custom-select-trigger{background:rgba(0,0,0,.08)}.custom-select-arrow{transition:transform .2s ease;color:var(--text-secondary)}.custom-select.open .custom-select-arrow{transform:rotate(180deg)}.custom-select-dropdown{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);min-width:100%;background:var(--card-bg);border-radius:var(--radius-sm);box-shadow:0 4px 12px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.05);z-index:100;opacity:0;visibility:hidden;transform:translateX(-50%) translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease;max-height:200px;overflow-y:auto}.custom-select-dropdown.open{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.custom-select-option{padding:10px 14px;font-size:.85rem;color:var(--text-primary);cursor:pointer;transition:background .15s ease;white-space:nowrap}.custom-select-option:hover{background:rgba(0,0,0,.04)}.custom-select-option.selected{background:rgba(0,0,0,.06);font-weight:600}.category-select{padding:8px 12px;border:none;background:rgba(0,0,0,.04);border-radius:var(--radius-sm);font-size:.8rem;color:var(--text-primary);cursor:pointer;outline:none}.category-select:hover{background:rgba(0,0,0,.06)}.editor-tab{padding:10px 16px;background:none;border:none;font-size:.8rem;font-weight:500;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:color .2s ease,background .2s ease}.editor-tab:hover{color:var(--text-primary)}.editor-tab.active{color:var(--text-primary);background:rgba(0,0,0,.04)}.editor-content{flex:1;overflow-y:auto;padding:24px}.editor-content::-webkit-scrollbar{width:6px}.editor-content::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.editor-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,.1);border-radius:3px}.editor-type{display:none !important}.editor-type.active{display:flex !important;flex-direction:column}.blog-editor{gap:12px;height:100%}.blog-title-input{width:100%;padding:8px 0;font-size:1.25rem;font-weight:600;border:none;background:rgba(0,0,0,0);outline:none;letter-spacing:-0.02em}.blog-title-input::placeholder{color:var(--text-secondary);font-weight:500}.format-toolbar{display:flex;align-items:center;gap:4px;padding:8px 0}.format-btn{width:32px;height:32px;border:none;background:rgba(0,0,0,0);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:.85rem;transition:background .15s ease,color .15s ease}.format-btn:hover{background:rgba(0,0,0,.05);color:var(--text-primary)}.format-btn strong,.format-btn em,.format-btn u{font-size:.9rem}.format-select{padding:6px 10px;border:none;background:rgba(0,0,0,0);font-size:.8rem;color:var(--text-secondary);cursor:pointer;outline:none;border-radius:var(--radius-sm)}.format-select:hover{background:rgba(0,0,0,.05)}.format-divider{width:1px;height:20px;background:rgba(0,0,0,.08);margin:0 4px}.blog-image-delete{display:none !important}.blog-content-area{flex:1;min-height:200px;padding:12px 0;font-size:.95rem;line-height:1.7;outline:none;color:var(--text-primary)}.blog-content-area .blog-image-delete{display:flex !important}.blog-content-area:empty::before{content:attr(placeholder);color:var(--text-secondary);pointer-events:none}.blog-content-area .blog-image-wrapper{position:relative;display:inline-block;max-width:100%;margin:12px 0;cursor:pointer}.blog-content-area .blog-image-wrapper img.blog-inline-image{max-width:100%;border-radius:var(--radius-sm);display:block;margin:0}.blog-content-area .blog-image-wrapper .blog-image-delete{position:absolute;top:8px;right:8px;width:28px;height:28px;border:none;background:rgba(0,0,0,.6);color:#fff;border-radius:50%;cursor:pointer;font-size:1.1rem;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .2s ease,background .2s ease}.blog-content-area .blog-image-wrapper .blog-image-delete:hover{background:rgba(0,0,0,.85)}.blog-content-area .blog-image-wrapper.show-delete .blog-image-delete{opacity:1;visibility:visible}.blog-blocks{display:flex;flex-direction:column;gap:12px;min-height:180px}.blog-block{position:relative;border-radius:var(--radius-sm)}.blog-block:hover .block-remove{opacity:1}.block-remove{position:absolute;top:8px;right:8px;width:26px;height:26px;border:none;background:var(--card-bg);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease,background .2s ease;box-shadow:0 2px 8px var(--shadow-light);z-index:10}.block-remove:hover{background:var(--accent-red);color:var(--card-bg)}.text-block textarea{width:100%;min-height:100px;padding:14px 16px;border:none;background:rgba(0,0,0,0);font-size:.9rem;line-height:1.7;resize:vertical;outline:none;font-family:inherit;color:var(--text-primary)}.text-block textarea::placeholder{color:var(--text-secondary)}.image-block .image-upload-area{position:relative;min-height:120px;border:1px dashed rgba(0,0,0,.15);border-radius:var(--radius-sm);cursor:pointer;overflow:hidden;background:var(--card-bg);transition:border-color .2s ease,background .2s ease}.image-block .image-upload-area:hover{border-color:var(--text-secondary);background:var(--bg-color)}.image-block .image-upload-area input[type=file]{display:none}.image-block .upload-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-secondary)}.image-block .upload-placeholder svg{opacity:.4}.image-block .upload-placeholder p{font-size:.8rem}.image-block .image-preview{display:none}.image-block .image-preview.has-image{display:block}.image-block .image-preview img{width:100%;display:block;border-radius:var(--radius-sm)}.blog-toolbar{display:flex;gap:8px}.toolbar-btn{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--bg-color);border:none;border-radius:var(--radius-sm);font-size:.8rem;color:var(--text-secondary);cursor:pointer;transition:background .2s ease,color .2s ease}.toolbar-btn:hover{background:var(--text-primary);color:var(--card-bg)}.toolbar-btn span{font-weight:500}.clip-editor{gap:12px}.clip-image-upload{position:relative;min-height:140px;border:1px dashed rgba(0,0,0,.12);border-radius:var(--radius-md);cursor:pointer;overflow:hidden;transition:border-color .2s ease}.clip-image-upload:hover{border-color:rgba(0,0,0,.25)}.clip-image-upload .clip-file-input{display:none}.clip-upload-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-secondary)}.clip-upload-placeholder svg{opacity:.3}.clip-upload-placeholder p{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.clip-preview{display:none;position:relative;padding:8px}.clip-preview.has-image{display:block}.clip-preview img{width:100%;max-height:300px;object-fit:contain;display:block;border-radius:var(--radius-sm)}.clip-remove-image{position:absolute;top:16px;right:16px;width:28px;height:28px;border:none;background:rgba(0,0,0,.6);color:#fff;border-radius:50%;cursor:pointer;font-size:1.1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.clip-remove-image:hover{background:rgba(0,0,0,.8)}.clip-memo{width:100%;min-height:120px;padding:12px 0;border:none;background:rgba(0,0,0,0);font-size:.95rem;line-height:1.7;resize:none;outline:none;font-family:inherit;color:var(--text-primary)}.clip-memo::placeholder{color:var(--text-secondary)}.link-editor{gap:16px}.link-image-upload{position:relative;min-height:140px;border:1px dashed rgba(0,0,0,.12);border-radius:var(--radius-md);cursor:pointer;overflow:hidden;transition:border-color .2s ease}.link-image-upload:hover{border-color:rgba(0,0,0,.25)}.link-image-upload .link-file-input{display:none}.link-upload-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-secondary)}.link-upload-placeholder svg{opacity:.3}.link-upload-placeholder p{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.link-preview{display:none;position:relative;padding:8px}.link-preview.has-image{display:block}.link-preview img{width:100%;max-height:300px;object-fit:contain;display:block;border-radius:var(--radius-sm)}.link-remove-image{position:absolute;top:16px;right:16px;width:28px;height:28px;border:none;background:rgba(0,0,0,.6);color:#fff;border-radius:50%;cursor:pointer;font-size:1.1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.link-remove-image:hover{background:rgba(0,0,0,.8)}.link-url-input{width:100%;padding:14px 16px;border:1px solid rgba(0,0,0,.12);border-radius:var(--radius-sm);font-size:.95rem;color:var(--text-primary);background:var(--card-bg);transition:border-color .2s ease}.link-url-input:focus{outline:none;border-color:var(--text-primary)}.link-url-input::placeholder{color:var(--text-secondary);opacity:.6}@media(max-width: 768px){.header{top:20px}.canvas-indicator{bottom:100px;right:16px;font-size:.7rem}.stack-card.image-card{padding:0;min-height:0;width:240px;max-width:100%;height:auto;background:rgba(0,0,0,0);box-shadow:none}.stack-card.image-card .card-image{width:100%;height:auto;margin:0;border-radius:var(--radius-md);overflow:hidden;box-shadow:0 2px 8px var(--shadow-light),0 8px 24px var(--shadow-medium)}.stack-card.image-card .card-image img{display:block;width:100%;height:auto;max-height:none;border-radius:var(--radius-md)}.floating-card.image-card{padding:0;width:280px;max-width:100%;min-width:0;background:rgba(0,0,0,0);box-shadow:none}.floating-card.image-card .card-image{display:block;width:100%;height:auto;border-radius:var(--radius-md);overflow:hidden;box-shadow:0 2px 8px var(--shadow-light),0 8px 24px var(--shadow-medium)}.floating-card.image-card .card-image img{display:block;width:100%;height:auto;max-height:none;border-radius:var(--radius-md)}.card-detail-memo{width:240px;min-height:160px;padding:20px}.memo-title{font-size:1rem}.memo-content{font-size:.85rem}.edit-toolbar{display:none !important}.fab-write{bottom:24px;right:24px;width:48px;height:48px}.editor-panel{max-height:90vh}.editor-row{padding:10px 16px}.editor-header{padding:14px 16px}.editor-submit{padding:8px 16px}.editor-tab{padding:10px 14px;font-size:.8rem}.editor-content{padding:16px}.blog-title-input{padding:10px 0;font-size:1rem}.blog-toolbar{flex-wrap:wrap}.toolbar-btn{flex:1;justify-content:center;padding:10px 12px}.clip-image-upload{min-height:180px}}@media(max-width: 480px){.stack-card{width:160px;max-width:100%;min-height:0;padding:12px}.floating-card{width:200px;max-width:100%;min-width:0}.floating-card.image-card .card-image img{width:100%;height:auto;max-height:none;border-radius:var(--radius-md)}.floating-card.link-card .link-image{max-width:140px;max-height:140px}.floating-card.link-card .link-badge{width:18px;height:18px;bottom:4px;right:4px}.floating-card.link-card .link-badge svg{width:10px;height:10px}.card-detail-memo{width:200px;min-height:140px;padding:16px}.memo-title{font-size:.9rem;margin-bottom:12px}.memo-content{font-size:.8rem}.fab-write{bottom:20px;right:20px;width:44px;height:44px;border-radius:var(--radius-sm)}.fab-write svg{width:18px;height:18px}.editor-panel{max-height:95vh}.editor-row{padding:8px 12px}.editor-header{padding:12px}.editor-tab{padding:8px 12px;font-size:.75rem}}.auth-buttons{position:fixed;top:24px;right:24px;z-index:100;display:flex;align-items:center;gap:12px}.auth-user-info{font-size:.85rem;color:var(--text-secondary)}.auth-btn{padding:8px 16px;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background .2s ease,color .2s ease}.auth-btn.login{background:var(--text-primary);color:var(--card-bg)}.auth-btn.login:hover{opacity:.85}.auth-btn.logout{background:rgba(0,0,0,.06);color:var(--text-secondary)}.auth-btn.logout:hover{background:rgba(0,0,0,.1);color:var(--text-primary)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-color)}.auth-container{width:100%;max-width:400px}.auth-header{text-align:center;margin-bottom:32px}.auth-logo{font-size:1.5rem;font-weight:700;color:var(--text-primary);text-decoration:none;letter-spacing:-0.02em}.auth-logo:hover{opacity:.8}.auth-subtitle{font-size:.85rem;color:var(--text-secondary);margin-top:4px}.auth-card{background:var(--card-bg);border-radius:var(--radius-lg);padding:32px;box-shadow:0 2px 8px var(--shadow-light),0 8px 24px var(--shadow-medium)}.auth-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);text-align:center;margin-bottom:24px}.auth-alert{padding:12px 16px;background:rgba(229,57,53,.1);border-radius:var(--radius-sm);color:#e53935;font-size:.85rem;margin-bottom:20px;text-align:center}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-label{font-size:.85rem;font-weight:500;color:var(--text-primary)}.auth-input{padding:12px 14px;border:1px solid rgba(0,0,0,.12);border-radius:var(--radius-sm);font-size:.95rem;color:var(--text-primary);background:var(--card-bg);transition:border-color .2s ease}.auth-input:focus{outline:none;border-color:var(--text-primary)}.auth-input::placeholder{color:var(--text-secondary);opacity:.6}.auth-submit{margin-top:8px;padding:14px;background:var(--text-primary);color:var(--card-bg);border:none;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s ease}.auth-submit:hover{opacity:.85}.auth-footer{margin-top:20px;text-align:center;font-size:.85rem;color:var(--text-secondary)}.auth-footer p{margin:0}.auth-link{color:var(--text-primary);font-weight:500;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-back{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px;font-size:.85rem;color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.auth-back:hover{color:var(--text-primary)}.fab-admin{position:fixed;bottom:100px;right:32px;width:48px;height:48px;border-radius:var(--radius-md);background:var(--card-bg);color:var(--text-primary);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:500;box-shadow:0 2px 8px var(--shadow-light),0 8px 24px var(--shadow-medium),0 0 0 1px rgba(0,0,0,.04);transition:transform .2s ease,box-shadow .2s ease}.fab-admin:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-light),0 12px 32px var(--shadow-medium),0 0 0 1px rgba(0,0,0,.04)}.fab-admin:active{transform:translateY(0) scale(0.98)}.admin-panel{position:fixed;bottom:0;left:50%;margin-left:-320px;width:100%;max-width:640px;min-height:50vh;max-height:85vh;background:var(--card-bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:1001;transform:translateY(100%);visibility:hidden;box-shadow:0 -8px 32px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.05)}.admin-panel.active{visibility:visible}@media(max-width: 680px){.admin-panel{left:0;margin-left:0;max-width:100%;border-radius:var(--radius-md) var(--radius-md) 0 0}}.admin-panel-inner{display:flex;flex-direction:column;height:100%;max-height:85vh}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(0,0,0,.06);flex-shrink:0}.admin-close{width:32px;height:32px;border:none;background:rgba(0,0,0,0);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:color .2s ease}.admin-close:hover{color:var(--text-primary)}.admin-title{font-size:.9rem;font-weight:600;color:var(--text-primary);letter-spacing:-0.01em}.admin-actions{width:32px}.admin-content{flex:1;overflow-y:auto;padding:16px 20px}.admin-content::-webkit-scrollbar{width:6px}.admin-content::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.admin-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,.1);border-radius:3px}.admin-loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--text-secondary);font-size:.9rem}.admin-user-list{display:flex;flex-direction:column;gap:12px}.admin-user-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:rgba(0,0,0,.02);border-radius:var(--radius-sm);transition:background .2s ease}.admin-user-item:hover{background:rgba(0,0,0,.04)}.admin-user-info{display:flex;flex-direction:column;gap:2px}.admin-user-name{font-size:.9rem;font-weight:500;color:var(--text-primary)}.admin-user-email{font-size:.8rem;color:var(--text-secondary)}.admin-user-actions{display:flex;align-items:center;gap:8px}.admin-user-role{padding:4px 10px;font-size:.75rem;font-weight:600;border-radius:12px}.admin-user-role.admin{background:var(--accent-green);color:#000}.admin-user-role.member{background:rgba(0,0,0,.08);color:var(--text-secondary)}.admin-btn{padding:6px 12px;border:none;border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;cursor:pointer;transition:background .2s ease,color .2s ease}.admin-btn.promote{background:rgba(0,0,0,.06);color:var(--text-secondary)}.admin-btn.promote:hover{background:var(--accent-green);color:#000}.admin-btn.demote{background:rgba(0,0,0,.06);color:var(--text-secondary)}.admin-btn.demote:hover{background:rgba(0,0,0,.12);color:var(--text-primary)}.admin-btn.delete{background:rgba(0,0,0,0);color:var(--text-secondary)}.admin-btn.delete:hover{background:rgba(229,57,53,.1);color:#e53935}.admin-error{text-align:center;padding:40px;color:var(--text-secondary);font-size:.9rem}.admin-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.admin-overlay.active{opacity:1;visibility:visible}.auth-desktop{display:flex;align-items:center;gap:12px}.auth-mobile{display:none;position:relative}.auth-mobile-trigger{width:36px;height:36px;padding:0;border:none;background:var(--card-bg);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.1)}.auth-mobile-trigger .auth-avatar{width:36px;height:36px}.auth-mobile-trigger .auth-initials{width:36px;height:36px;font-size:.8rem}.auth-mobile-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:140px;background:var(--card-bg);border-radius:var(--radius-sm);box-shadow:0 4px 16px rgba(0,0,0,.12);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease;z-index:200;overflow:hidden}.auth-mobile.open .auth-mobile-menu{opacity:1;visibility:visible;transform:translateY(0)}.auth-mobile-item{display:block;width:100%;padding:12px 16px;border:none;background:rgba(0,0,0,0);text-align:left;font-size:.85rem;color:var(--text-primary);cursor:pointer;transition:background .2s ease}.auth-mobile-item:hover{background:rgba(0,0,0,.04)}.auth-mobile-item.logout{color:var(--text-secondary);border-top:1px solid rgba(0,0,0,.06)}.auth-user-btn{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--card-bg);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s ease}.auth-user-btn:hover{background:rgba(0,0,0,.04)}.auth-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.auth-initials{width:28px;height:28px;border-radius:50%;background:var(--accent-green);color:#000;font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center}.auth-user-name{font-size:.85rem;font-weight:500;color:var(--text-primary)}.edit-toolbar{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:8px;background:var(--card-bg);border-radius:var(--radius-md);box-shadow:0 4px 16px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.04);z-index:500}.edit-toolbar-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s ease,color .2s ease}.edit-toolbar-btn.edit-mode-btn{background:rgba(0,0,0,0);color:var(--text-secondary)}.edit-toolbar-btn.edit-mode-btn:hover{background:rgba(0,0,0,.06);color:var(--text-primary)}.edit-toolbar-btn.save-btn{background:var(--accent-green);color:#000}.edit-toolbar-btn.save-btn:hover{background:#b8ef00}.edit-toolbar-btn.cancel-btn{background:rgba(0,0,0,.06);color:var(--text-secondary)}.edit-toolbar-btn.cancel-btn:hover{background:rgba(0,0,0,.1);color:var(--text-primary)}.canvas.edit-mode .folder-stack.draggable,.canvas.edit-mode .floating-card.draggable{cursor:grab}.canvas.edit-mode .folder-stack.draggable:active,.canvas.edit-mode .floating-card.draggable:active{cursor:grabbing}.canvas.edit-mode .folder-stack.draggable{outline:2px dashed rgba(0,0,0,.1);outline-offset:8px;border-radius:var(--radius-md)}.canvas.edit-mode .floating-card.draggable{outline:2px dashed rgba(0,0,0,.1);outline-offset:4px}.account-panel{position:fixed;bottom:0;left:50%;margin-left:-240px;width:100%;max-width:480px;min-height:50vh;max-height:85vh;background:var(--card-bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:1001;transform:translateY(100%);visibility:hidden;box-shadow:0 -8px 32px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.05)}.account-panel.active{visibility:visible}@media(max-width: 520px){.account-panel{left:0;margin-left:0;max-width:100%;border-radius:var(--radius-md) var(--radius-md) 0 0}}.account-panel-inner{display:flex;flex-direction:column;height:100%;max-height:85vh}.account-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(0,0,0,.06);flex-shrink:0}.account-close{width:32px;height:32px;border:none;background:rgba(0,0,0,0);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:color .2s ease}.account-close:hover{color:var(--text-primary)}.account-title{font-size:.9rem;font-weight:600;color:var(--text-primary);letter-spacing:-0.01em}.account-actions{width:32px}.account-content{flex:1;overflow-y:auto;padding:24px 20px;display:flex;flex-direction:column;gap:20px}.account-avatar-section{display:flex;flex-direction:column;align-items:center;gap:12px}.account-avatar-preview{width:80px;height:80px;border-radius:50%;overflow:hidden;background:var(--accent-green);display:flex;align-items:center;justify-content:center}.account-avatar-preview .avatar-image{width:100%;height:100%;object-fit:cover}.account-avatar-preview .avatar-initials{font-size:1.5rem;font-weight:600;color:#000}.account-avatar-btn{padding:8px 16px;border:1px solid rgba(0,0,0,.12);border-radius:var(--radius-sm);background:rgba(0,0,0,0);font-size:.85rem;color:var(--text-secondary);cursor:pointer;transition:border-color .2s ease,color .2s ease}.account-avatar-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.account-field{display:flex;flex-direction:column;gap:6px}.account-label{font-size:.85rem;font-weight:500;color:var(--text-primary)}.account-input{padding:12px 14px;border:1px solid rgba(0,0,0,.12);border-radius:var(--radius-sm);font-size:.95rem;color:var(--text-primary);background:var(--card-bg);transition:border-color .2s ease}.account-input:focus{outline:none;border-color:var(--text-primary)}.account-input::placeholder{color:var(--text-secondary);opacity:.6}.account-input.readonly{background:rgba(0,0,0,.02);color:var(--text-secondary);cursor:not-allowed}.account-save-btn{margin-top:8px;padding:14px;background:var(--text-primary);color:var(--card-bg);border:none;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s ease}.account-save-btn:hover{opacity:.85}.account-drafts-section{margin-top:32px;padding-top:24px;border-top:1px solid rgba(0,0,0,.08)}.account-section-title{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-bottom:16px}.account-drafts-list{display:flex;flex-direction:column;gap:12px}.drafts-empty{font-size:.85rem;color:var(--text-secondary);text-align:center;padding:20px 0}.draft-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;background:rgba(0,0,0,.03);border-radius:var(--radius-sm)}.draft-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.draft-type-badge{display:inline-block;width:fit-content;padding:2px 8px;font-size:.7rem;font-weight:600;border-radius:4px}.draft-type-badge.blog{background:var(--accent-green);color:#1a1a1a}.draft-type-badge.clip{background:var(--text-secondary);color:var(--card-bg)}.draft-title{font-size:.9rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draft-date{font-size:.75rem;color:var(--text-secondary)}.draft-actions{display:flex;gap:8px;flex-shrink:0}.draft-continue-btn{padding:6px 12px;background:var(--text-primary);color:var(--card-bg);border:none;border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;cursor:pointer;transition:opacity .2s ease}.draft-continue-btn:hover{opacity:.85}.draft-delete-btn{padding:6px 12px;background:rgba(0,0,0,0);color:var(--text-secondary);border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s ease}.draft-delete-btn:hover{color:#e53935;border-color:#e53935}.account-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.account-overlay.active{opacity:1;visibility:visible}@media screen and (max-width: 768px){.auth-buttons{top:16px;right:16px;gap:8px}.auth-desktop{display:none !important}.auth-mobile{display:block !important}.auth-btn.login{padding:8px 14px;font-size:.85rem}.fab-admin{bottom:80px;right:20px;width:44px;height:44px;border-radius:var(--radius-sm)}.admin-panel{max-height:90vh}.admin-user-item{flex-direction:column;align-items:flex-start;gap:12px}.admin-user-actions{width:100%;justify-content:flex-end}.edit-toolbar{bottom:16px;padding:6px}.edit-toolbar-btn{padding:8px 12px;font-size:.85rem}.edit-toolbar-btn span{display:none}.account-panel{max-height:90vh}}

/* link-bar: 썸네일 없는 링크용 (텍스트 폴백) */
.link-icon .link-icon-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:0.65rem;font-weight:600;color:var(--text-secondary);text-align:center;line-height:1.2;padding:4px;word-break:break-word}

/* 아카이브 상단: 좌 Back to Bada / 가운데 로고·태그라인 / 우 균형(그리드) */
.header.header--archive{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px 16px;flex-direction:row}
.header.header--archive .header-back-slot{justify-self:start;pointer-events:auto;min-width:0}
.header.header--archive .header-back-slot-spacer{justify-self:end;padding:0;min-height:1px}
.header.header--archive .header-center-block{grid-column:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;pointer-events:auto;min-width:0}
.header.header--archive .header-center-block:empty{min-height:0}
.header-back-to{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:100%;text-decoration:none;color:inherit;transition:opacity .2s ease}
.header-back-to:hover{opacity:.75}
.header-back-logo{display:block;height:28px;width:auto;max-width:120px;object-fit:contain;margin:0;flex-shrink:0}
.header-back-brand{font-size:1.125rem;font-weight:600;letter-spacing:-0.02em;color:var(--text-primary);line-height:1.2}
.header-back-caption{font-size:.7rem;font-weight:500;letter-spacing:-0.01em;color:var(--text-secondary);line-height:1.25}
@media(max-width:480px){.header.header--archive{padding:0 12px;gap:6px 10px}.header-back-logo{height:24px;max-width:100px}.header-back-brand{font-size:1rem}.header-back-caption{font-size:.65rem}}
@media(min-width:481px){.header-back-logo{height:32px;max-width:140px}}

/* 블로그·텍스트 클립: 미리본문 다음 줄에 작성자(하단 고정 해제) */
.stack-card.text-card,.stack-card.sticky-card,.floating-card.text-card,.floating-card.sticky-card{display:flex;flex-direction:column;justify-content:flex-start}
.stack-card.text-card .card-author,.stack-card.sticky-card .card-author,.floating-card.text-card .card-author,.floating-card.sticky-card .card-author{position:static;margin-top:10px;align-self:flex-start;margin-bottom:0}

/* 에디터: 이미지 압축 진행(헤더 가운데) */
.editor-header{display:flex;align-items:center;gap:8px}
.editor-compress-status{flex:1;min-width:0;font-size:.75rem;font-weight:500;color:var(--text-secondary);text-align:center;line-height:1.3}
.editor-compress-status[hidden]{display:none !important}

/* 블로그 텍스트 카드: 커버 썸네일 (본문 이미지가 있을 때) */
.stack-card.text-card .card-image-blog-thumb{margin:-20px -20px 12px -20px;width:calc(100% + 40px);height:auto;overflow:hidden;border-radius:var(--radius-md) var(--radius-md) 0 0}
.stack-card.text-card .card-image-blog-thumb img{width:100%;height:auto;display:block;vertical-align:bottom;border-radius:var(--radius-md) var(--radius-md) 0 0}
.floating-card.text-card .card-image-blog-thumb{margin:-16px -16px 12px -16px;width:calc(100% + 32px);height:auto;border-radius:var(--radius-md) var(--radius-md) 0 0;overflow:hidden}
.floating-card.text-card .card-image-blog-thumb img{width:100%;height:auto;display:block;vertical-align:bottom;border-radius:var(--radius-md) var(--radius-md) 0 0}
@media(max-width:480px){.stack-card.text-card .card-image-blog-thumb{margin:-12px -12px 10px -12px;width:calc(100% + 24px);height:auto}}

/* 한글 IME: contenteditable:empty + ::before placeholder 가 문단·첫 입력 조합을 깨뜨림 → :empty 가상요소 제거, 비어 있을 때만 클래스로 안내 */
.blog-content-area:empty::before{content:none!important}
.blog-content-area{position:relative}
.blog-content-area.blog-content--show-ph:not(:focus)::before{content:attr(data-placeholder);color:var(--text-secondary);pointer-events:none;position:absolute;left:0;top:12px;font-size:.95rem;line-height:1.7}

/* 아카이브: 첫 화면만 반응형 격자(스택·플로팅 슬롯), 스택 클릭·펼침 GSAP 유지 */
.archive-grid-viewport{position:fixed;inset:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;cursor:default;background-color:var(--bg-color);background-image:linear-gradient(rgba(0,0,0,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.045) 1px,transparent 1px);background-size:20px 20px;background-attachment:local}
.archive-grid-viewport.is-modal-open{cursor:default}
.archive-grid-canvas{position:relative;width:100%;min-height:100%;transform:none;will-change:auto}
.archive-canvas--grid{position:relative;left:auto;top:auto;width:100%;max-width:1400px;margin:0 auto;padding:calc(132px + env(safe-area-inset-top,0px)) 16px calc(100px + env(safe-area-inset-bottom,0px));box-sizing:border-box}
.archive-stacks-grid{display:grid;grid-template-columns:1fr;gap:56px 28px;justify-items:center;align-items:center;width:100%}
@media(min-width:640px){.archive-stacks-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.archive-stacks-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1280px){.archive-stacks-grid{grid-template-columns:repeat(4,1fr)}}
.archive-canvas--grid .folder-stack{position:relative !important;left:auto !important;top:auto !important;transform:translate(0,0);cursor:pointer;width:auto;max-width:100%;padding-top:40px;margin-bottom:8px;box-sizing:border-box}
.archive-canvas--grid .stack-cards{min-height:240px;padding-bottom:48px;box-sizing:content-box;margin-left:auto;margin-right:auto;overflow:visible}
/* 접힌 스택: .text-card 가 minified CSS 에서 position:relative 로 덮어써 덱이 깨짐 → 격자+접힌 상태에서만 absolute 고정 */
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card{position:absolute !important;top:0;left:0;transform-origin:50% 0}
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card:nth-child(1){z-index:10;transform:translate3d(0,0,0) scale(1) rotate(-0.4deg);opacity:1}
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card:nth-child(2){z-index:9;transform:translate3d(5px,7px,0) scale(0.98) rotate(0.35deg);opacity:0.88}
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card:nth-child(3){z-index:8;transform:translate3d(10px,14px,0) scale(0.96) rotate(-0.35deg);opacity:0.76}
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card:nth-child(4){z-index:7;transform:translate3d(15px,21px,0) scale(0.94) rotate(0.35deg);opacity:0.64}
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card:nth-child(5){z-index:6;transform:translate3d(20px,28px,0) scale(0.92) rotate(-0.35deg);opacity:0.52}
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card:nth-child(6){z-index:5;transform:translate3d(25px,35px,0) scale(0.90) rotate(0.35deg);opacity:0.44}
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card:nth-child(7){z-index:4;transform:translate3d(30px,42px,0) scale(0.88) rotate(-0.35deg);opacity:0.36}
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card:nth-child(8){z-index:3;transform:translate3d(35px,49px,0) scale(0.86) rotate(0.35deg);opacity:0.28}
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card:nth-child(9){z-index:2;transform:translate3d(40px,56px,0) scale(0.84) rotate(-0.35deg);opacity:0.22}
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card:nth-child(10){z-index:1;transform:translate3d(45px,63px,0) scale(0.82) rotate(0.35deg);opacity:0.18}
.archive-canvas--grid .folder-stack[data-expanded="false"] .stack-cards > .stack-card:nth-child(n+11){z-index:0;transform:translate3d(50px,70px,0) scale(0.80) rotate(-0.35deg);opacity:0.14}
@media(max-width:480px){.archive-canvas--grid .stack-cards{min-height:220px;padding-bottom:40px}}
.archive-floating-cards-grid{display:grid;grid-template-columns:1fr;gap:28px 20px;justify-items:center;align-items:center;width:100%;margin-top:48px;padding-top:32px;border-top:1px solid rgba(0,0,0,.08)}
@media(min-width:640px){.archive-floating-cards-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.archive-floating-cards-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1280px){.archive-floating-cards-grid{grid-template-columns:repeat(4,1fr)}}
.archive-canvas--grid .archive-floating-cards-grid .floating-card:not(.link-card){position:relative !important;left:auto !important;top:auto !important;transform:translate(0,0);margin:0;justify-self:center}
.archive-canvas--grid .stack-card{width:240px;max-width:min(240px,100%);min-width:0;min-height:0;height:auto;box-sizing:border-box}
.archive-canvas--grid .stack-card.text-card .card-content,.archive-canvas--grid .floating-card.text-card .card-content{flex:0 1 auto}
.archive-canvas--grid .floating-card.text-card,.archive-canvas--grid .floating-card.sticky-card,.archive-canvas--grid .floating-card.image-card{width:280px;max-width:min(280px,100%);min-width:0}
.archive-canvas--grid .stack-card.image-card{width:240px;max-width:min(240px,100%)}
.archive-canvas--grid .stack-card.image-card,.archive-canvas--grid .floating-card.image-card{min-height:0!important;height:auto;display:block}
.archive-canvas--grid .stack-card.image-card .card-image,.archive-canvas--grid .floating-card.image-card .card-image{display:block;line-height:0;margin:0;width:100%;height:auto;overflow:hidden;border-radius:var(--radius-md)}
.archive-canvas--grid .stack-card.image-card .card-image img,.archive-canvas--grid .floating-card.image-card .card-image img{display:block;width:100%;height:auto;max-height:none;border-radius:var(--radius-md);margin:0;vertical-align:bottom}
@media(max-width:480px){.archive-canvas--grid .stack-card{width:160px;max-width:min(160px,100%)}.archive-canvas--grid .floating-card.text-card,.archive-canvas--grid .floating-card.sticky-card,.archive-canvas--grid .floating-card.image-card{width:200px;max-width:min(200px,100%)}.archive-canvas--grid .stack-card.image-card{width:160px;max-width:min(160px,100%)}}
.archive-grid-viewport ~ .canvas-indicator{display:none !important}
.archive-grid-viewport ~ .edit-toolbar{display:none !important}

/* 닫힌 편집/계정/관리자 오버레이가 visibility:hidden 인데도 히트만 살아 본문 전역 클릭을 막는 경우 대비 */
.editor-overlay,
.admin-overlay,
.account-overlay {
  pointer-events: none;
}
.editor-overlay.active,
.admin-overlay.active,
.account-overlay.active {
  pointer-events: auto;
}

/* Popolb 아카이브 블로그 에디터 — v2 content_blocks 툴바 */
.archive-blog-block-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 8px;
}
.archive-blog-block-add {
  font: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: var(--text-primary);
  cursor: pointer;
}
.archive-blog-block-add:hover {
  background: #f9fafb;
  border-color: #d1d5db;
}
.archive-blog-block-image-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.archive-blog-blocks-wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 8px;
  max-height: min(50vh, 420px);
  overflow-y: auto;
  padding-right: 4px;
}
.archive-blog-block {
  position: relative;
  border: 1px solid transparent;
  border-radius: 8px;
  padding-top: 28px;
}
.archive-blog-block:hover {
  border-color: #e5e7eb;
}
.archive-blog-block:hover .archive-blog-block-controls {
  opacity: 1;
}
.archive-blog-block-controls {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  opacity: 0;
  transition: opacity 0.15s;
  z-index: 2;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  padding: 4px 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.archive-blog-block-align,
.archive-blog-block-move,
.archive-blog-block-del {
  min-width: 28px;
  height: 28px;
  padding: 0 6px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6b7280;
  font: inherit;
  font-size: 0.6875rem;
  font-weight: 600;
  cursor: pointer;
}
.archive-blog-block-align:hover,
.archive-blog-block-move:hover {
  background: #f3f4f6;
  color: var(--text-primary);
}
.archive-blog-block-align.is-active {
  background: #1a1a1a;
  color: #fff;
  border-color: #1a1a1a;
}
.archive-blog-block-move:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.archive-blog-block-del:hover {
  background: #fef2f2;
  color: #dc2626;
  border-color: #fecaca;
}
.archive-blog-block-ctl-gap {
  width: 1px;
  height: 16px;
  background: #e5e7eb;
  margin: 0 2px;
}
.archive-blog-block-textarea {
  width: 100%;
  min-height: 2.5em;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--text-primary);
  border: none;
  outline: none;
  resize: none;
  background: transparent;
  font-family: inherit;
}
.archive-blog-block-img-wrap {
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  background: #f5f5f5;
}
.archive-blog-block-img {
  width: 100%;
  height: auto;
  display: block;
  vertical-align: bottom;
}
