.dither-tool{min-height:100vh;background:#0a0a0a;color:#fafafa;overscroll-behavior:contain}.hero-section{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:all .3s ease}.hero-section.dragging{background:#fafafa05}.hero-section.dragging:before{content:"";position:absolute;top:2rem;right:2rem;bottom:2rem;left:2rem;border:3px dashed rgba(250,250,250,.3);border-radius:1rem;z-index:2;pointer-events:none;animation:dashMove 1s linear infinite}@keyframes dashMove{0%{stroke-dashoffset:0}to{stroke-dashoffset:24}}.hero-background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.animated-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#0a0a0a,#1a1a1a,#0f0f0f,#1a1a1a,#0a0a0a);background-size:200% 200%;animation:gradientShift 30s ease infinite}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.hero-content{position:relative;z-index:1;text-align:center;max-width:800px;padding:2rem}.hero-logo{margin-bottom:2rem}.logo-image{max-width:400px;width:100%;height:auto;display:inline-block;border-radius:1rem;box-shadow:0 16px 64px #0009;animation:float 3s ease-in-out infinite;border:2px solid rgba(250,250,250,.1);transition:all .3s ease}.logo-image:hover{transform:scale(1.02);box-shadow:0 20px 80px #000c;border-color:#fafafa33}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.hero-title{font-size:4rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1rem;background:linear-gradient(135deg,#fafafa,#a1a1aa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.5rem;color:#a1a1aa;margin-bottom:1.5rem;font-weight:500}.hero-description{font-size:1.1rem;color:#71717a;line-height:1.6;margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto}.hero-description.drag-hint{font-size:1.5rem;color:#fafafa;font-weight:600;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.drop-zone{padding:3rem 2rem;border:2px dashed rgba(250,250,250,.2);border-radius:1rem;transition:all .3s ease}.drop-zone:hover{border-color:#fafafa66;background:#fafafa05}.action-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:1rem}.drop-hint{color:#71717a;font-size:.9rem;margin:0}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.75rem;border-radius:.5rem;font-weight:500;font-size:1rem;cursor:pointer;border:none;transition:all .2s ease}.btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.btn-primary:hover{background:hsl(var(--primary) / .9);transform:translateY(-2px);box-shadow:0 8px 24px hsl(var(--primary) / .35)}.btn-ghost{background:#fafafa1a;color:#fafafa;border:1px solid rgba(250,250,250,.2)}.btn-ghost:hover{background:#fafafa26;border-color:#fafafa4d}.btn-ghost.active{background:#fafafa33;border-color:#fafafa66}.btn-block{width:100%;justify-content:center}.bg-destructive{background:#dc26261a;color:#dc2626;border-color:#dc26264d}.bg-destructive:hover{background:#dc262633;border-color:#dc262680}.workspace{min-height:100vh;display:flex;flex-direction:column}.workspace.camera-fullscreen{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:1000;overflow:hidden}.workspace-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:#1a1a1af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(250,250,250,.1)}.header-left,.header-right{flex:1;display:flex;gap:.5rem}.header-right{justify-content:flex-end}.workspace-title{font-size:1.25rem;font-weight:600;margin:0}.workspace-content{flex:1;display:flex;position:relative}.preview-area{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;background:#0f0f0f;position:relative;transition:all .3s ease;min-height:0;overflow:hidden}.preview-area.dragging{background:#fafafa0d}.preview-area.panel-open{padding-right:360px}.workspace-content.preset-panel-open .preview-area{padding-left:360px}@media (max-width: 768px){.preview-area.panel-open{padding-right:2rem}.workspace-content.preset-panel-open .preview-area{padding-left:2rem}}.preview-container{position:relative;display:flex;align-items:center;justify-content:center;max-width:100%;max-height:100%;width:100%;height:100%}.preview-canvas{display:block;max-width:100%;max-height:calc(100vh - 8rem);width:auto;height:auto;object-fit:contain;border-radius:.5rem;box-shadow:0 8px 32px #00000080;margin:auto}.video-preview-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;position:relative;background:#0a0a0a;transition:all .3s ease;min-height:0;overflow:hidden}.video-preview-area.panel-open{padding-right:360px}.workspace-content.preset-panel-open .video-preview-area{padding-left:360px}@media (max-width: 768px){.video-preview-area.panel-open{padding-right:2rem}.workspace-content.preset-panel-open .video-preview-area{padding-left:2rem}}.video-container{position:relative;width:100%;max-width:100%;max-height:calc(100vh - 12rem);display:flex;align-items:center;justify-content:center}.video-source{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.video-preview-canvas{display:block;max-width:100%;max-height:calc(100vh - 12rem);width:auto;height:auto;object-fit:contain;border-radius:.5rem;box-shadow:0 8px 32px #00000080;margin:auto}.video-controls{display:flex;gap:.75rem;margin-top:1.5rem;flex-wrap:wrap;justify-content:center;align-items:center}.video-controls .btn{min-width:120px}@media (max-width: 768px){.video-preview-area{padding:1rem}.video-controls{width:100%;padding:0 .5rem}.video-controls .btn{flex:1;min-width:100px}}.export-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0a0ad9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;border-radius:.5rem;z-index:10}.export-overlay-content{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem}.export-spinner{width:48px;height:48px;border:3px solid rgba(250,250,250,.2);border-top-color:#fafafa;border-radius:50%;animation:spin 1s linear infinite}.export-text{color:#fafafa;font-size:1.125rem;font-weight:500;letter-spacing:.025em}.export-progress-bar{width:200px;height:4px;background:#fafafa33;border-radius:2px;overflow:hidden}.export-progress-fill{height:100%;background:#fafafa;border-radius:2px;transition:width .15s ease-out}.crop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.crop-frame{position:absolute;border:2px solid #fafafa;box-shadow:0 0 0 9999px #00000080;pointer-events:auto;cursor:move}.crop-handle{position:absolute;width:12px;height:12px;background:#fafafa;border:2px solid #0a0a0a;border-radius:50%}.crop-handle.top-left{top:-6px;left:-6px}.crop-handle.top-right{top:-6px;right:-6px}.crop-handle.bottom-left{bottom:-6px;left:-6px}.crop-handle.bottom-right{bottom:-6px;right:-6px}.processing-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 2rem;background:#1a1a1af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;border:1px solid rgba(250,250,250,.1)}.spinner{width:24px;height:24px;border:3px solid rgba(250,250,250,.1);border-top-color:#fafafa;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stats-overlay{position:absolute;bottom:1rem;left:1rem;padding:.5rem 1rem;background:#1a1a1af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.25rem;font-size:.875rem;color:#a1a1aa}.control-panel{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:360px;background:#1a1a1afa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid rgba(250,250,250,.1);box-shadow:-8px 0 32px #00000080;z-index:1001;overflow-y:auto;overflow-x:hidden;transform:translate(100%);transition:transform .3s ease;touch-action:pan-y;-ms-touch-action:pan-y;overscroll-behavior:contain}.control-panel.open{transform:translate(0)}.preset-panel{position:fixed;top:0;left:0;height:100vh;height:100dvh;width:360px;background:#1a1a1afa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-right:1px solid rgba(250,250,250,.1);box-shadow:8px 0 32px #00000080;z-index:1001;overflow-y:auto;overflow-x:hidden;transform:translate(-100%);transition:transform .3s ease;touch-action:pan-y;-ms-touch-action:pan-y;overscroll-behavior:contain}.preset-panel.open{transform:translate(0)}.panel-drag-handle{display:none;align-items:center;justify-content:center;padding:.75rem;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-bottom:1px solid rgba(250,250,250,.1);position:sticky;top:0;background:#1a1a1afa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:2}.panel-drag-handle:active{cursor:grabbing}.drag-indicator{width:40px;height:4px;background:#fafafa4d;border-radius:2px;transition:background .2s ease}.panel-drag-handle:active .drag-indicator{background:#fafafa80}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid rgba(250,250,250,.1);position:sticky;top:0;background:#1a1a1afa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:1}.panel-header h3{font-size:1.25rem;font-weight:600;margin:0}.close-btn{background:none;border:none;color:#fafafa;font-size:2rem;cursor:pointer;padding:0;line-height:1;opacity:.7;transition:opacity .2s ease}.close-btn:hover{opacity:1}.panel-content{padding:1.5rem}.setting-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(250,250,250,.1)}.setting-section:last-child{border-bottom:none}h4{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;color:#a1a1aa}.select-input{width:100%;padding:.625rem;background:#fafafa0d;border:1px solid rgba(250,250,250,.1);border-radius:.375rem;color:#fafafa;font-size:.875rem;cursor:pointer;transition:all .2s ease}.select-input:hover{background:#fafafa14;border-color:#fafafa33}.select-input:focus{outline:none;border-color:#fafafa4d}.help-text{display:block;font-size:.75rem;color:#71717a}.tips-box{background:#fafafa0d;border:1px solid rgba(250,250,250,.1);border-radius:.5rem;padding:.75rem;margin-bottom:1rem}.tips-title{font-size:.875rem;font-weight:600;color:#fafafa;margin-bottom:.5rem;display:block}.tips-content{font-size:.75rem;color:#fafafab3;line-height:1.6;white-space:pre-line}.info-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.info-row:last-child{border-bottom:none}.info-label{font-size:.875rem;color:#a1a1aa}.info-value{font-size:.875rem;color:#fafafa;font-weight:500}.tonal-range-group{padding:.75rem;background:#ffffff05;border-radius:.5rem;border:1px solid rgba(255,255,255,.05)}.tonal-range-group h5{color:#e4e4e7;font-weight:500;margin-bottom:.5rem}.slider-group{margin-top:1rem}.slider-group label{display:block;font-size:.875rem;margin-bottom:.5rem;color:#fafafa;font-weight:500}.slider-group input[type=range]{width:100%;height:4px;background:#fafafa1a;border-radius:2px;outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;touch-action:none;-ms-touch-action:none}.slider-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:hsl(var(--primary));border-radius:50%;cursor:pointer;transition:transform .2s ease}.slider-group input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.slider-group input[type=range]::-moz-range-thumb{width:16px;height:16px;background:hsl(var(--primary));border-radius:50%;border:none;cursor:pointer;transition:transform .2s ease}.slider-group input[type=range]::-moz-range-thumb:hover{transform:scale(1.2)}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:#fafafa}.checkbox-label input[type=checkbox]{cursor:pointer;accent-color:hsl(var(--primary))}.custom-colors{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}.color-picker-row{display:flex;align-items:center;gap:.75rem}.color-picker-row label{min-width:60px;font-size:.875rem;color:#fafafa}.color-input{width:50px;height:32px;border:1px solid rgba(250,250,250,.2);border-radius:.375rem;cursor:pointer;background:transparent}.color-value{font-size:.75rem;color:#71717a;font-family:Courier New,monospace}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;margin-bottom:.5rem;color:#fafafa;font-weight:500}.col{display:flex;flex-direction:column}.gap-2{gap:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.preset-name-input{width:100%;padding:.625rem;background:#fafafa0d;border:1px solid rgba(250,250,250,.1);border-radius:.375rem;color:#fafafa;font-size:.875rem;transition:all .2s ease}.preset-name-input:hover{background:#fafafa14;border-color:#fafafa33}.preset-name-input:focus{outline:none;border-color:#fafafa4d;background:#fafafa1a}.preset-name-input::placeholder{color:#71717a}.presets-list{display:flex;flex-direction:column;gap:.5rem}.preset-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem;background:#fafafa0d;border:1px solid rgba(250,250,250,.1);border-radius:.375rem;transition:all .2s ease}.preset-item:hover{background:#fafafa14;border-color:#fafafa33}.preset-info{flex:1;cursor:pointer;min-width:0}.preset-name{font-size:.875rem;font-weight:500;color:#fafafa;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preset-date{font-size:.75rem;color:#71717a}.preset-delete-btn{flex-shrink:0;background:#dc26261a;border:1px solid rgba(220,38,38,.2);color:#dc2626;width:28px;height:28px;border-radius:.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.25rem;line-height:1;transition:all .2s ease;padding:0}.preset-delete-btn:hover{background:#dc262633;border-color:#dc262666}.text-muted{color:#71717a;font-size:.875rem;text-align:center;padding:2rem 1rem}.text-light{color:#fafafa}.text-sm{font-size:.875rem}.error-message{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:#dc2626f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;color:#fafafa;box-shadow:0 8px 32px #00000080;z-index:1000;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}@media (max-width: 768px){.hero-content{padding:1rem}.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.2rem}.hero-description{font-size:1rem;margin-bottom:2rem}.drop-zone{padding:2rem 1rem}.workspace-header{padding:.75rem 1rem;flex-wrap:wrap;gap:.5rem}.header-left,.header-right{flex:none}.header-center{flex:1 100%;order:-1;text-align:center;margin-bottom:.5rem}.workspace-title{font-size:1rem}.btn{padding:.625rem 1rem;font-size:.875rem}.workspace-content{flex-direction:column;overscroll-behavior:contain}.workspace-content.panel-open{touch-action:none;-ms-touch-action:none}.preview-area{padding:1rem;min-height:50vh;flex:1;overscroll-behavior:contain}.preview-area.panel-open{padding-right:1rem;touch-action:none;-ms-touch-action:none}.preview-canvas{max-height:50vh;border-radius:.375rem}.stats-overlay{bottom:.5rem;left:.5rem;font-size:.75rem;padding:.375rem .75rem}.control-panel{width:100%;height:50vh;max-height:90vh;bottom:0;top:auto;border-left:none;border-top:1px solid rgba(250,250,250,.1);transform:translateY(100%);transition:transform .3s ease,height .2s ease;touch-action:pan-y;-ms-touch-action:pan-y;overscroll-behavior:contain}.control-panel.open{transform:translateY(0)}.preset-panel{width:100%;height:50vh;max-height:90vh;bottom:0;top:auto;border-right:none;border-top:1px solid rgba(250,250,250,.1);transform:translateY(100%);transition:transform .3s ease;touch-action:pan-y;-ms-touch-action:pan-y;overscroll-behavior:contain}.preset-panel.open{transform:translateY(0)}.panel-drag-handle{display:flex}.panel-header{display:none}.panel-content{padding:1rem}.setting-section{margin-bottom:1.5rem;padding-bottom:1rem}.error-message{bottom:1rem;left:1rem;right:1rem;transform:none;font-size:.875rem}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}}@media (max-width: 480px){.hero-title{font-size:2rem}.hero-subtitle{font-size:1rem}.logo-image{max-width:280px}.action-buttons{flex-direction:column;width:100%}.btn{width:100%}.workspace-header{padding:.5rem .75rem}.preview-area{padding:.75rem}}.workspace-content.camera-active{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:1000}.camera-preview-area{flex:1;display:flex;align-items:center;justify-content:center;background:#000;position:relative;width:100%;height:100%;overflow:hidden;transition:padding-right .3s ease}.camera-preview-area.panel-open{padding-right:360px}.camera-video-container{position:absolute;top:0;left:0;width:100%;height:100%;transition:transform .3s ease}.camera-video-container.mirrored{transform:scaleX(-1)}.camera-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.camera-effect-canvas{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:.85}.camera-controls-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;z-index:10}.camera-top-bar{display:flex;justify-content:space-between;align-items:flex-start;padding:1rem;pointer-events:auto;gap:.5rem}.camera-left-controls,.camera-right-controls{display:flex;gap:.5rem}.camera-icon-btn{width:44px;height:44px;border-radius:50%;background:#000000b3;border:2px solid rgba(255,255,255,.25);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:1.125rem;padding:0}.camera-icon-btn:hover{background:#000000d9;border-color:#fff6;transform:scale(1.05)}.camera-icon-btn.active{background:#fff3;border-color:#ffffff80}.camera-stats-badge{position:absolute;top:1rem;left:50%;transform:translate(-50%);background:#000000b3;border:1px solid rgba(255,255,255,.2);border-radius:1rem;padding:.375rem .875rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;gap:.5rem;pointer-events:auto;font-size:.75rem;font-weight:600}.camera-stats-badge .stats-label{color:#a1a1aa;text-transform:uppercase;letter-spacing:.05em}.camera-stats-badge .stats-value{color:#fff;font-family:Courier New,monospace;font-size:.875rem}.camera-bottom-bar{display:flex;justify-content:center;align-items:flex-end;padding:1rem;padding-bottom:max(2rem,env(safe-area-inset-bottom,2rem));pointer-events:auto;min-height:120px}.camera-capture-btn{width:72px;height:72px;border-radius:50%;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:relative;padding:0}.camera-capture-btn:hover{transform:scale(1.05)}.camera-capture-btn:active{transform:scale(.95)}.capture-ring{position:absolute;width:72px;height:72px;border-radius:50%;border:4px solid rgba(255,255,255,.9);background:transparent}.capture-inner{width:56px;height:56px;border-radius:50%;background:#fff;transition:all .2s ease}.camera-capture-btn:hover .capture-inner{background:#fafafa}.camera-capture-btn:active .capture-inner{transform:scale(.9)}@media (max-width: 768px){.camera-preview-area.panel-open{padding-right:0}.camera-icon-btn{width:40px;height:40px;font-size:1rem}.camera-capture-btn{width:64px;height:64px}.capture-ring{width:64px;height:64px;border-width:3px}.capture-inner{width:48px;height:48px}}@media (max-width: 480px){.camera-top-bar{padding:.75rem}.camera-bottom-bar{padding:1.5rem 1rem}.camera-icon-btn{width:36px;height:36px;font-size:.875rem}}
