@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-color:#0a0b10;--surface-color:#12151c;--surface-border:#292e3d66;--surface-hover:#181c25;--text-primary:#f0f5ff;--text-secondary:#a7afbe;--text-muted:#676f7e;--accent-rose:#ec417a;--accent-purple:#872ce2;--accent-indigo:#5252e0;--accent-gradient:linear-gradient(135deg, var(--accent-rose), var(--accent-purple), var(--accent-indigo));--accent-glow:0 8px 32px #872ce226;--status-success:#22c35d;--status-warning:#f59f0a;--status-error:#ef4343;--transition-speed:.2s;--border-radius:12px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;flex-direction:column;justify-content:space-between;min-height:100vh;line-height:1.5;display:flex;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:var(--surface-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}header{border-bottom:1px solid var(--surface-border);justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin:0 auto;padding:2rem 1.5rem 1.5rem;display:flex}.brand{align-items:center;gap:.75rem;display:flex}.brand-icon{background:var(--accent-gradient);width:36px;height:36px;box-shadow:var(--accent-glow);border-radius:10px;justify-content:center;align-items:center;display:flex}.brand-icon svg{fill:#fff;width:18px;height:18px}.brand-title{letter-spacing:-.025em;background:linear-gradient(to right, #fff, var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.25rem;font-weight:800}.mode-badge{color:#8080ff;background-color:#5252e01a;border:1px solid #5252e033;border-radius:20px;align-items:center;gap:.35rem;padding:.25rem .75rem;font-family:monospace;font-size:.75rem;display:flex}.mode-badge:before{content:"";background-color:var(--accent-indigo);border-radius:50%;width:6px;height:6px;animation:1.5s infinite pulse;display:inline-block}@keyframes pulse{0%{opacity:.6;transform:scale(.9)}50%{opacity:1;transform:scale(1.2)}to{opacity:.6;transform:scale(.9)}}main{flex-grow:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.dashboard{grid-template-columns:1fr;gap:2rem;display:grid}@media (width>=900px){.dashboard{grid-template-columns:380px 1fr}}.panel{background-color:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--border-radius);flex-direction:column;gap:1.5rem;height:fit-content;padding:1.5rem;display:flex}.panel-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid var(--surface-border);align-items:center;gap:.5rem;padding-bottom:.75rem;font-size:.875rem;font-weight:700;display:flex}.tabs{background-color:var(--bg-color);border:1px solid var(--surface-border);border-radius:calc(var(--border-radius) - 4px);grid-template-columns:1fr 1fr;padding:2px;display:grid}.tab-btn{color:var(--text-muted);font-family:var(--font-family);border-radius:calc(var(--border-radius) - 6px);cursor:pointer;transition:all var(--transition-speed);background:0 0;border:none;padding:.5rem;font-size:.75rem;font-weight:600}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{background-color:var(--surface-hover);color:var(--text-primary);box-shadow:0 2px 4px #0003}.input-content{min-height:220px;position:relative}.upload-area{border:2px dashed var(--surface-border);border-radius:var(--border-radius);text-align:center;cursor:pointer;transition:border-color var(--transition-speed), background-color var(--transition-speed);background-color:#06070a4d;flex-direction:column;justify-content:center;align-items:center;min-height:220px;padding:2rem 1.5rem;display:flex}.upload-area:hover{border-color:var(--accent-rose);background-color:#ec417a05}.upload-icon{width:48px;height:48px;color:var(--text-muted);transition:color var(--transition-speed);margin-bottom:1rem}.upload-area:hover .upload-icon{color:var(--accent-rose)}.upload-area p{color:var(--text-secondary);margin-bottom:.25rem;font-size:.875rem;font-weight:500}.upload-area span{color:var(--text-muted);font-size:.75rem}.webcam-area{border-radius:var(--border-radius);background-color:#000;justify-content:center;align-items:center;min-height:220px;display:flex;position:relative;overflow:hidden}.webcam-video{object-fit:cover;width:100%;height:220px;display:block;transform:scaleX(-1)}.webcam-placeholder{background-color:var(--surface-color);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:absolute;inset:0}.webcam-placeholder p{color:var(--text-secondary);margin-bottom:1rem;font-size:.75rem}.btn-webcam-action{background-color:var(--bg-color);color:var(--text-primary);border:1px solid var(--surface-border);cursor:pointer;transition:all var(--transition-speed);border-radius:8px;padding:.5rem 1rem;font-size:.75rem;font-weight:600}.btn-webcam-action:hover{border-color:var(--text-muted);background-color:var(--surface-hover)}.webcam-controls{z-index:10;justify-content:center;gap:.5rem;display:flex;position:absolute;bottom:1rem;left:0;right:0}.btn-capture{background:var(--accent-gradient);color:#fff;cursor:pointer;transition:opacity var(--transition-speed);border:none;border-radius:8px;padding:.5rem 1rem;font-size:.75rem;font-weight:700;box-shadow:0 4px 12px #0000004d}.btn-capture:hover{opacity:.9}.preview-container{flex-direction:column;gap:.75rem;display:flex}.preview-header{color:var(--text-secondary);justify-content:space-between;align-items:center;font-size:.75rem;font-weight:600;display:flex}.btn-clear{color:var(--text-muted);cursor:pointer;transition:color var(--transition-speed);background:0 0;border:none}.btn-clear:hover{color:var(--accent-rose)}.preview-wrapper{aspect-ratio:4/3;border-radius:var(--border-radius);border:1px solid var(--surface-border);background-color:#000;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.preview-img{object-fit:contain;max-width:100%;max-height:100%}.control-group{border-top:1px solid var(--surface-border);flex-direction:column;gap:.5rem;padding-top:1rem;display:flex}.control-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.resolution-select{background-color:var(--bg-color);border:1px solid var(--surface-border);color:var(--text-primary);font-size:.75rem;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:border-color var(--transition-speed);border-radius:8px;outline:none;width:100%;padding:.6rem .8rem}.resolution-select:focus{border-color:var(--accent-rose)}.output-panel{flex-direction:column;gap:1.25rem;display:flex}.gallery-header{justify-content:space-between;align-items:center;display:flex}.gallery-title{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.05em;font-size:.875rem;font-weight:700}.gallery-empty{text-align:center;border:1px dashed var(--surface-border);background-color:var(--surface-color);border-radius:var(--border-radius);flex-direction:column;flex-grow:1;justify-content:center;align-items:center;padding:5rem 2rem;display:flex}.gallery-empty-icon{width:48px;height:48px;color:var(--text-muted);margin-bottom:1rem}.gallery-empty h3{color:var(--text-secondary);margin-bottom:.25rem;font-size:.875rem;font-weight:600}.gallery-empty p{color:var(--text-muted);max-width:320px;font-size:.75rem}.gallery-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=600px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}.output-card{flex-direction:column;gap:.75rem;display:flex}.card-frame{aspect-ratio:3/4;border-radius:var(--border-radius);border:1px solid var(--surface-border);cursor:pointer;background-color:#000;position:relative;overflow:hidden}.card-img{object-fit:cover;width:100%;height:100%;display:block}.card-meta{z-index:3;background:linear-gradient(#0000 0%,#000c 100%);flex-direction:column;padding:.75rem;display:flex;position:absolute;bottom:0;left:0;right:0}.card-tag{font-size:.7rem;font-family:var(--font-family);color:var(--text-primary);text-transform:uppercase;letter-spacing:.02em;font-weight:700}.card-time-chip{-webkit-backdrop-filter:blur(4px);border:1px solid var(--surface-border);color:var(--accent-rose);z-index:4;transition:opacity var(--transition-speed);background-color:#080a0fbf;border-radius:20px;padding:.25rem .5rem;font-family:monospace;font-size:.7rem;font-weight:700;position:absolute;top:.75rem;left:.75rem}.card-download-btn{-webkit-backdrop-filter:blur(4px);border:1px solid var(--surface-border);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;z-index:4;opacity:0;pointer-events:none;transition:opacity var(--transition-speed), color var(--transition-speed), background-color var(--transition-speed), border-color var(--transition-speed);background-color:#080a0fbf;border-radius:50%;outline:none;justify-content:center;align-items:center;display:flex;position:absolute;top:.75rem;right:.75rem}.card-frame:hover .card-download-btn:not([disabled]){opacity:1;pointer-events:all}.card-download-btn:hover{background-color:var(--accent-rose);color:#fff;border-color:var(--accent-rose)}.card-download-btn svg{fill:currentColor;width:16px;height:16px}.card-loader{z-index:5;background-color:#080a0fe0;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;inset:0}.card-loader-spinner{border:2px solid var(--text-muted);border-top-color:var(--accent-rose);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}.card-loader-text{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:700}.card-loader-timer{color:var(--accent-rose);font-family:monospace;font-size:1rem;font-weight:800}@keyframes spin{to{transform:rotate(360deg)}}.lightbox{-webkit-backdrop-filter:blur(12px);z-index:10000;opacity:0;pointer-events:none;background-color:#05070af0;justify-content:center;align-items:center;transition:opacity .25s ease-in-out;display:flex;position:fixed;inset:0}.lightbox.active{opacity:1;pointer-events:all}.lightbox-content{flex-direction:column;align-items:center;gap:1rem;max-width:90vw;max-height:85vh;display:flex}#lightbox-img{object-fit:contain;border:1px solid var(--surface-border);border-radius:8px;max-width:100%;max-height:75vh;transition:transform .3s ease-in-out;box-shadow:0 24px 64px #000000e6}.lightbox-title{color:var(--text-secondary);font-family:monospace;font-size:.875rem;font-weight:700}.lightbox-btn{color:var(--text-secondary);cursor:pointer;transition:color var(--transition-speed);background:0 0;border:none;outline:none;justify-content:center;align-items:center;padding:1rem;font-size:1.5rem;display:flex;position:absolute}.lightbox-btn:hover{color:var(--text-primary)}.lightbox-btn svg{width:20px;height:20px}.close-btn{font-size:2rem;top:1.5rem;right:1.5rem}.rotate-btn{top:1.5rem;right:5rem}.prev-btn{font-size:2.5rem;left:2rem}.next-btn{font-size:2.5rem;right:2rem}@media (width<=768px){.prev-btn{font-size:1.75rem;left:.5rem}.next-btn{font-size:1.75rem;right:.5rem}.close-btn{font-size:1.75rem;top:1rem;right:1rem}.rotate-btn{top:1rem;right:4rem}}.toast-container{z-index:1000;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:2rem;right:2rem}.toast{background-color:var(--surface-color);border:1px solid var(--surface-border);color:var(--text-primary);border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.75rem;font-weight:500;animation:.3s forwards slideIn;display:flex;box-shadow:0 4px 12px #00000080}.toast.success{border-left:3px solid var(--status-success)}.toast.warning{border-left:3px solid var(--status-warning)}.toast.error{border-left:3px solid var(--status-error)}@keyframes slideIn{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.hidden{display:none!important}
