body{margin:0;padding:0;background-color:#121212;color:#e0e0e0;font-family:Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}*{box-sizing:border-box}button{font-family:inherit}.loading-container{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0a0a0a;display:flex;justify-content:center;align-items:center;z-index:9999;overflow:hidden}.mask-svg-def{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1}.collage-wrapper{width:100%;height:100%;mask:url(#text-mask);-webkit-mask:url(#text-mask);mask-mode:alpha;-webkit-mask-mode:alpha;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:cover;-webkit-mask-size:cover}.collage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px;padding:20px;width:120%;height:120%;transform:rotate(-15deg) translate(-10%,-10%);background:#fff}.collage-item{width:100%;aspect-ratio:1;border-radius:12px;overflow:hidden;background-color:#eee;box-shadow:0 4px 6px #0000001a;transition:transform .3s ease}.collage-item img{width:100%;height:100%;object-fit:cover;display:block}.mask-text{font-family:Inter,system-ui,sans-serif;font-weight:900;font-size:15vw;text-transform:uppercase;letter-spacing:-.05em}:root{--bg-dark: #121212;--bg-sidebar: #1e1e1e;--bg-control: #2d2d2d;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--accent-violet: #8b5cf6;--accent-violet-hover: #7c3aed;--radius-lg: 16px;--radius-md: 12px;--radius-sm: 8px;--spacing-md: 16px;--shadow-soft: 0 4px 12px rgba(0, 0, 0, .2)}.editor-container{display:flex;height:100vh;width:100vw;background-color:var(--bg-dark);color:var(--text-primary);font-family:Inter,sans-serif;overflow:hidden}.editor-sidebar{width:320px;background-color:var(--bg-sidebar);border-right:1px solid #333;display:flex;flex-direction:column;padding:var(--spacing-md);box-shadow:2px 0 10px #0000001a;z-index:10}.sidebar-header{margin-bottom:24px;text-align:center}.sidebar-header h1{font-size:1.5rem;font-weight:700;color:var(--accent-violet);margin:0;letter-spacing:-.02em}.controls-section{flex:1;overflow-y:auto;padding-right:8px}.control-group{margin-bottom:20px;background-color:var(--bg-control);padding:12px;border-radius:var(--radius-md)}.control-group label{display:block;font-size:.85rem;color:var(--text-secondary);margin-bottom:8px;font-weight:500}.control-group input[type=range]{width:100%;-webkit-appearance:none;background:transparent}.control-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;height:16px;width:16px;border-radius:50%;background:var(--accent-violet);cursor:pointer;margin-top:-6px;box-shadow:0 2px 4px #0003;border:2px solid #fff}.control-group input[type=range]::-webkit-slider-runnable-track{width:100%;height:4px;cursor:pointer;background:#444;border-radius:2px}.action-buttons{margin-top:auto;display:flex;flex-direction:column;gap:12px;padding-top:20px;border-top:1px solid #333}button{width:100%;padding:12px;border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .2s ease;font-size:.95rem}.btn-primary{background-color:var(--accent-violet);color:#fff}.btn-primary:hover{background-color:var(--accent-violet-hover);transform:translateY(-1px)}.btn-secondary{background-color:transparent;border:1px solid #444;color:var(--text-secondary)}.btn-secondary:hover:not(:disabled){border-color:var(--text-primary);color:var(--text-primary)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.editor-canvas-area{flex:1;display:flex;justify-content:center;align-items:center;background-color:#0f0f0f;position:relative;overflow:hidden}.canvas-wrapper{max-width:90%;max-height:90%;box-shadow:0 0 50px #00000080;border-radius:4px;overflow:hidden;display:flex}.editable-image{max-width:100%;max-height:100%;object-fit:contain;display:block}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-secondary);cursor:pointer;border:2px dashed #333;margin:40px;border-radius:var(--radius-lg);transition:all .2s}.empty-state:hover{background-color:#ffffff05;border-color:#555;color:var(--text-primary)}.empty-icon{font-size:3rem;margin-bottom:16px;color:var(--accent-violet);opacity:.8}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#444;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}
