*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #f8fafc;--color-surface: #ffffff;--color-border: #e2e8f0;--color-text: #1e293b;--color-text-secondary: #64748b;--color-accent: #1e5a8a;--color-accent-hover: #164569;--color-accent-light: #e0f2fe;--color-solar: #f59e0b;--radius-md: 12px;--radius-lg: 16px}body{font-family:Lato,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;color:var(--color-text);background:var(--color-bg);min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:32px 24px}.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 130px);border-radius:var(--radius-lg)}.upload-zone.hidden{display:none}.landing-content{display:flex;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:900px;padding:40px 24px}.landing-hero{display:flex;flex-direction:column;align-items:center;gap:24px;width:100%}.landing-text{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:550px}.landing-title{font-size:28px;font-weight:700;color:var(--color-accent);text-align:center;line-height:1.2}.landing-description{font-size:16px;color:var(--color-text-secondary);text-align:center;line-height:1.6}@media (min-width: 800px){.landing-hero{flex-direction:row;align-items:center;gap:48px}.landing-text{flex:1;align-items:flex-start}.landing-title{text-align:left;font-size:36px}.landing-description{text-align:left}.landing-hero .upload-area{flex-shrink:0;width:320px}}.landing-steps{display:flex;align-items:center;justify-content:center;gap:12px;margin:8px 0 16px}.step{display:flex;align-items:center;gap:7px}.step-number{width:21px;height:21px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);color:#fff;font-size:11px;font-weight:700;border-radius:50%}.step-text{font-size:12px;color:var(--color-text-secondary);font-weight:500;white-space:nowrap}.step-arrow{color:var(--color-border)}.step-arrow svg{display:block;opacity:1;color:var(--color-border)}.upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;padding:32px;border:2px dashed var(--color-accent);border-radius:var(--radius-md);background:var(--color-accent-light);transition:border-color .2s,background .2s,box-shadow .2s;height:250px;cursor:pointer}.upload-area:hover,.upload-zone.dragover .upload-area{border-color:var(--color-accent-hover);background:#bae6fd;box-shadow:0 6px 20px #1e5a8a2e}.upload-area svg{color:var(--color-accent);opacity:.8;transition:opacity .2s,color .2s}.upload-area:hover svg,.upload-zone.dragover .upload-area svg{opacity:1;color:var(--color-accent-hover)}.upload-title{font-size:15px;font-weight:750;color:var(--color-accent)}.upload-subtitle{font-size:13px;color:var(--color-text-secondary)}.upload-zone input{display:none}.selection-zone{display:flex;flex-direction:column;align-items:center;padding-top:16px}.selection-zone.hidden{display:none}.selection-hint{font-size:15px;color:var(--color-text-secondary);text-align:center;margin-bottom:16px}.preview-container{position:relative;width:100%;max-width:1000px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);box-shadow:0 4px 20px #0000001f}.preview-container img{width:100%;height:auto;display:block}.svg-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:crosshair}.svg-overlay .corner-handle{cursor:grab;transition:r .15s ease,fill .15s ease}.svg-overlay .corner-handle:hover{r:10;fill:#c00}.svg-overlay .corner-handle:active{cursor:grabbing}.selection-toolbar{display:flex;justify-content:center;gap:12px;margin-top:20px;width:100%;max-width:1000px}.toolbar-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:background .2s,border-color .2s,transform .1s}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn:active:not(:disabled){transform:scale(.98)}.toolbar-btn.clear-btn{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.toolbar-btn.clear-btn:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5}.toolbar-btn.generate-btn{background:var(--color-accent);color:#fff;border:none;padding:12px 28px}.toolbar-btn.generate-btn:hover:not(:disabled){background:var(--color-accent-hover)}.toolbar-btn.generate-btn svg{animation:spin 2s linear infinite;animation-play-state:paused}.toolbar-btn.generate-btn:hover:not(:disabled) svg{animation-play-state:running}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.examples{margin-top:48px;padding-bottom:48px}.upload-zone.hidden~.examples{display:none}.selection-zone:not(.hidden)~.examples{display:none}.examples-title{font-size:20px;font-weight:700;color:var(--color-text);text-align:center;margin-bottom:24px}.examples-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.example-item{position:relative;aspect-ratio:4 / 3;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);box-shadow:0 2px 12px #00000014}.example-item>.always{opacity:1!important}.example-item img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:cycle 9s infinite}.example-item img:nth-child(1){animation-delay:0s}.example-item img:nth-child(2){animation-delay:3s}.example-item img:nth-child(3){animation-delay:6s}@keyframes cycle{0%{opacity:0}5%{opacity:1}33%{opacity:1}38%{opacity:0}to{opacity:0}}@media (max-width: 900px){.examples-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.examples-grid{grid-template-columns:1fr;gap:12px}.examples{margin-top:32px}}.back-btn{display:none;position:fixed;top:24px;left:24px;width:44px;height:44px;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:50%;cursor:pointer;transition:background .2s,border-color .2s;z-index:100;box-shadow:0 2px 8px #00000014}.back-btn.visible{display:flex}.back-btn:hover{background:var(--color-accent-light);border-color:var(--color-accent)}.back-btn svg{color:var(--color-text)}.gallery{display:flex;flex-direction:column;gap:20px;max-width:700px;margin:0 auto}.gallery:empty{display:none}.gallery-item{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);box-shadow:0 2px 12px #0000001a}.gallery-item img{width:100%;height:auto;display:block}.gallery-item .download-btn{position:absolute;bottom:12px;right:12px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#fffffff2;border-radius:50%;color:var(--color-text);text-decoration:none;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s,background .2s;box-shadow:0 2px 8px #00000026}.gallery-item:hover .download-btn{opacity:1;transform:translateY(0)}.gallery-item .download-btn:hover{background:var(--color-accent);color:#fff}.gallery-item.loading{aspect-ratio:4 / 3;background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.error-message{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 40px;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0000001f;text-align:center;z-index:200}.error-message svg{color:#d97706}.error-message p{font-size:15px;color:var(--color-text);max-width:280px;line-height:1.5}.error-message .error-dismiss{padding:10px 24px;background:var(--color-accent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.error-message .error-dismiss:hover{background:var(--color-accent-hover)}@media (max-width: 640px){.app{padding:20px 16px}.upload-zone{min-height:calc(100vh - 100px)}.landing-content{padding:24px 16px}.landing-title{font-size:24px}.landing-description{font-size:15px}.gallery{gap:16px}.selection-content{gap:24px}.options-container{min-width:auto;width:100%}}@media (max-width: 500px){.landing-steps{display:none}}.progress-indicator{position:fixed;bottom:24px;right:24px;display:none;flex-direction:column;gap:8px;padding:16px 20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 16px #0000001a;z-index:100;min-width:200px}.progress-indicator.visible{display:flex}.progress-text{font-size:13px;font-weight:500;color:var(--color-text)}.progress-bar{width:100%;height:6px;background:var(--color-bg);border-radius:3px;overflow:hidden}.progress-fill{height:100%;width:0%;background:var(--color-accent);border-radius:3px;transition:width .3s ease-out}.debug-preview{display:none;position:fixed;bottom:24px;left:24px;max-width:300px;background:var(--color-surface);border:2px solid #ff6b6b;border-radius:var(--radius-md);box-shadow:0 4px 16px #00000026;z-index:150;overflow:hidden}.debug-preview.visible{display:block}.debug-preview-header{padding:8px 12px;background:#ff6b6b;color:#fff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.debug-preview img{width:100%;height:auto;display:block}.debug-preview img:not([src]),.debug-preview img[src=""]{display:none}
