:root{--bg:#000;--text:#f5f5f7;--text-dim:#f5f5f78c;--accent:#0a84ff;--success:#30d158;--ring-idle:#ffffff47}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}.strands-container{background:0 0;width:100%;height:100%;position:relative}.strands-container canvas{width:100%;height:100%;display:block}.app{flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.screen{padding:calc(env(safe-area-inset-top,0px) + 76px) 24px calc(env(safe-area-inset-bottom,0px) + 28px);flex-direction:column;align-items:center;display:flex;position:absolute;inset:0}.app-brand{z-index:10;padding-top:calc(env(safe-area-inset-top,0px) + 22px);text-align:center;letter-spacing:-.4px;pointer-events:none;font-size:22px;font-weight:800;position:relative}.scan-stage{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:32px;width:100%;display:flex}.scan-begin-slot{justify-content:center;align-items:center;height:52px;display:flex}.scan-begin{background:var(--accent);color:#fff;border-radius:999px;padding:14px 36px;font-size:17px;font-weight:600}.scan-begin:disabled{opacity:.45;cursor:default}.face-frame{aspect-ratio:1;width:min(78vw,340px);position:relative}.face-viewport{background:#101014;border-radius:50%;position:absolute;inset:9.5%;overflow:hidden}.face-viewport video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.face-crosshair{pointer-events:none;opacity:.5;position:absolute;inset:0}.face-ring{width:100%;height:100%;position:absolute;inset:0}.scan-caption{text-align:center;flex-direction:column;align-items:center;gap:10px;min-height:96px;display:flex}.scan-caption h1{letter-spacing:.2px;font-size:20px;font-weight:600;line-height:1.25}.scan-caption p{color:var(--text-dim);font-size:15px}.scan-error{color:var(--text-dim);text-align:center;max-width:280px;font-size:15px;line-height:1.45}.scan-retry{color:var(--accent);padding:10px 16px;font-size:17px}.analyze-body{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:40px;width:100%;max-width:360px;display:flex}.analyze-strands{width:100%;height:160px;position:relative}.analyze-title{letter-spacing:.2px;font-size:22px;font-weight:600}.analyze-steps{flex-direction:column;gap:16px;width:100%;min-height:230px;display:flex}.analyze-step{color:var(--text-dim);align-items:center;gap:12px;font-size:15px;display:flex}.analyze-step.done{color:var(--text)}.step-indicator{flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.step-spinner{border:2px solid #ffffff2e;border-top-color:var(--accent);border-radius:50%;width:14px;height:14px}.analyze-progress{flex-direction:column;align-items:center;gap:10px;width:100%;max-width:360px;display:flex}.analyze-progress-track{background:#ffffff1f;border-radius:2px;width:100%;height:4px;overflow:hidden}.analyze-progress-fill{transform-origin:0;background:linear-gradient(90deg,#0a84ff,#5e5ce6);border-radius:2px;height:100%}.analyze-progress-label{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:13px}.result-body{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;width:100%;max-width:360px;display:flex}.result-mark{width:140px;height:140px}.result-headline{letter-spacing:-.3px;font-size:32px;font-weight:700;line-height:1.2}.result-sub{color:var(--text-dim);font-size:15px;line-height:1.5}.result-confidence{color:var(--success);letter-spacing:.4px;text-transform:uppercase;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.result-footer{flex-direction:column;align-items:center;gap:14px;display:flex}.result-support{background:var(--text);color:#000;text-align:center;border-radius:999px;min-width:220px;padding:14px 40px;font-size:17px;font-weight:600;text-decoration:none}.result-again{color:var(--text);background:0 0;border:1.5px solid #f5f5f766;border-radius:999px;min-width:220px;padding:13px 40px;font-size:17px;font-weight:600}.result-disclaimer{color:#f5f5f759;font-size:12px}
