:root{--text:#1a1a1a;--text-secondary:#6b6b6b;--bg:#faf9f7;--bg-card:#fff;--accent:#8b6f47;--accent-hover:#725a39;--border:#e8e4df;--serif:"Playfair Display", Georgia, "Times New Roman", serif;--sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{flex-direction:column;width:100%;max-width:430px;height:100svh;margin:0 auto;display:flex;position:relative;overflow:hidden}.screen{background:#000;flex-direction:column;height:100svh;display:flex}.onboard-screen{background:var(--bg);justify-content:space-between;padding:0 32px}.onboard-content{flex-direction:column;flex:1;justify-content:center;gap:40px;display:flex}.onboard-brand{text-align:center}.brand-name{font-family:var(--serif);color:var(--text);letter-spacing:-1px;margin:0;font-size:48px;font-weight:600;line-height:1.1}.brand-sub{font-family:var(--serif);color:var(--text-secondary);letter-spacing:2px;text-transform:lowercase;font-size:16px;font-style:italic}.onboard-copy{text-align:center;flex-direction:column;gap:6px;display:flex}.onboard-copy p{font-family:var(--serif);color:var(--text);margin:0;font-size:19px;line-height:1.5}.onboard-bottom{padding-bottom:48px}.onboard-bottom .capture-btn.ready{width:100%}.viewfinder{flex:1;position:relative;overflow:hidden}.camera-feed{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.preview{object-fit:cover;width:100%;height:100%}.controls{background:var(--bg);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:16px;height:25svh;padding:0 40px;display:flex}.controls-prompt{font-family:var(--serif);color:var(--text);letter-spacing:-.3px;font-size:18px;font-style:italic}.controls-row{justify-content:space-between;align-items:center;width:100%;display:flex}.capture-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;padding:0;display:flex}.capture-ring{border:4px solid var(--accent);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;transition:transform .15s;display:flex}.capture-btn:active .capture-ring{transform:scale(.9)}.capture-fill{background:var(--accent);border-radius:50%;width:62px;height:62px;transition:transform .15s}.capture-btn:active .capture-fill{transform:scale(.85)}.capture-btn.ready{background:var(--accent);border-radius:12px;width:auto;height:auto;padding:18px 48px}.capture-btn.ready span{font-family:var(--serif);color:#fff;letter-spacing:.3px;font-size:17px;font-weight:500}.capture-btn.ready:active{background:var(--accent-hover)}.ctrl-btn{cursor:pointer;background:#8b6f4714;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:background .2s;display:flex}.ctrl-btn:active{background:#8b6f4726}.ctrl-btn svg{width:22px;height:22px;color:var(--accent)}.ctrl-btn.placeholder{visibility:hidden}.toast{color:#fff;font-family:var(--serif);z-index:10;background:#000000d9;padding:16px 44px 16px 20px;font-size:15px;font-style:italic;line-height:1.5;animation:.3s ease-out toast-in;position:absolute;bottom:25svh;left:0;right:0}.toast-close{color:#ffffff80;cursor:pointer;background:0 0;border:none;padding:4px;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.capture-ring.rec{border-color:#c0392b}.capture-fill.rec{background:#c0392b}.capture-btn.stop{width:80px;height:80px}.capture-btn.stop .stop-icon{background:#c0392b;border-radius:6px;width:28px;height:28px}.capture-btn.stop.disabled .stop-icon{opacity:.3}.video-prompt-card{border:1px solid var(--border);text-align:center;background:#8b6f470f;border-radius:12px;padding:14px 20px}.video-prompt-card p{font-family:var(--serif);color:var(--text);font-size:16px;font-style:italic;line-height:1.4}.timer-bar-track{z-index:5;background:#fff3;height:4px;position:absolute;top:0;left:0;right:0}.timer-bar-fill{background:#c0392b;height:100%;transition:width 1s linear}.timer-label{color:#fff;font-family:var(--sans);z-index:5;background:#0009;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:500;display:flex;position:absolute;top:16px;right:16px}.rec-dot{background:#c0392b;border-radius:50%;width:8px;height:8px;animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.done-screen{background:var(--bg);justify-content:center;align-items:center;gap:8px}.done-sub{font-family:var(--sans);color:var(--text-secondary);font-size:14px}.dev-toggle{border:2px solid var(--accent);background:var(--bg);width:40px;height:40px;color:var(--accent);font-family:var(--sans);text-transform:uppercase;cursor:pointer;z-index:100;border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:600;display:flex;position:fixed;bottom:20px;right:20px}.dev-panel{z-index:100;background:#1a1a1a;border:1px solid #333;border-radius:12px;flex-direction:column;width:320px;max-height:400px;display:flex;position:fixed;bottom:70px;right:20px;overflow:hidden}.dev-header{color:#fff;font-family:var(--sans);border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;font-weight:500;display:flex}.dev-header button{color:#666;cursor:pointer;background:0 0;border:none;display:flex}.dev-logs{flex:1;padding:12px 16px;overflow-y:auto}.dev-empty{color:#555;font-family:var(--sans);font-size:13px}.dev-log{margin-bottom:12px}.dev-time{color:#555;font-family:var(--sans);margin-right:8px;font-size:11px}.dev-label{color:var(--accent);font-family:var(--sans);font-size:12px;font-weight:500}.dev-data{color:#aaa;white-space:pre-wrap;word-break:break-all;margin:4px 0 0;font-family:monospace;font-size:11px}.photo-results-screen{background:var(--bg);justify-content:space-between;padding:0 24px}.photo-results-top{padding-top:60px}.photo-results-score-row{align-items:center;gap:20px;display:flex}.photo-results-ring{border:3px solid var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:baseline;width:72px;height:72px;padding-top:18px;display:flex}.photo-results-num{font-family:var(--serif);color:var(--text);font-size:28px;font-weight:600;line-height:1}.photo-results-of{font-family:var(--sans);color:var(--text-secondary);font-size:14px}.photo-results-meta{flex:1}.photo-results-label{font-family:var(--serif);color:var(--text);margin-bottom:4px;font-size:20px;font-style:italic}.photo-results-vibe{font-family:var(--sans);color:var(--text-secondary);font-size:14px;line-height:1.4}.photo-results-body{flex-direction:column;flex:1;justify-content:center;gap:20px;display:flex}.photo-results-tips h3{font-family:var(--serif);color:var(--text);margin-bottom:10px;font-size:16px;font-style:italic;font-weight:500}.photo-results-tips ul{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.photo-results-tips li{font-family:var(--sans);color:var(--text-secondary);border:1px solid var(--border);background:#fff;border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.4}.photo-results-scores{gap:10px;display:flex}.photo-results-chip{border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:12px;display:flex}.photo-results-chip .chip-label{font-family:var(--sans);color:var(--text-secondary);text-transform:lowercase;font-size:11px}.photo-results-chip .chip-val{font-family:var(--serif);color:var(--text);font-size:18px;font-weight:500}.photo-results-bottom{flex-direction:column;gap:16px;padding-bottom:48px;display:flex}.photo-results-reassure{font-family:var(--sans);color:var(--text-secondary);text-align:center;font-size:13px;line-height:1.4}.photo-results-actions{gap:12px;display:flex}.photo-results-actions .capture-btn.ready{flex:1}.btn-secondary{border:1px solid var(--border);font-family:var(--serif);color:var(--text);cursor:pointer;letter-spacing:.3px;background:0 0;border-radius:12px;padding:18px 24px;font-size:17px;font-weight:500;transition:background .2s}.btn-secondary:active{background:#00000008}.processing-spinner{color:var(--accent);margin-bottom:8px}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.round-badge{color:#fff;font-family:var(--sans);z-index:5;background:#0009;border-radius:20px;padding:6px 12px;font-size:13px;font-weight:500;position:absolute;top:16px;left:16px}.comm-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.comm-chip{border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;gap:2px;padding:10px 14px;display:flex}.comm-label{font-family:var(--sans);color:var(--text-secondary);text-transform:lowercase;font-size:11px}.comm-val{font-family:var(--serif);color:var(--text);font-size:15px;font-style:italic}.vibe-summary{font-family:var(--serif);color:var(--text);text-align:center;border:1px solid var(--border);background:#8b6f470a;border-radius:12px;padding:16px;font-size:16px;font-style:italic;line-height:1.6}.profile-screen{background:var(--bg);gap:24px;padding:48px 24px;overflow-y:auto}.profile-header{text-align:center}.profile-tagline{font-family:var(--serif);color:var(--text);margin-bottom:8px;font-size:24px;font-style:italic;line-height:1.3}.profile-type{font-family:var(--sans);color:var(--accent);text-transform:lowercase;background:#8b6f4714;border-radius:20px;padding:6px 16px;font-size:14px;font-weight:500;display:inline-block}.profile-score-ring{border:3px solid var(--accent);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:100px;height:100px;margin:0 auto;display:flex}.profile-score{font-family:var(--serif);color:var(--text);font-size:36px;font-weight:600;line-height:1}.profile-score-label{font-family:var(--sans);color:var(--text-secondary);text-transform:lowercase;font-size:11px}.profile-section{text-align:left}.profile-section h3{font-family:var(--serif);color:var(--text);margin-bottom:10px;font-size:16px;font-style:italic;font-weight:500}.profile-section ul{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.profile-section li{font-family:var(--sans);color:var(--text-secondary);border:1px solid var(--border);background:#fff;border-radius:10px;padding:10px 14px;font-size:14px;line-height:1.4}.profile-compat{font-family:var(--sans);color:var(--text-secondary);border:1px solid var(--border);background:#8b6f470a;border-radius:12px;padding:16px;font-size:14px;line-height:1.6}
