@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700;900&family=JetBrains+Mono:wght@400;700&family=DM+Sans:wght@300;400;500&display=swap";:root{--black:#0a0a0a;--deep:#111;--stripe:#161616;--surface:#1c1c1c;--border:#2a2a2a;--muted:#5a5550;--warm:#8a8278;--white:#f5f0e8;--offwhite:#e8e2d8;--amber:#e8a020;--amber-dim:#b87a10;--amber-glow:#e8a0201f;--font-display:"Playfair Display", Georgia, serif;--font-body:"DM Sans", sans-serif;--font-mono:"JetBrains Mono", monospace;--radius:4px;--radius-lg:8px;--transition:.2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background-color:var(--black);color:var(--white);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-weight:300;line-height:1.6}.display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:900;line-height:1.1}.mono{font-family:var(--font-mono)}.accent-bar{background:var(--amber);width:48px;height:3px;margin-bottom:1.5rem}.page{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.btn{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius);cursor:pointer;transition:all var(--transition);border:none;align-items:center;gap:.5rem;padding:.75rem 1.75rem;font-size:.75rem;font-weight:700;text-decoration:none;display:inline-flex}.btn-primary{background:var(--amber);color:var(--black)}.btn-primary:hover{background:var(--offwhite);transform:translateY(-1px)}.btn-ghost{color:var(--warm);border:1px solid var(--border);background:0 0}.btn-ghost:hover{border-color:var(--amber);color:var(--amber)}.progress-track{background:var(--border);border-radius:1px;width:100%;height:2px;overflow:hidden}.progress-fill{background:var(--amber);height:100%;box-shadow:0 0 8px var(--amber);border-radius:1px;transition:width .4s}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes spin{to{transform:rotate(360deg)}}.fade-up{animation:.5s forwards fadeUp}.app{flex-direction:column;min-height:100vh;display:flex;position:relative}.app__stripe-layer{pointer-events:none;z-index:0;background-image:repeating-linear-gradient(90deg, transparent 0px, transparent 18px, var(--stripe) 18px, var(--stripe) 20px);opacity:.6;position:fixed;inset:0}.app__view{z-index:1;flex-direction:column;flex:1;display:flex;position:relative}.upload-page{gap:3rem;width:100%;max-width:640px;margin:0 auto}.upload-page__header{text-align:center}.upload-page__accent-bar{margin:0 auto 1.5rem}.upload-page__title{color:var(--white);margin-bottom:1rem;font-size:clamp(2.5rem,6vw,4.5rem)}.upload-page__title-accent{color:var(--amber)}.upload-page__tagline{color:var(--warm);max-width:440px;margin:0 auto;font-size:1.05rem;line-height:1.7}.upload-page__dropzone-wrapper{width:100%}.upload-page__dropzone{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;min-height:220px;transition:border-color var(--transition), background var(--transition);justify-content:center;align-items:center;display:flex;overflow:hidden}.upload-page__dropzone--dragging{border-color:var(--amber);background:var(--amber-glow)}.upload-page__dropzone--filled{cursor:default;padding:0}.upload-page__preview{width:100%;position:relative}.upload-page__preview-img{object-fit:cover;width:100%;max-height:360px;display:block}.upload-page__preview-change{color:var(--warm);border:1px solid var(--border);border-radius:var(--radius);letter-spacing:.08em;cursor:pointer;transition:color var(--transition), border-color var(--transition);background:#000000b3;padding:.4rem .8rem;font-size:.7rem;position:absolute;bottom:1rem;right:1rem}.upload-page__preview-change:hover{color:var(--amber);border-color:var(--amber)}.upload-page__empty{text-align:center;flex-direction:column;align-items:center;gap:.4rem;padding:3rem 2rem;display:flex}.upload-page__empty-icon{opacity:.3;margin-bottom:.6rem;font-size:2.5rem;line-height:1}.upload-page__empty-primary{color:var(--muted);letter-spacing:.08em;font-size:.8rem}.upload-page__empty-secondary{color:var(--muted);font-size:.8rem}.upload-page__file-input{display:none}.upload-page__submit{justify-content:center;animation-delay:50ms;display:flex}.upload-page__footer{color:var(--muted);letter-spacing:.08em;text-align:center;font-size:.65rem;animation-delay:.2s}.processing-page{justify-content:space-between;width:100%;max-width:720px;margin:0 auto;padding:3rem 2rem}.processing-page__header{width:100%}.processing-page__accent-bar{margin-bottom:1.25rem}.processing-page__connecting{align-items:center;gap:.75rem;display:flex}.processing-page__connecting-dot{background:var(--amber);border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:1.2s ease-in-out infinite pulse}.processing-page__connecting-label{color:var(--muted);letter-spacing:.1em;font-size:.75rem}.processing-page__step{flex-direction:column;gap:.25rem;display:flex}.processing-page__step-label{color:var(--amber);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem}.processing-page__step-description{color:var(--warm);font-size:.9rem}.processing-page__step-header{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.processing-page__confidence-badge{color:var(--amber);border:1px solid var(--amber-dim);letter-spacing:.08em;border-radius:999px;padding:.15rem .6rem;font-size:.65rem}.processing-page__image-area{flex:1;justify-content:center;align-items:center;width:100%;min-height:300px;margin:2rem 0;display:flex}.processing-page__skeleton{aspect-ratio:4/3;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);justify-content:center;align-items:center;width:100%;max-width:480px;display:flex}.processing-page__spinner{border:2px solid var(--border);border-top-color:var(--amber);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.processing-page__image{border-radius:var(--radius-lg);border:1px solid var(--border);object-fit:contain;width:100%;max-width:640px;max-height:70vh}.processing-page__footer{width:100%}.processing-page__progress-header{justify-content:space-between;align-items:baseline;margin-bottom:.5rem;display:flex}.processing-page__progress-label{color:var(--muted);letter-spacing:.08em;font-size:.65rem}.processing-page__progress-value{color:var(--amber);font-size:.65rem}.results-page{justify-content:flex-start;gap:2.5rem;width:100%;max-width:1100px;margin:0 auto;padding:3rem 2rem}.results-page__header{text-align:center;width:100%}.results-page__accent-bar{margin:0 auto 1.25rem}.results-page__title{color:var(--white);font-size:clamp(1.6rem,3.5vw,2.6rem)}.results-page__title-accent{color:var(--amber)}.results-page__grid{grid-template-columns:1fr 2fr;align-items:stretch;gap:2rem;width:100%;display:grid}.results-page__left{flex-direction:column;gap:1.25rem;display:flex}.results-page__original-image,.results-page__upc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.results-page__original-label,.results-page__upc-label{color:var(--muted);letter-spacing:.1em;border-bottom:1px solid var(--border);padding:.6rem .9rem;font-size:.65rem}.results-page__original-img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.results-page__barcode-box{justify-content:center;align-items:center;padding:1.25rem 1rem;display:flex}.results-page__barcode-svg{width:100%;max-width:220px}.results-page__barcode-fallback{color:var(--muted);letter-spacing:.1em;font-size:.75rem}.results-page__product-area{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.results-page__product-image-wrap{background:var(--deep);justify-content:center;align-items:center;padding:2rem;display:flex}.results-page__product-img{object-fit:contain;max-width:100%;max-height:200px}.results-page__product-image-wrap--empty{justify-content:center;min-height:160px}.results-page__no-image{color:var(--muted);letter-spacing:.08em;font-size:.75rem}.results-page__product-img--hidden{display:none}.results-page__product-img-spinner{justify-content:center;align-items:center;width:100%;min-height:120px;display:flex}.results-page__product-title{font-family:var(--font-display);color:var(--white);padding:1.25rem 1.5rem 0;font-size:clamp(1.1rem,2vw,1.5rem);font-weight:700;line-height:1.3}.results-page__offers{flex-wrap:wrap;gap:.5rem;margin-top:auto;padding:1rem 1.5rem 1.5rem;display:flex}.results-page__offer-link{padding:.5rem 1rem;font-size:.7rem}.results-page__no-offers{color:var(--muted);margin-top:auto;padding:1rem 1.5rem 1.5rem;font-size:.85rem}.results-page__actions{justify-content:center;gap:1rem;width:100%;display:flex}@media (width<=640px){.results-page__grid{grid-template-columns:1fr}}.error-page{text-align:center;gap:2rem;width:100%;max-width:480px;margin:0 auto}.error-page__icon{color:var(--border);letter-spacing:-.05em;-webkit-user-select:none;user-select:none;font-size:1.8rem;text-decoration:line-through}.error-page__body{flex-direction:column;align-items:center;display:flex}.error-page__accent-bar{background:#c0392b}.error-page__title{color:var(--white);margin-bottom:1rem;font-size:2rem}.error-page__message{color:var(--warm);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;padding:1rem 1.25rem;font-size:.85rem;line-height:1.6}
