:root{color-scheme:light;--paper: #f6f1e3;--paper-1: #faf8f2;--paper-2: #f1e7d3;--paper-3: #e8dcc6;--ink: #3a3125;--ink-1: #4a3f30;--ink-2: #6b5f4b;--muted: #6b5f4b;--accent: #d6b260;--accent-strong: #c39a3a;--accent-soft: rgba(214, 178, 96, .15);--border: #e2d6bd;--shadow: rgba(63, 52, 37, .18);--shadow-sm: 0 1px 3px rgba(63, 52, 37, .1);--line: rgba(127, 109, 80, .28);--success: #10b981;--error: #b42318;--warning: #f59e0b;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;font-family:Inter,Noto Sans SC,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 20% 20%,var(--paper),#f8f3e6 40%) fixed,linear-gradient(180deg,#00000005 0,#0000 60%);color:var(--ink);min-height:100vh;line-height:1.6;-webkit-overflow-scrolling:touch}#root{min-height:100vh}.app-shell{display:grid;grid-template-columns:1fr 340px;min-height:100vh;max-width:1400px;margin:0 auto}.main-content{padding:32px 36px;display:flex;flex-direction:column;gap:20px}.brand-panel{background:linear-gradient(180deg,var(--paper-2) 0%,var(--paper) 100%);border-left:1px solid var(--border);padding:48px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;position:sticky;top:0;height:100vh}.brand-logo{width:100px;height:100px;padding:20px;background:linear-gradient(135deg,#fff4d5,#f7df9e);border:2px solid var(--accent);border-radius:var(--radius-xl);box-shadow:0 16px 40px var(--shadow);animation:float 6s ease-in-out infinite}.brand-logo img{width:100%;height:100%}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.brand-title{font-size:24px;font-weight:800;color:var(--ink);text-align:center;letter-spacing:.02em}.brand-tagline{color:var(--muted);text-align:center;font-size:14px;line-height:1.7;max-width:260px}.brand-features{display:flex;flex-direction:column;gap:12px;width:100%}.brand-feature{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fffdf8;border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;color:var(--muted);transition:all .2s ease;box-shadow:0 4px 12px #0000000a}.brand-feature:hover{background:#fff4d5;border-color:var(--accent);color:var(--ink)}.brand-feature-icon{font-size:16px}.page-header{display:flex;align-items:center;gap:14px}.page-title{font-size:28px;font-weight:800;letter-spacing:.02em;color:var(--ink)}.page-badge{padding:5px 12px;background:linear-gradient(135deg,#fff3c9,#f7df9e);border:1px solid var(--accent);border-radius:999px;font-size:11px;font-weight:700;color:#4a3a25;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 4px 12px #c39a3a26}.control-panel{background:linear-gradient(135deg,#faf5e8,var(--paper-2));border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:0 12px 40px var(--shadow);position:relative;overflow:hidden}.control-panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 26px,var(--line) 27px,transparent 28px);opacity:.4;pointer-events:none}.control-section{display:flex;flex-direction:column;gap:16px;position:relative;z-index:1}.control-row{display:grid;grid-template-columns:1fr;gap:12px}.field{display:flex;flex-direction:column;gap:8px}.field-label{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:.02em}.mode-selector{display:flex;gap:8px;flex-wrap:wrap}.mode-btn{padding:12px 18px;background:#fffdf8;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--muted);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 6px 16px #0000000d}.mode-btn:hover{background:#fff8e8;border-color:var(--accent);color:var(--ink)}.mode-btn.active{background:linear-gradient(135deg,#fff3c9,#f7df9e);border-color:var(--accent-strong);color:#4a3a25;box-shadow:0 8px 24px #c39a3a33}input[type=text],input[type=password]{padding:12px 14px;background:#fffdf8;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--ink);font-size:14px;transition:all .2s ease;box-shadow:inset 0 1px #fff}input[type=text]:focus,input[type=password]:focus{outline:none;border-color:var(--accent-strong);box-shadow:0 0 0 3px #c39a3a2e}input::placeholder{color:var(--muted)}.hint-card{padding:14px 18px;background:#fffdf8;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--muted);font-size:14px;display:flex;align-items:center;gap:10px;box-shadow:0 4px 12px #0000000a}.hint-card.success{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b;color:#92400e}.hint-icon{font-size:18px}.file-zone{background:#fffdf8;border:2px dashed var(--accent);border-radius:var(--radius-lg);padding:28px;text-align:center;transition:all .2s ease;cursor:pointer}.file-zone:hover{border-color:var(--accent-strong);background:#fff8e8;box-shadow:0 8px 24px #c39a3a1f}.file-zone-icon{font-size:40px;margin-bottom:12px}.file-zone-text{color:var(--ink);font-size:15px;font-weight:600;margin-bottom:6px}.file-zone-hint{color:var(--muted);font-size:13px}.file-list{display:flex;flex-wrap:wrap;gap:8px}.file-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--paper-2);border:1px solid var(--border);border-radius:999px;font-size:13px;color:var(--muted);font-weight:600;box-shadow:0 4px 10px #0000000a}.action-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.btn-primary{padding:14px 28px;background:linear-gradient(135deg,#fbe9bd,#f1d289);border:1px solid var(--accent-strong);border-radius:var(--radius-md);color:#4a3a25;font-size:15px;font-weight:800;cursor:pointer;transition:all .2s ease;box-shadow:0 10px 28px #c39a3a38;letter-spacing:.01em}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 36px #c39a3a47;filter:brightness(1.02)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{padding:14px 22px;background:#fffefb;border:1px solid var(--accent-strong);border-radius:var(--radius-md);color:#4a3a25;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 6px 18px #0000000f}.btn-secondary:hover:not(:disabled){background:#fff8e8;box-shadow:0 8px 22px #c39a3a26}.btn-secondary:disabled{opacity:.55;cursor:not-allowed}.status-badge{padding:10px 16px;background:#fffdf8;border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;font-weight:700;color:var(--muted)}.status-badge.processing{border-color:var(--warning);color:var(--warning);animation:pulse 2s infinite}.status-badge.done{border-color:var(--success);color:var(--success)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.result-card{background:linear-gradient(150deg,#fffaf0,#f5ebd8);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:all .2s ease;box-shadow:0 10px 30px #0000000f}.result-card:hover{border-color:var(--accent);box-shadow:0 14px 40px var(--shadow);transform:translateY(-3px)}.result-thumb{width:100%;aspect-ratio:1;object-fit:contain;background:repeating-conic-gradient(var(--paper-2) 0% 25%,var(--paper) 0% 50%) 50% / 16px 16px;border-bottom:1px solid var(--border)}.result-thumb-placeholder{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--paper-2);color:var(--muted);font-size:14px;border-bottom:1px solid var(--border)}.result-info{padding:12px}.result-name{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:10px;letter-spacing:.01em}.result-actions{display:flex;gap:8px}.result-btn{flex:1;padding:8px 12px;background:var(--paper-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);font-size:12px;font-weight:700;text-decoration:none;text-align:center;cursor:pointer;transition:all .2s ease}.result-btn:hover{background:linear-gradient(135deg,#fff3c9,#f7df9e);border-color:var(--accent);color:#4a3a25}.result-error{padding:8px 10px;background:#b4231814;border-radius:var(--radius-sm);color:var(--error);font-size:12px;font-weight:600;margin-top:8px}.tips-section{padding:16px 20px;background:#fffdf8;border:1px solid var(--border);border-radius:var(--radius-lg);font-size:13px;color:var(--muted);line-height:1.8;box-shadow:0 4px 16px #0000000a}.tips-section strong{color:var(--accent-strong)}@media(max-width:1200px){.app-shell{grid-template-columns:1fr 220px}.brand-panel{padding:24px 16px}.brand-title{font-size:1.3rem}}@media(max-width:1024px){.app-shell{grid-template-columns:1fr}.brand-panel{display:none}.main-content{padding:20px 16px;max-width:100%}.tab-nav{gap:6px;padding-bottom:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tab-nav::-webkit-scrollbar{display:none}.tab-btn{padding:8px 12px;font-size:12px;flex-shrink:0}.control-panel{padding:12px}.control-section{gap:12px}.field{flex-wrap:wrap}.field-label{width:100%;margin-bottom:4px}.result-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.analyzer-content,.smart-crop-content,.exif-layout,.stitcher-layout,.collage-layout{grid-template-columns:1fr}.crop-workspace{grid-template-columns:80px 1fr;height:auto;min-height:400px}}@media(max-width:768px){.page-title{font-size:20px;margin-bottom:16px}.tab-btn{padding:6px 10px;font-size:11px}.mode-selector{flex-wrap:wrap;gap:6px}.mode-btn{padding:6px 12px;font-size:12px;flex:1 1 auto;min-width:80px;text-align:center}.compress-table,.resize-table,.rename-table{font-size:.8rem}.compress-table th,.compress-table td,.resize-table th,.resize-table td,.rename-table th,.rename-table td{padding:8px 6px}.watermark-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.input-field{min-width:100px;max-width:100%}.file-zone{padding:40px 20px}.file-zone-icon{font-size:2.5rem}.file-zone-text{font-size:1rem}}@media(max-width:640px){body{padding:0}.main-content{padding:16px 12px;border-radius:0}.page-title{font-size:18px;text-align:center}.tab-nav{flex-wrap:nowrap;gap:4px;margin:0 -12px 16px;padding:8px 12px}.tab-btn{padding:8px 10px;font-size:11px;border-radius:16px}.control-panel{padding:12px}.control-section{flex-direction:column;align-items:stretch;gap:12px}.field{flex-direction:column;align-items:flex-start;gap:6px}.field-label{font-size:12px}.mode-selector{width:100%}.mode-btn{width:100%;justify-content:center}.action-bar{flex-direction:column;align-items:stretch;gap:10px}.btn-primary,.btn-secondary{width:100%;justify-content:center;padding:12px 16px}.actions{display:flex;flex-direction:column;gap:8px}.actions button{width:100%;margin-left:0!important}.result-grid{grid-template-columns:repeat(2,1fr);gap:10px}.result-card{border-radius:var(--radius-md)}.result-thumb{height:100px}.result-name{font-size:11px;padding:6px}.crop-workspace{grid-template-columns:1fr;gap:12px}.crop-sidebar{flex-direction:row;overflow-x:auto;height:auto;padding:8px}.scroll-list{flex-direction:row;gap:8px}.list-item{width:60px;height:60px;flex-shrink:0}.stitcher-layout{gap:12px}.stitcher-list{max-height:200px;overflow-y:auto}.stitcher-item{padding:6px;gap:8px}.stitcher-thumb{width:40px;height:40px}.collage-layout{gap:12px}.collage-list{flex-direction:row;overflow-x:auto;gap:6px}.collage-item{width:60px;height:60px;flex-shrink:0}.converter-item{flex-wrap:wrap;gap:10px}.converter-thumb{width:40px;height:40px}.exif-preview img{max-height:200px}.exif-table td{padding:6px;font-size:.85rem}.compare-container{max-width:100%}.mosaic-canvas{max-height:300px}.stego-preview img{max-height:200px}.compress-table th:nth-child(3),.compress-table td:nth-child(3),.resize-table th:nth-child(3),.resize-table td:nth-child(3){display:none}}@media(max-width:375px){.main-content{padding:12px 8px}.page-title{font-size:16px}.tab-btn{padding:6px 8px;font-size:10px}.btn-primary,.btn-secondary{font-size:13px;padding:10px 12px}.result-grid{grid-template-columns:1fr 1fr;gap:8px}.result-thumb{height:80px}.file-zone{padding:30px 16px}.file-zone-icon{font-size:2rem}.file-zone-text{font-size:.9rem}.file-zone-hint{font-size:.75rem}}@media(max-height:500px)and (orientation:landscape){.main-content{padding:12px 16px}.page-title,.tab-nav{margin-bottom:12px}.control-panel{padding:8px 12px}.file-zone{padding:20px}.file-zone-icon{font-size:1.5rem;margin-bottom:8px}}.crop-workspace{display:grid;grid-template-columns:100px 1fr;gap:16px;height:500px;width:100%}.crop-sidebar{display:flex;flex-direction:column;gap:12px;overflow:hidden}.scroll-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.list-item{position:relative;aspect-ratio:1;border-radius:var(--radius-md);border:2px solid transparent;cursor:pointer;overflow:hidden;transition:all .2s;background:var(--paper-2)}.list-item img{width:100%;height:100%;object-fit:cover}.list-item.active{border-color:var(--accent-strong);box-shadow:0 0 0 2px #c39a3a33}.del-btn{position:absolute;top:4px;right:4px;width:20px;height:20px;background:#00000080;color:#fff;border:none;border-radius:50%;font-size:14px;line-height:1;cursor:pointer;opacity:0;transition:opacity .2s}.list-item:hover .del-btn{opacity:1}.crop-main{background:#2a2a2a;border-radius:var(--radius-lg);overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center}.crop-controls{height:100%;overflow-y:auto}.section-title{font-size:16px;font-weight:800;margin-bottom:12px;color:var(--ink)}.ratio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.add-btn{text-align:center;border-style:dashed}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none}.full-width{width:100%}.empty-state{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--paper-2)}.tab-nav{display:flex;flex-wrap:wrap;gap:8px;border-bottom:2px solid var(--line);padding-bottom:8px;margin-bottom:20px}.tab-btn{background:var(--paper-2);border:none;padding:6px 12px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);transition:all .2s;white-space:nowrap}.tab-btn:hover{color:var(--ink);background:var(--paper-3)}.tab-btn.active{color:#fff;background:var(--accent-strong)}.tab-btn.active:after{display:none}.item-index{position:absolute;top:4px;left:4px;background:#0009;color:#fff;font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px;z-index:2;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.analyzer-content{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:16px}.analyzer-preview{display:flex;align-items:center;justify-content:center;background:var(--paper-2);border-radius:var(--radius-lg);min-height:300px;overflow:hidden}.analyzer-preview .preview-image{max-width:100%;max-height:400px;object-fit:contain}.analyzer-results{display:flex;flex-direction:column;gap:16px}.harmony-card{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,var(--accent-soft),var(--paper-1));padding:16px;border-radius:var(--radius-lg)}.harmony-score{display:flex;flex-direction:column;align-items:center;padding:12px 20px;background:var(--paper-1);border-radius:var(--radius-md)}.score-value{font-size:2rem;font-weight:700;color:var(--accent-strong)}.score-label{font-size:.8rem;color:var(--ink-2)}.harmony-info{flex:1}.harmony-type{font-weight:600;text-transform:capitalize;margin-bottom:4px}.harmony-desc{font-size:.9rem;color:var(--ink-2)}.palette-section h4,.color-details h4{font-size:.9rem;margin-bottom:8px;color:var(--ink-2)}.color-palette{display:flex;gap:8px;flex-wrap:wrap}.color-swatch{width:60px;height:60px;border-radius:var(--radius-md);display:flex;align-items:flex-end;justify-content:center;cursor:pointer;transition:transform .2s;box-shadow:var(--shadow-sm)}.color-swatch:hover{transform:scale(1.1)}.swatch-label{font-size:.65rem;padding:2px 4px;background:#00000080;color:#fff;border-radius:2px;margin-bottom:4px}.color-table{width:100%;font-size:.85rem;border-collapse:collapse}.color-table th,.color-table td{padding:8px;text-align:left;border-bottom:1px solid var(--paper-3)}.color-dot{display:inline-block;width:20px;height:20px;border-radius:50%;vertical-align:middle}.smart-crop-content{display:grid;grid-template-columns:1fr 280px;gap:20px;margin-top:16px}.crop-preview-area{background:var(--paper-2);border-radius:var(--radius-lg);min-height:400px;display:flex;align-items:center;justify-content:center}.preview-canvas{max-width:100%;border-radius:var(--radius-md)}.crop-suggestions{display:flex;flex-direction:column;gap:12px}.crop-suggestions h4{font-size:.9rem;color:var(--ink-2);margin-bottom:4px}.suggestion-list{display:flex;flex-direction:column;gap:8px}.suggestion-item{padding:12px;background:var(--paper-2);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;border:2px solid transparent}.suggestion-item:hover{background:var(--paper-3)}.suggestion-item.active{border-color:var(--accent-strong);background:var(--accent-soft)}.suggestion-name{font-weight:600;margin-bottom:4px}.suggestion-desc{font-size:.8rem;color:var(--ink-2)}.rename-content{margin-top:16px}.rename-list{background:var(--paper-1);border-radius:var(--radius-lg);overflow:hidden}.rename-table{width:100%;border-collapse:collapse;font-size:.85rem}.rename-table th{background:var(--paper-2);padding:12px;text-align:left;font-weight:600;color:var(--ink-2)}.rename-table td{padding:12px;border-bottom:1px solid var(--paper-2);vertical-align:middle}.rename-thumb{width:50px;height:50px;object-fit:cover;border-radius:var(--radius-sm)}.filename-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filename-cell.new-name{color:var(--accent-strong);font-weight:500}.prediction-cell{max-width:200px}.prediction-tag{display:inline-block;padding:2px 6px;background:var(--paper-3);border-radius:var(--radius-sm);font-size:.75rem;margin-right:4px;margin-bottom:4px}.action-btns{display:flex;gap:4px}.icon-btn{padding:6px;background:transparent;border:none;cursor:pointer;border-radius:var(--radius-sm);transition:background .2s}.icon-btn:hover{background:var(--paper-3)}.icon-btn.delete:hover{background:#ef44441a}.input-field{padding:8px 12px;border:1px solid var(--paper-3);border-radius:var(--radius-md);background:var(--paper-1);color:var(--ink-1);font-size:.9rem}.input-field:focus{outline:none;border-color:var(--accent-strong)}.stitcher-content{min-height:300px}.stitcher-layout{display:grid;grid-template-columns:300px 1fr;gap:20px}.stitcher-list h4{font-size:.9rem;margin-bottom:12px;color:var(--ink-2)}.stitcher-item{display:flex;align-items:center;gap:12px;padding:8px;background:var(--paper-2);border-radius:var(--radius-md);margin-bottom:8px}.item-order{font-weight:700;color:var(--ink-2);min-width:20px}.stitcher-thumb{width:50px;height:50px;object-fit:cover;border-radius:var(--radius-sm)}.stitcher-item-info{flex:1;min-width:0}.stitcher-item-name{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stitcher-item-size{font-size:.75rem;color:var(--ink-2)}.stitcher-item-actions{display:flex;gap:4px}.stitcher-item-actions button{padding:4px 8px;background:var(--paper-3);border:none;border-radius:var(--radius-sm);cursor:pointer}.stitcher-preview{background:var(--paper-2);border-radius:var(--radius-lg);min-height:300px;display:flex;align-items:center;justify-content:center;overflow:auto}.stitcher-result{max-width:100%;max-height:400px;object-fit:contain}.stitcher-placeholder{color:var(--ink-2)}.mosaic-content{min-height:400px}.mosaic-canvas-wrapper{text-align:center}.mosaic-tip{margin-bottom:12px;color:var(--ink-2);font-size:.9rem}.mosaic-canvas{cursor:crosshair;border-radius:var(--radius-lg);max-width:100%}.watermark-content{min-height:300px}.watermark-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.watermark-item{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;background:var(--paper-2)}.watermark-item img{width:100%;height:100%;object-fit:cover}.watermark-item .del-btn{position:absolute;top:4px;right:4px}.watermark-item-name{position:absolute;bottom:0;left:0;right:0;padding:4px 8px;background:#0009;color:#fff;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compress-summary,.resize-table,.compress-table{margin-bottom:16px}.compress-summary{padding:12px;background:var(--accent-soft);border-radius:var(--radius-md);text-align:center}.compress-table table,.resize-table table{width:100%;border-collapse:collapse}.compress-table th,.compress-table td,.resize-table th,.resize-table td{padding:12px;text-align:left;border-bottom:1px solid var(--paper-2)}.compress-table th,.resize-table th{background:var(--paper-2);font-weight:600}.text-success{color:#22c55e;font-weight:600}.compress-name,.resize-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.converter-content{min-height:300px}.converter-list{display:flex;flex-direction:column;gap:8px}.converter-item{display:flex;align-items:center;gap:16px;padding:12px;background:var(--paper-2);border-radius:var(--radius-md)}.converter-thumb{width:50px;height:50px;object-fit:cover;border-radius:var(--radius-sm)}.converter-info{flex:1}.converter-name{font-weight:500;margin-bottom:4px}.converter-change{font-size:.85rem}.format-badge{display:inline-block;padding:2px 6px;background:var(--paper-3);border-radius:4px;font-size:.75rem;font-weight:600}.format-badge.active{background:var(--accent-strong);color:#fff}.btn-sm{padding:6px 12px;background:var(--paper-3);border:none;border-radius:var(--radius-sm);cursor:pointer;text-decoration:none}.exif-content{min-height:300px}.exif-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}.exif-preview{display:flex;align-items:center;justify-content:center;background:var(--paper-2);border-radius:var(--radius-lg);padding:16px}.exif-preview img{max-width:100%;max-height:300px;object-fit:contain}.exif-data{background:var(--paper-2);border-radius:var(--radius-lg);padding:16px}.exif-table{width:100%}.exif-table td{padding:8px;border-bottom:1px solid var(--paper-3)}.exif-key{font-weight:600;color:var(--ink-2);width:40%}.compare-content{min-height:400px}.compare-container{position:relative;max-width:600px;margin:0 auto;overflow:hidden;border-radius:var(--radius-lg);-webkit-user-select:none;user-select:none}.compare-after,.compare-before{position:relative}.compare-after img,.compare-before img{display:block;width:100%}.compare-before{position:absolute;top:0;left:0;width:100%;height:100%}.compare-label{position:absolute;padding:4px 12px;background:#0009;color:#fff;font-size:.8rem;font-weight:600;border-radius:4px}.compare-label.before{top:12px;left:12px}.compare-label.after{top:12px;right:12px}.compare-slider{position:absolute;cursor:ew-resize;z-index:10}.slider-line{background:#fff;box-shadow:0 0 4px #00000080}.slider-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:8px 12px;border-radius:20px;font-size:.75rem;box-shadow:0 2px 8px #0003}.collage-content{min-height:300px}.collage-layout{display:grid;grid-template-columns:150px 1fr;gap:20px}.collage-list{display:flex;flex-direction:column;gap:8px}.collage-item{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;background:var(--paper-2)}.collage-item img{width:100%;height:100%;object-fit:cover}.collage-item.add{display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:2rem;color:var(--ink-2)}.collage-index{position:absolute;top:4px;left:4px;background:#0009;color:#fff;font-size:.75rem;padding:2px 6px;border-radius:4px}.collage-preview{background:var(--paper-2);border-radius:var(--radius-lg);min-height:300px;display:flex;align-items:center;justify-content:center}.collage-preview img{max-width:100%;max-height:400px}.collage-placeholder{color:var(--ink-2)}.stego-content{min-height:300px}.stego-layout{display:flex;flex-direction:column;gap:16px}.stego-preview{position:relative;display:flex;justify-content:center;background:var(--paper-2);border-radius:var(--radius-lg);padding:16px}.stego-preview img{max-width:100%;max-height:300px;object-fit:contain}.stego-badge{position:absolute;top:12px;right:12px;background:#22c55e;color:#fff;padding:4px 12px;border-radius:20px;font-size:.8rem}.stego-result{background:var(--paper-2);border-radius:var(--radius-lg);padding:16px}.stego-result h4{margin-bottom:8px}.stego-message{background:var(--paper-1);padding:12px;border-radius:var(--radius-md);font-family:monospace;word-break:break-all}.stego-info{line-height:1.6}.stego-info p{margin:4px 0}/*!
* Cropper.js v1.6.2
* https://fengyuanchen.github.io/cropperjs
*
* Copyright 2015-present Chen Fengyuan
* Released under the MIT license
*
* Date: 2024-04-21T07:43:02.731Z
*/.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-wrap-box,.cropper-canvas,.cropper-drag-box,.cropper-crop-box,.cropper-modal{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-wrap-box,.cropper-canvas{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:calc(100% / 3);left:0;top:calc(100% / 3);width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:calc(100% / 3);top:0;width:calc(100% / 3)}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:before,.cropper-center:after{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media(min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media(min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media(min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}
