:root{--bg:#030303;--card:#0a0a0e;--card-hover:#0f0f14;--border:#17171e;--border-light:#222230;--text:#e8e8ed;--dim:#5e5e6e;--accent:#00d4aa;--accent-soft:rgba(0,212,170,0.08);--glow:rgba(0,212,170,0.15);--glow-strong:rgba(0,212,170,0.25);--red:#ff3b5c;--amber:#f0a030;--r:14px}*,:after,:before{margin:0;padding:0;box-sizing:border-box}body,html{height:100%}body{background:var(--bg);color:var(--text);font-family:Outfit,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;top:-40%;left:50%;transform:translateX(-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(0,212,170,.04) 0,transparent 70%);pointer-events:none;z-index:0}.shell{position:relative;z-index:1;max-width:400px;margin:0 auto;min-height:100dvh;padding:0 24px;justify-content:center}.shell,.upload-state{display:flex;flex-direction:column}.upload-state{gap:20px;animation:fadeUp .6s cubic-bezier(.16,1,.3,1)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.brand{text-align:center;padding-bottom:4px}.dot{width:6px;height:6px;border-radius:50%;background:var(--accent);margin:0 auto 14px;box-shadow:0 0 8px var(--glow),0 0 24px var(--glow),0 0 48px rgba(0,212,170,.06);animation:pulse 3s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 8px var(--glow),0 0 24px var(--glow),0 0 48px rgba(0,212,170,.06);transform:scale(1)}50%{box-shadow:0 0 12px var(--glow-strong),0 0 32px var(--glow),0 0 64px rgba(0,212,170,.08);transform:scale(1.2)}}.brand h1{font-size:21px;font-weight:600;letter-spacing:-.035em;color:var(--text)}.brand h1 span{color:var(--accent)}.scan-counter{font-size:12px;color:var(--dim);margin-top:8px;font-weight:400;letter-spacing:.02em}.capture-btn{height:200px;border:1px solid var(--border);border-radius:var(--r);background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;cursor:pointer;color:var(--dim);font-family:inherit;font-size:14px;transition:all .3s cubic-bezier(.16,1,.3,1);-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}.capture-btn:before{content:"";position:absolute;inset:0;border-radius:var(--r);background:radial-gradient(circle at 50% 50%,var(--accent-soft) 0,transparent 70%);opacity:0;transition:opacity .4s;pointer-events:none}.capture-btn:active{border-color:rgba(0,212,170,.3);transform:scale(.985)}.capture-btn:active:before{opacity:1}.capture-btn svg{opacity:.3;transition:opacity .3s}.capture-btn:active svg{opacity:.6}.capture-label{font-weight:500;font-size:13px;letter-spacing:.01em}.backed-label{font-size:11px;color:var(--dim);opacity:.45;font-weight:400}.preview-card{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--border)}.preview-card img{width:100%;height:220px;object-fit:cover;display:block}.change-btn{position:absolute;top:10px;right:10px;background:rgba(3,3,3,.65);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.8);font-size:11px;font-weight:500;font-family:inherit;padding:6px 14px;border-radius:100px;cursor:pointer;letter-spacing:.02em;transition:all .2s}.change-btn:active{background:rgba(3,3,3,.85)}.actions{display:flex;flex-direction:column;gap:10px}.note-wrap{position:relative;width:100%}.note{width:100%;padding:14px 16px;background:var(--card);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-size:13px;font-weight:400;font-family:inherit;outline:none;transition:border-color .2s;letter-spacing:.01em;resize:none;overflow:hidden;min-height:48px;line-height:1.5}.note::placeholder{color:var(--dim)}.note:focus{border-color:rgba(0,212,170,.4)}.note-hint{font-size:11px;opacity:.5;margin:-4px 0 0}.note-hint,.note-placeholder{color:var(--dim);font-weight:400}.note-placeholder{position:absolute;top:14px;left:16px;right:16px;font-size:13px;font-family:inherit;letter-spacing:.01em;line-height:1.5;pointer-events:none;white-space:pre-wrap}.note-cursor{display:inline-block;width:1.5px;height:1em;background:var(--dim);vertical-align:text-bottom;margin-left:1px;animation:blink .8s step-end infinite}@keyframes blink{50%{opacity:0}}.go-btn{width:100%;padding:15px;border:none;border-radius:var(--r);background:var(--accent);color:var(--bg);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:-.01em;transition:all .2s;-webkit-tap-highlight-color:transparent;box-shadow:0 0 20px rgba(0,212,170,.15)}.go-btn:active:not(:disabled){transform:scale(.98);box-shadow:0 0 30px rgba(0,212,170,.25)}.go-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.ghost-btn{width:100%;padding:13px;border:1px solid var(--border);border-radius:var(--r);background:transparent;color:var(--dim);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s;letter-spacing:.01em}.ghost-btn:active{border-color:var(--border-light);color:var(--text)}.spin{width:16px;height:16px;border:2px solid rgba(5,5,5,.1);border-top:2px solid var(--bg);border-radius:50%;animation:spin .65s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.err{text-align:center;color:var(--red);font-size:12px;font-weight:500;padding:12px;background:rgba(255,59,92,.06);border:1px solid rgba(255,59,92,.1);border-radius:var(--r)}.result-state{display:flex;flex-direction:column;align-items:center;gap:18px;animation:reveal .5s cubic-bezier(.16,1,.3,1)}@keyframes reveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.result-hero{position:relative;width:100%;border-radius:var(--r);overflow:hidden;border:1px solid var(--border)}.result-img{width:100%;height:220px;object-fit:cover;display:block}.result-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,3,3,.92) 0,rgba(3,3,3,.4) 40%,rgba(3,3,3,.05) 70%)}.result-score{position:absolute;bottom:14px;left:50%;transform:translateX(-50%)}.score-ring-wrap{position:relative;width:140px;height:140px;display:flex;align-items:center;justify-content:center}.score-ring-wrap svg{position:absolute;inset:0}.score-arc{transition:stroke-dashoffset 1.2s cubic-bezier(.16,1,.3,1)}.score-inner{position:relative;text-align:center;line-height:1;text-shadow:0 2px 20px rgba(0,0,0,.7)}.score-num{font-size:40px;font-weight:700;letter-spacing:-.04em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.score-of{display:block;font-size:11px;opacity:.4;font-weight:500;margin-top:2px;letter-spacing:.02em}.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.chip{padding:6px 13px;background:var(--card);border:1px solid var(--border);border-radius:100px;font-size:12px;font-weight:500;letter-spacing:.01em}.chip,.verdict{color:var(--dim)}.verdict{text-align:center;font-size:13px;line-height:1.6;max-width:340px;font-weight:400}.suggestion-wrap{display:flex;flex-direction:column;align-items:center;gap:10px}.suggestion-btn{background:none;border:1px solid var(--border);border-radius:100px;color:var(--dim);font-size:11px;font-weight:500;font-family:inherit;padding:6px 16px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s;letter-spacing:.02em}.suggestion-btn:active{border-color:var(--amber);color:var(--amber)}.suggestion{text-align:center;font-size:12px;line-height:1.5;color:var(--amber);opacity:.8;font-weight:400}.sources{width:100%;display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:var(--card);border:1px solid var(--border);border-radius:var(--r)}.sources-label{font-size:10px;color:var(--dim);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.source-link{font-size:12px;color:var(--accent);text-decoration:none;opacity:.6;transition:opacity .2s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}.source-link:active{opacity:1}.clarify-wrap{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:4px}.clarify-label{font-size:11px;color:var(--dim);opacity:.5;font-weight:400;margin:0}.clarify-wrap .note{font-size:.85rem}.clarify-wrap .go-btn{width:100%;padding:10px;font-size:.85rem}.again{width:100%}