.shortcuts-overlay{position:fixed;inset:0;z-index:99997;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:shortcuts-fade .15s ease}.shortcuts-panel{width:100%;max-width:380px;background:var(--bg-surface,#131c2d);border:1px solid var(--border-subtle,rgba(116,147,197,.16));border-radius:14px;padding:20px 24px;box-shadow:0 20px 60px rgba(0,0,0,.6);animation:shortcuts-scale .2s cubic-bezier(.4,0,.2,1)}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.shortcuts-header h3{font-size:15px;font-weight:600;color:var(--text-primary,#f1f5f9);margin:0}.shortcuts-close{background:none;border:none;color:var(--text-muted,#64748b);font-size:16px;cursor:pointer;padding:4px}.shortcuts-list{display:flex;flex-direction:column;gap:8px}.shortcut-row{justify-content:space-between;padding:6px 0}.shortcut-keys,.shortcut-row{display:flex;align-items:center}.shortcut-keys{gap:2px}.shortcut-keys kbd{display:inline-block;padding:3px 8px;background:var(--bg-elevated,#182235);border:1px solid var(--border-dim,rgba(116,147,197,.24));border-radius:5px;font-size:11px;font-family:inherit;font-weight:600;color:var(--text-secondary,#a7b6ca);min-width:22px;text-align:center}.shortcut-plus{color:var(--text-muted,#64748b);font-size:10px;margin:0 2px}.shortcut-desc{font-size:13px;color:var(--text-secondary,#a7b6ca)}.shortcuts-footer{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-subtle,rgba(116,147,197,.16));font-size:11px;color:var(--text-muted,#64748b);text-align:center}.shortcuts-footer kbd{display:inline-block;padding:1px 5px;background:var(--bg-elevated,#182235);border:1px solid var(--border-dim,rgba(116,147,197,.24));border-radius:4px;font-size:10px;font-family:inherit}@keyframes shortcuts-fade{0%{opacity:0}to{opacity:1}}@keyframes shortcuts-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.magic-overlay{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;overflow:hidden;pointer-events:auto;animation:magic-overlay-fade-in .3s ease-out}.magic-overlay-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,rgba(99,102,241,.35) 0,rgba(13,20,34,.92) 60%),rgba(13,20,34,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}@keyframes magic-overlay-fade-in{0%{opacity:0}to{opacity:1}}.magic-overlay-floaters{position:absolute;inset:0;pointer-events:none}.magic-overlay-floater{position:absolute;border-radius:12px;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 0 0 2px rgba(99,102,241,.55),0 0 30px rgba(34,211,238,.4),0 8px 30px rgba(0,0,0,.55);opacity:.85;animation-name:magic-floater-drift;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;will-change:transform,opacity}.magic-overlay-floater img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.1)}@keyframes magic-floater-drift{0%{transform:translate(-50%,-50%) scale(.85) rotate(-3deg);opacity:.55}to{transform:translate(-46%,-54%) scale(1.05) rotate(2deg);opacity:.95}}.magic-overlay-scan{position:absolute;left:0;right:0;top:0;height:18%;background:linear-gradient(180deg,transparent,rgba(34,211,238,.65) 50%,transparent);box-shadow:0 0 20px rgba(34,211,238,.7);animation:magic-scan-move 1.6s linear infinite;pointer-events:none}@keyframes magic-scan-move{0%{transform:translateY(-100%)}to{transform:translateY(560%)}}.magic-overlay-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:16px;padding:36px 56px;background:rgba(20,28,46,.78);border:1px solid rgba(99,102,241,.35);border-radius:22px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 24px 60px rgba(0,0,0,.6),0 0 80px rgba(99,102,241,.25);backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);min-width:320px;text-align:center;animation:magic-card-pop .5s cubic-bezier(.2,.7,.2,1.2)}@keyframes magic-card-pop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.magic-overlay-sparkle{font-size:44px;line-height:1;filter:drop-shadow(0 0 12px rgba(255,255,255,.5));animation:magic-sparkle-pulse 1.2s ease-in-out infinite}@keyframes magic-sparkle-pulse{0%,to{transform:rotate(-6deg) scale(1);filter:drop-shadow(0 0 12px rgba(255,255,255,.5))}50%{transform:rotate(8deg) scale(1.18);filter:drop-shadow(0 0 22px rgba(34,211,238,.8))}}.magic-overlay-title{margin:0;font-size:22px;font-weight:800;letter-spacing:-.4px;background:linear-gradient(135deg,#ffffff,#22d3ee 55%,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.magic-overlay-progress{margin:0;font-size:14px;color:#cbd5e1;min-height:1.4em;transition:opacity .2s}.magic-overlay-palette{display:flex;gap:8px;margin-top:4px}.magic-overlay-swatch{width:32px;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 12px rgba(0,0,0,.4);transform:translateY(12px) scale(.6);opacity:0;transition:transform .45s cubic-bezier(.2,.7,.2,1.2),opacity .3s ease-out}.magic-overlay-swatch.is-in{transform:translateY(0) scale(1);opacity:1}.magic-overlay-bar{width:240px;height:4px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:4px}.magic-overlay-bar-fill{display:block;width:40%;height:100%;border-radius:999px;background:linear-gradient(90deg,#6366f1,#22d3ee,#f0b055);animation:magic-bar-slide 1.5s ease-in-out infinite}@keyframes magic-bar-slide{0%{transform:translateX(-100%)}to{transform:translateX(350%)}}@media (prefers-reduced-motion:reduce){.magic-overlay,.magic-overlay-bar-fill,.magic-overlay-card,.magic-overlay-floater,.magic-overlay-scan,.magic-overlay-sparkle,.magic-overlay-swatch{animation:none!important;transition:none!important}.magic-overlay-swatch{opacity:1;transform:none}}@media (max-width:600px){.magic-overlay-card{padding:28px 32px;min-width:0;max-width:88vw}.magic-overlay-floater{display:none}}.ctx-menu{position:fixed;z-index:10000;min-width:220px;max-width:280px;padding:6px;background:rgba(15,23,42,.97);border:1px solid rgba(99,102,241,.35);border-radius:10px;box-shadow:0 16px 40px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.04);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#f1f5f9;font-size:13px;animation:ctx-menu-in .11s ease-out;-webkit-user-select:none;-moz-user-select:none;user-select:none}@keyframes ctx-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.ctx-menu-header{padding:6px 10px 4px;font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:rgba(241,245,249,.55)}.ctx-menu-sep{height:1px;margin:4px 6px;background:rgba(116,147,197,.18)}.ctx-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border:none;border-radius:7px;background:transparent;color:inherit;font-family:inherit;font-size:13px;line-height:1.2;text-align:left;cursor:pointer;transition:background .12s,color .12s}.ctx-menu-item:hover:not(:disabled){background:rgba(99,102,241,.18);color:#ffffff}.ctx-menu-item:disabled{opacity:.45;cursor:not-allowed}.ctx-menu-item.danger{color:#fca5a5}.ctx-menu-item.danger:hover:not(:disabled){background:rgba(239,68,68,.22);color:#ffffff}.ctx-menu-icon{width:18px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;flex:0 0 auto}.ctx-menu-label{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ctx-menu-shortcut{flex:0 0 auto;padding:1px 6px;background:rgba(99,102,241,.16);border:1px solid rgba(99,102,241,.35);border-radius:4px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:10px;font-weight:600;color:#c7d2fe;letter-spacing:.3px}@media (prefers-reduced-motion:reduce){.ctx-menu{animation:none}}.dup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px}.dup-modal{background:var(--bg-surface,#131c2d);border:1px solid var(--border-subtle);border-radius:16px;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 30px 80px rgba(0,0,0,.6);overflow:hidden}.dup-header{padding:24px 28px 12px;border-bottom:1px solid var(--border-dim)}.dup-header h2{margin:0 0 6px;font-size:18px;color:var(--text-primary)}.dup-header p{margin:0;font-size:13px;color:var(--text-muted)}.dup-actions-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 28px;background:var(--bg-glass-light);border-bottom:1px solid var(--border-dim)}.dup-count{font-size:13px;color:var(--text-primary)}.dup-count strong{color:var(--accent);font-size:16px}.dup-quick-actions{display:flex;gap:8px}.dup-scroll{flex:1 1;overflow-y:auto;padding:16px 28px}.dup-group{margin-bottom:20px;background:var(--bg-elevated,#182235);border:1px solid var(--border-dim);border-radius:10px;padding:12px}.dup-group-header{margin-bottom:10px}.dup-group-title{font-size:12px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}.dup-group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:10px;gap:10px}.dup-thumb{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:all .15s;background:var(--bg-glass-light)}.dup-thumb.kept,.dup-thumb:hover{border-color:var(--accent)}.dup-thumb.kept{box-shadow:0 0 0 3px var(--accent-soft)}.dup-thumb:not(.kept){opacity:.5}.dup-thumb img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.dup-thumb-check{position:absolute;top:6px;right:6px;width:24px;height:24px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;box-shadow:0 2px 6px rgba(0,0,0,.3)}.dup-thumb-name{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,rgba(0,0,0,.75),transparent);color:#fff;padding:14px 6px 4px;font-size:10px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.dup-unique{display:flex;align-items:center;gap:12px;padding:8px 12px;margin-bottom:6px;background:var(--bg-elevated,#182235);border:1px solid var(--border-dim);border-radius:8px;transition:opacity .15s}.dup-unique:not(.kept){opacity:.5}.dup-unique img{width:50px;height:50px;object-fit:cover;border-radius:6px}.dup-unique-name{flex:1 1;font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dup-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--text-primary);font-size:12px}.dup-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 28px;border-top:1px solid var(--border-dim);background:var(--bg-glass-light)}.dup-btn-primary,.dup-btn-secondary{padding:10px 20px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.dup-btn-primary{background:var(--accent,#6366f1);color:#fff;border:none}.dup-btn-primary:hover:not(:disabled){filter:brightness(1.1)}.dup-btn-primary:disabled{opacity:.5;cursor:not-allowed}.dup-btn-secondary{background:var(--bg-glass-light);color:var(--text-primary);border:1px solid var(--border-subtle)}.dup-btn-secondary:hover{background:var(--accent-soft);border-color:var(--accent)}.so-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.so-modal{background:var(--bg-surface,#131c2d);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:16px;width:min(960px,100%);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg,0 20px 60px rgba(0,0,0,.6))}.so-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border-dim)}.so-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.so-close{border:none;background:transparent;font-size:26px;line-height:1;cursor:pointer;color:var(--text-muted);padding:4px 10px;border-radius:var(--radius-sm,8px);transition:all var(--transition,.2s ease)}.so-close:hover{color:var(--text-primary)}.so-close:hover,.so-tabs{background:var(--bg-glass-light)}.so-tabs{display:flex;gap:4px;padding:12px 24px 0;border-bottom:1px solid var(--border-dim)}.so-tab{background:transparent;padding:10px 14px;cursor:pointer;font-size:13px;color:var(--text-secondary);border:none;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:6px 6px 0 0;transition:all var(--transition,.2s ease)}.so-tab:hover{color:var(--text-primary);background:var(--bg-glass-light)}.so-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.so-body{padding:20px 24px;overflow-y:auto;flex:1 1;background:var(--bg-base,#0d1422)}.so-hint{color:var(--text-secondary);line-height:1.55}.so-hint,.so-warning{margin:0 0 14px;font-size:13px}.so-warning{padding:10px 14px;background:var(--gold-soft,rgba(240,176,85,.1));border:1px solid var(--gold-glow,rgba(240,176,85,.3));color:var(--gold,#f0b055);border-radius:var(--radius-sm,8px);line-height:1.5}.so-btn{background:var(--accent,#6366f1);color:#fff;border:none;padding:9px 16px;border-radius:var(--radius-sm,8px);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition,.2s ease);box-shadow:var(--shadow-sm,0 2px 8px rgba(0,0,0,.36))}.so-btn:hover:not(:disabled){filter:brightness(1.08);box-shadow:var(--shadow-glow-accent,0 0 20px rgba(99,102,241,.35))}.so-btn:disabled{opacity:.5;cursor:not-allowed}.so-btn-secondary{background:var(--bg-elevated,#182235);color:var(--accent);border:1px solid var(--border-dim);margin-top:12px;box-shadow:none}.so-btn-secondary:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent);box-shadow:none;filter:none}.so-progress{margin-top:12px;height:4px;background:var(--border-subtle);border-radius:2px;overflow:hidden}.so-progress-bar{height:100%;background:var(--accent);transition:width .2s}.so-status{margin-top:8px}.so-status,.so-status-inline{font-size:12px;color:var(--text-muted)}.so-status-inline{margin-left:12px}.so-clusters{margin-top:16px;display:flex;flex-wrap:wrap;gap:12px}.so-cluster-chip{border:2px solid transparent;background:var(--bg-elevated,#182235);border-radius:var(--radius-md,12px);padding:8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;transition:all var(--transition,.2s ease)}.so-cluster-chip:hover{border-color:var(--accent);background:var(--accent-soft)}.so-cluster-chip.active{border-color:var(--gold,#f0b055);background:var(--gold-soft,rgba(240,176,85,.1));box-shadow:var(--shadow-glow-gold,0 0 16px rgba(240,176,85,.3))}.so-cluster-chip img{width:70px;height:70px;object-fit:cover;border-radius:50%;border:2px solid var(--border-subtle);background-color:var(--bg-base)}.so-cluster-chip span{font-size:11px;color:var(--text-secondary);font-weight:500}.so-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:8px;gap:8px;margin:12px 0}.so-tile{position:relative;aspect-ratio:1;border-radius:var(--radius-sm,8px);overflow:hidden;background:var(--bg-elevated);border:1px solid var(--border-subtle)}.so-tile img{width:100%;height:100%;object-fit:cover}button.so-tile-clickable{padding:0;cursor:pointer;transition:all var(--transition,.2s ease)}button.so-tile-clickable:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-glow-accent,0 0 20px rgba(99,102,241,.35))}button.so-tile-clickable.active{border-color:var(--gold,#f0b055);box-shadow:var(--shadow-glow-gold,0 0 16px rgba(240,176,85,.3))}.so-tile-score{position:absolute;bottom:4px;left:4px;background:rgba(13,20,34,.85);color:var(--gold,#f0b055);font-size:10px;padding:2px 6px;border-radius:4px;border:1px solid var(--border-subtle)}.so-aesthetic h3{font-size:14px;font-weight:600;margin:18px 0 8px;color:var(--text-primary)}.so-search-row{display:flex;gap:8px;margin-top:16px}.so-search-input{flex:1 1;border:1px solid var(--border-dim);background:var(--bg-elevated,#182235);color:var(--text-primary);border-radius:var(--radius-sm,8px);padding:9px 12px;font-size:14px;outline:none;transition:all var(--transition,.2s ease)}.so-search-input::placeholder{color:var(--text-muted)}.so-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.so-embed-row{display:flex;align-items:center;margin-bottom:4px}.photopea-overlay{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:600;display:flex;align-items:stretch;justify-content:stretch;padding:20px}.photopea-container{flex:1 1;background:#131c2d;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.7)}.photopea-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--bg-surface,#0f1828);border-bottom:1px solid var(--border-subtle);gap:16px}.photopea-header-left{display:flex;flex-direction:column;gap:2px;min-width:0}.photopea-title{font-size:14px;font-weight:700;color:var(--text-primary)}.photopea-status{font-size:11px;color:var(--text-muted)}.photopea-header-right{display:flex;gap:8px;flex-shrink:0}.photopea-btn-primary,.photopea-btn-secondary{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.photopea-btn-primary{background:linear-gradient(135deg,#8b5cf6,#3b82f6);color:#fff;border:none}.photopea-btn-primary:hover:not(:disabled){filter:brightness(1.1)}.photopea-btn-primary:disabled{opacity:.4;cursor:not-allowed}.photopea-btn-secondary{background:var(--bg-glass-light);color:var(--text-primary);border:1px solid var(--border-subtle)}.photopea-btn-secondary:hover:not(:disabled){background:var(--accent-soft)}.photopea-btn-secondary:disabled{opacity:.4;cursor:not-allowed}.photopea-warning{background:rgba(234,179,8,.15);border-bottom:1px solid rgba(234,179,8,.4);color:#fbbf24;padding:10px 16px;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;line-height:1.4}.photopea-warning-dismiss{background:transparent;border:none;color:#fbbf24;font-size:18px;cursor:pointer;padding:0 8px;font-family:inherit;flex-shrink:0}.photopea-iframe-wrap{position:relative;flex:1 1;min-height:0;background:#0f1828}.photopea-iframe{width:100%;height:100%;border:none;display:block}.photopea-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#0f1828;color:var(--text-primary);z-index:1}.photopea-loading p{margin:0;font-size:14px}.photopea-loading-hint{font-size:12px!important;color:var(--text-muted)}.photopea-spinner{width:48px;height:48px;border:4px solid rgba(99,102,241,.2);border-top:4px solid var(--accent,#6366f1);border-radius:50%;animation:photopea-spin .8s linear infinite}@keyframes photopea-spin{to{transform:rotate(1turn)}}