:root{--bg:#0c0d0b;--bg-soft:#141513;--line:#2a2c27;--line-soft:#1d1f1b;--ink:#e8e5dc;--ink-dim:#8d8e84;--ink-faint:#565852;--amber:#e8b04b;--amber-dim:#8a6a2e;--ok:#8fbf7a;--err:#d96b5d;--overlay:#080907c7;--font-display:"Fraunces", "Times New Roman", serif;--font-mono:"IBM Plex Mono", "Courier New", monospace;--font-sans:"IBM Plex Sans", system-ui, sans-serif}[data-theme=light]{--bg:#f3f1ea;--bg-soft:#fff;--line:#d6d2c4;--line-soft:#e7e3d6;--ink:#1c1b17;--ink-dim:#6a6b60;--ink-faint:#9b9c8e;--amber:#b8841f;--amber-dim:#c99a36;--ok:#4a8a3a;--err:#c0453a;--overlay:#28282380}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow-x:hidden}#app{min-height:100vh}::selection{background:var(--amber);color:#1a1a1a}input,button,select,textarea{-webkit-tap-highlight-color:transparent;font-family:inherit}.shell[data-v-48baef12]{background:radial-gradient(1200px 600px at 80% -10%, #e8b04b0f, transparent 60%), radial-gradient(900px 500px at -10% 110%, #e8b04b0a, transparent 55%), var(--bg);background-attachment:fixed;flex-direction:column;min-height:100vh;display:flex}.topbar[data-v-48baef12]{border-bottom:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.04em;justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;font-size:12px;display:flex}.brand[data-v-48baef12]{align-items:baseline;gap:10px;text-decoration:none;display:flex}.mark[data-v-48baef12]{color:var(--amber);font-size:14px}.wordmark[data-v-48baef12]{font-family:var(--font-display);color:var(--ink);letter-spacing:.01em;font-size:20px;font-weight:500}.slash[data-v-48baef12]{color:var(--ink-faint)}.sub[data-v-48baef12]{color:var(--ink-dim);font-size:12px}.nav[data-v-48baef12]{align-items:center;gap:6px;display:flex}.nav-link[data-v-48baef12]{color:var(--ink-dim);letter-spacing:.06em;border:1px solid #0000;padding:6px 12px;font-size:12px;text-decoration:none;transition:all .18s}.nav-link[data-v-48baef12]:hover{color:var(--ink)}.nav-on[data-v-48baef12]{color:var(--amber);border-color:var(--amber-dim)}.theme-btn[data-v-48baef12]{border:1px solid var(--line);width:32px;height:32px;color:var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:15px;transition:all .18s;display:flex}.theme-btn[data-v-48baef12]:hover{border-color:var(--amber);color:var(--amber)}.nav-sep[data-v-48baef12]{color:var(--ink-faint);margin:0 4px}.clock[data-v-48baef12]{color:var(--ink);min-width:56px}@media (width<=640px){.topbar[data-v-48baef12]{padding:12px 16px}.sub[data-v-48baef12],.slash[data-v-48baef12]{display:none}.wordmark[data-v-48baef12]{font-size:18px}.nav-sep[data-v-48baef12],.clock[data-v-48baef12]{display:none}.nav-link[data-v-48baef12]{padding:6px 10px}}.stage[data-v-84260ba1]{flex:1;grid-template-columns:minmax(280px,1fr) minmax(420px,1.4fr);gap:0;width:100%;max-width:1180px;margin:0 auto;padding:48px 28px;display:grid}.rail[data-v-84260ba1]{border-right:1px solid var(--line-soft);flex-direction:column;gap:28px;padding-right:32px;display:flex}.seg[data-v-84260ba1]{flex-direction:column;gap:2px;display:flex}.seg-btn[data-v-84260ba1]{border:1px solid var(--line-soft);color:var(--ink-dim);font-family:var(--font-mono);text-align:left;cursor:pointer;background:0 0;border-left:2px solid #0000;align-items:center;gap:14px;padding:14px 16px;font-size:13px;transition:all .18s;display:flex}.seg-btn .idx[data-v-84260ba1]{color:var(--ink-faint)}.seg-btn[data-v-84260ba1]:hover{color:var(--ink);border-color:var(--line)}.seg-btn.on[data-v-84260ba1]{color:var(--amber);border-left-color:var(--amber);background:#e8b04b0d}.seg-btn.on .idx[data-v-84260ba1]{color:var(--amber)}.lede[data-v-84260ba1]{margin-top:4px}.kicker[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.22em;color:var(--amber-dim);margin:0 0 14px;font-size:11px}.hed[data-v-84260ba1]{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;margin:0 0 16px;font-size:30px;font-weight:400;line-height:1.18}.dek[data-v-84260ba1]{color:var(--ink-dim);margin:0;font-size:14px;line-height:1.65}.dek u[data-v-84260ba1]{color:var(--amber);border-bottom:1px dashed var(--amber-dim);text-decoration:none}.rail-foot[data-v-84260ba1]{flex-direction:column;gap:6px;margin-top:auto;display:flex}.kv[data-v-84260ba1]{font-family:var(--font-mono);justify-content:space-between;font-size:11px;display:flex}.kv .k[data-v-84260ba1]{color:var(--ink-faint);letter-spacing:.1em}.kv .v[data-v-84260ba1]{color:var(--ink-dim)}.panel[data-v-84260ba1]{padding-left:36px}.form[data-v-84260ba1]{flex-direction:column;gap:22px;max-width:520px;display:flex}.fhead[data-v-84260ba1]{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:baseline;gap:12px;padding-bottom:16px;display:flex}.fno[data-v-84260ba1]{font-family:var(--font-mono);color:var(--amber);font-size:12px}.ftitle[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.18em;color:var(--ink);font-size:13px}.fhint[data-v-84260ba1]{color:var(--ink-faint);margin-left:auto;font-size:12px}.fields[data-v-84260ba1]{grid-template-columns:1fr 1fr;gap:18px;display:grid}.field[data-v-84260ba1]{flex-direction:column;gap:8px;display:flex}.flabel[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.16em;color:var(--ink-dim);font-size:11px}.finput[data-v-84260ba1]{border:none;border-bottom:1px solid var(--line);color:var(--ink);font-family:var(--font-sans);background:0 0;outline:none;padding:10px 0;font-size:16px;transition:border-color .18s}.finput[data-v-84260ba1]::placeholder{color:var(--ink-faint)}.finput[data-v-84260ba1]:focus{border-bottom-color:var(--amber)}.capture[data-v-84260ba1]{cursor:pointer}.shot[data-v-84260ba1]{border:1px solid var(--line);background-position:50%;background-size:cover;justify-content:flex-start;align-items:flex-end;width:100%;height:240px;padding:12px;transition:border-color .18s;display:flex;position:relative;overflow:hidden}.capture:hover .shot[data-v-84260ba1]{border-color:var(--amber-dim)}.shot.empty[data-v-84260ba1]{background:repeating-linear-gradient(45deg,#0000,#0000 12px,#8080800a 12px 24px);flex-direction:column;justify-content:center;align-items:center;gap:8px}.cross[data-v-84260ba1]{font-family:var(--font-mono);color:var(--amber-dim);font-size:30px;line-height:1}.shot-text[data-v-84260ba1]{color:var(--ink-dim);font-size:14px}.shot-sub[data-v-84260ba1]{font-family:var(--font-mono);color:var(--ink-faint);font-size:11px}.shot-tag[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.14em;color:var(--bg);background:var(--amber);padding:4px 8px;font-size:10px;position:absolute;top:10px;left:10px}.shot[data-v-84260ba1]:after{content:"";background:linear-gradient(to bottom, transparent 70%, var(--overlay));pointer-events:none;position:absolute;inset:0}.submit[data-v-84260ba1]{background:var(--amber);color:#1a1a1a;font-family:var(--font-mono);letter-spacing:.1em;cursor:pointer;border:none;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:15px 20px;font-size:13px;font-weight:600;transition:background .18s,transform .1s;display:flex}.submit[data-v-84260ba1]:hover:not(:disabled){background:#f0c062}.submit[data-v-84260ba1]:active:not(:disabled){transform:translateY(1px)}.submit[data-v-84260ba1]:disabled{opacity:.45;cursor:not-allowed}.arrow[data-v-84260ba1]{font-size:11px}.note[data-v-84260ba1]{font-family:var(--font-mono);color:var(--ink-faint);word-break:break-all;margin:0;font-size:11px}.hint-row[data-v-84260ba1]{color:var(--ink-dim);align-items:flex-start;gap:10px;font-size:13px;line-height:1.6;display:flex}.hint-dot[data-v-84260ba1]{background:var(--amber);flex:none;width:6px;height:6px;margin-top:7px}.hint-row code[data-v-84260ba1]{font-family:var(--font-mono);color:var(--amber);background:#e8b04b14;padding:1px 6px;font-size:12px}.method-toggle[data-v-84260ba1]{border:1px solid var(--line);gap:0;display:flex}.mt-btn[data-v-84260ba1]{border:none;border-right:1px solid var(--line);color:var(--ink-dim);font-family:var(--font-sans);cursor:pointer;background:0 0;flex:1;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:12px 8px;font-size:13px;transition:all .18s;display:flex}.mt-btn[data-v-84260ba1]:last-child{border-right:none}.mt-btn[data-v-84260ba1]:hover{color:var(--ink)}.mt-btn.on[data-v-84260ba1]{color:var(--amber);background:#e8b04b0f}.mt-tag[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.08em;opacity:.7;border:1px solid;padding:2px 6px;font-size:11px;font-weight:600}.mt-btn.on .mt-tag[data-v-84260ba1]{opacity:1}.msg[data-v-84260ba1]{border-left:2px solid;align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.msg.ok[data-v-84260ba1]{color:var(--ok);border-color:var(--ok);background:#8fbf7a0f}.msg.err[data-v-84260ba1]{color:var(--err);border-color:var(--err);background:#d96b5d0f}.mtag[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.1em;padding-top:1px;font-size:11px;font-weight:600}.overlay[data-v-84260ba1]{z-index:50;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.overlay-enter-active[data-v-84260ba1],.overlay-leave-active[data-v-84260ba1]{transition:opacity .22s}.overlay-enter-from[data-v-84260ba1],.overlay-leave-to[data-v-84260ba1]{opacity:0}.session[data-v-84260ba1]{background:var(--bg-soft);border:1px solid var(--line);width:100%;max-width:460px}.shead[data-v-84260ba1]{border-bottom:1px solid var(--line-soft);font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-dim);align-items:center;gap:12px;padding:12px 16px;font-size:11px;display:flex}.sno[data-v-84260ba1]{color:var(--amber)}.stoken[data-v-84260ba1]{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sclose[data-v-84260ba1]{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;min-width:36px;min-height:36px;margin-left:auto;padding:0 4px;font-size:22px;line-height:1}.sclose[data-v-84260ba1]:hover{color:var(--ink)}.sbody[data-v-84260ba1]{text-align:center;padding:32px 28px}.scanner[data-v-84260ba1]{border:1px solid var(--amber-dim);width:180px;height:180px;margin:0 auto 24px;position:relative;overflow:hidden}.scan-grid[data-v-84260ba1]{background-image:linear-gradient(#e8b04b14 1px,#0000 1px),linear-gradient(90deg,#e8b04b14 1px,#0000 1px);background-size:20px 20px;position:absolute;inset:0}.scan-line[data-v-84260ba1]{background:linear-gradient(90deg, transparent, var(--amber), transparent);height:2px;box-shadow:0 0 12px var(--amber);animation:2.4s ease-in-out infinite scan-84260ba1;position:absolute;left:0;right:0}@keyframes scan-84260ba1{0%,to{top:4%}50%{top:94%}}.scan-label[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.2em;color:var(--amber);font-size:10px;position:absolute;bottom:8px;left:0;right:0}.cam-wrap[data-v-84260ba1]{border:1px solid var(--amber-dim);background:#000;width:240px;height:240px;margin:0 auto 24px;position:relative;overflow:hidden}.cam-video[data-v-84260ba1]{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.cam-frame[data-v-84260ba1]{pointer-events:none;border:1px solid #e8b04b99;width:160px;height:200px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #00000040}.cam-label[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.2em;color:var(--amber);font-size:10px;position:absolute;bottom:8px;left:0;right:0}.stitle[data-v-84260ba1]{font-family:var(--font-display);color:var(--ink);margin:0 0 10px;font-size:26px;font-weight:400}.stitle.ok-t[data-v-84260ba1]{color:var(--ok)}.stitle.no-t[data-v-84260ba1]{color:var(--err)}.stext[data-v-84260ba1]{color:var(--ink-dim);margin:0 0 22px;font-size:13px;line-height:1.6}.sstats[data-v-84260ba1]{justify-content:center;gap:28px;margin-bottom:22px;display:flex}.ss[data-v-84260ba1]{flex-direction:column;gap:4px;display:flex}.ssk[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.16em;color:var(--ink-faint);font-size:10px}.ssv[data-v-84260ba1]{font-family:var(--font-mono);color:var(--ink);font-size:15px}.ssv.pulse[data-v-84260ba1]{color:var(--amber);animation:1.4s infinite blink-84260ba1}.ssv.ok-c[data-v-84260ba1]{color:var(--ok)}.ssv.no-c[data-v-84260ba1]{color:var(--err)}@keyframes blink-84260ba1{0%,to{opacity:1}50%{opacity:.35}}.sbtn[data-v-84260ba1]{background:var(--amber);color:#1a1a1a;width:100%;font-family:var(--font-mono);letter-spacing:.1em;cursor:pointer;border:none;min-height:48px;padding:13px;font-size:13px;font-weight:600;transition:background .18s}.sbtn[data-v-84260ba1]:hover{background:#f0c062}.sbtn.ghost[data-v-84260ba1]{color:var(--amber);border:1px solid var(--amber-dim);background:0 0}.sbtn.ghost[data-v-84260ba1]:hover{background:#e8b04b14}.sbtn-row[data-v-84260ba1]{gap:12px;display:flex}.sbtn-row .sbtn[data-v-84260ba1]{flex:1}.verdict[data-v-84260ba1]{flex-direction:column;align-items:center;gap:10px;margin:0 auto 22px;display:flex}.vmark[data-v-84260ba1]{border:2px solid;justify-content:center;align-items:center;width:64px;height:64px;font-size:36px;line-height:1;display:flex}.verdict.ok .vmark[data-v-84260ba1]{color:var(--ok);border-color:var(--ok)}.verdict.no .vmark[data-v-84260ba1]{color:var(--err);border-color:var(--err)}.vtext[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.24em;font-size:12px}.verdict.ok .vtext[data-v-84260ba1]{color:var(--ok)}.verdict.no .vtext[data-v-84260ba1]{color:var(--err)}.reg-actions[data-v-84260ba1]{gap:10px;margin-bottom:18px;display:flex}.reg-btn[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.1em;color:var(--amber);border:1px solid var(--amber-dim);cursor:pointer;background:0 0;flex:1;min-height:44px;padding:10px 16px;font-size:12px;font-weight:600;transition:all .18s}.reg-btn[data-v-84260ba1]:hover{background:#e8b04b14}.reg-btn.ghost[data-v-84260ba1]{color:var(--ink-dim);border-color:var(--line)}.reg-btn.ghost[data-v-84260ba1]:hover{background:#ffffff0a}.cam-overlay[data-v-84260ba1]{z-index:1000;background:#000000d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.cam-box[data-v-84260ba1]{background:var(--bg-soft);border:1px solid var(--line);width:100%;max-width:420px}.cam-head[data-v-84260ba1]{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.cam-title[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.16em;color:var(--amber);font-size:12px;font-weight:600}.cam-close[data-v-84260ba1]{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:24px;line-height:1}.cam-close[data-v-84260ba1]:hover{color:var(--err)}.cam-box .cam-wrap[data-v-84260ba1]{border:none;border-bottom:1px solid var(--line);width:100%;height:320px;margin:0}.cam-foot[data-v-84260ba1]{justify-content:center;padding:16px 18px;display:flex}.cam-capture-btn[data-v-84260ba1]{font-family:var(--font-mono);letter-spacing:.16em;color:#1a1a1a;background:var(--amber);cursor:pointer;border:none;min-height:48px;padding:12px 40px;font-size:14px;font-weight:600;transition:background .18s}.cam-capture-btn[data-v-84260ba1]:hover{background:#f0c062}.fade-enter-active[data-v-84260ba1],.fade-leave-active[data-v-84260ba1]{transition:opacity .22s}.fade-enter-from[data-v-84260ba1],.fade-leave-to[data-v-84260ba1]{opacity:0}@media (width<=860px){.stage[data-v-84260ba1]{grid-template-columns:1fr;gap:32px;padding:28px 18px}.rail[data-v-84260ba1]{border-right:none;border-bottom:1px solid var(--line-soft);gap:22px;padding-bottom:28px;padding-right:0}.hed[data-v-84260ba1]{font-size:26px}.panel[data-v-84260ba1]{padding-left:0}}@media (width<=640px){.stage[data-v-84260ba1]{gap:24px;padding:20px 14px}.hed[data-v-84260ba1]{font-size:23px}.dek[data-v-84260ba1]{font-size:13px}.shot[data-v-84260ba1]{height:200px}.fields[data-v-84260ba1]{grid-template-columns:1fr;gap:14px}.sbody[data-v-84260ba1]{padding:24px 20px}.scanner[data-v-84260ba1]{width:150px;height:150px}.cam-wrap[data-v-84260ba1]{width:200px;height:200px}.cam-frame[data-v-84260ba1]{width:130px;height:170px}.stitle[data-v-84260ba1]{font-size:22px}.overlay[data-v-84260ba1],.cam-overlay[data-v-84260ba1]{padding:12px}.cam-box .cam-wrap[data-v-84260ba1]{height:260px}.cam-capture-btn[data-v-84260ba1]{padding:12px 28px;font-size:13px}}
