.scan{max-width:720px;margin:0 auto;padding:36px 0 20px}.scan-head h1{font-family:var(--display);letter-spacing:-.035em;margin:0;font-size:clamp(32px,3.4vw,46px);font-weight:800;line-height:1.04}.scan-head .lead{margin-top:10px}.scan-form{border-top:1px solid var(--line-2);margin-top:30px}.sf-row{border-bottom:1px solid var(--line-2);grid-template-columns:44px minmax(0,1fr);gap:8px;padding:24px 0;display:grid}.sf-n{font-family:var(--display);letter-spacing:-.05em;font-size:30px;font-weight:800;line-height:1}.sf-body h2{letter-spacing:-.015em;margin:4px 0 12px;font-size:17px;font-weight:600}.sf-body h2 span{color:var(--ink-3);margin-left:6px;font-size:14px;font-weight:400}.sf-help{color:var(--ink-2);margin:-6px 0 12px;font-size:14px}.key-edit .sf-help{margin:10px 0 0}.sf-help.bad{color:var(--miss)}.sf-help a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:3px;align-items:center;gap:3px;display:inline-flex}.sf-help a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.sf-tip{color:var(--ink-3);align-items:center;gap:7px;margin:12px 0 0;font-size:13.5px;display:flex}.sf-input{width:100%;height:48px;box-shadow:0 0 0 1px var(--line-2);background:#fff;border:0;border-radius:12px;outline:none;padding:0 16px;font-size:16px;transition:box-shadow .2s}.sf-input:focus{box-shadow:0 0 0 2px var(--ink)}.sf-input::placeholder{color:var(--ink-3)}.key-field{height:52px;box-shadow:0 0 0 1px var(--line-2);color:var(--ink-3);background:#fff;border-radius:14px;align-items:center;gap:10px;padding:0 6px 0 16px;transition:box-shadow .2s;display:flex}.key-field:focus-within{box-shadow:0 0 0 2px var(--ink)}.key-field.bad{box-shadow:0 0 0 2px var(--miss)}.key-field input{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:16px}.key-field input::placeholder{color:var(--ink-3)}.btn.sm{height:40px;padding:0 16px;font-size:14.5px}.btn.ghost:hover:not(:disabled){background:#e8e5de}.link-btn{color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 8px;font-size:14px;font-weight:500;transition:background .2s,color .2s}.link-btn:hover{background:var(--sunk);color:var(--ink)}.key-saved{box-shadow:0 0 0 1px var(--line-2);background:#fff;border-radius:14px;align-items:center;gap:12px;padding:10px 8px 10px 10px;display:flex}.key-ico{background:var(--accent-soft);width:36px;height:36px;color:var(--ink);border-radius:10px;place-items:center;display:grid}.key-text{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.key-text b{font-size:15px;font-weight:600}.key-text span{color:var(--ink-3);font-size:13.5px}.drop{border:1.5px dashed var(--line-2);border-radius:18px;transition:border-color .2s,background .2s}.drop.over{border-color:var(--ink);background:#fff9}.drop.has{border-style:solid;border-color:#0000;padding:0}.drop-empty{text-align:center;justify-items:center;gap:8px;padding:26px 20px 24px;display:grid}.drop-empty p{color:var(--ink-2);margin:4px 0 0;font-size:15px}.drop-empty p button{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.drop-empty p button:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.cam-only{display:none!important}@media (hover:none) and (pointer:coarse){.cam-only{display:inline-flex!important}}.pages{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.pages li{aspect-ratio:3/4;box-shadow:0 0 0 1px var(--line-2);background:#fff;border-radius:10px;position:relative;overflow:hidden}.pages img{object-fit:cover;width:100%;height:100%;display:block}.pg-n{min-width:22px;height:22px;box-shadow:0 0 0 1px var(--line-2);background:#fff;border-radius:6px;place-items:center;padding:0 6px;font-size:12px;font-weight:600;display:grid;position:absolute;bottom:6px;left:6px}.pg-x{width:26px;height:26px;color:var(--ink-2);cursor:pointer;opacity:0;background:#ffffffeb;border:0;border-radius:8px;place-items:center;transition:opacity .2s,color .2s;display:grid;position:absolute;top:6px;right:6px}.pages li:hover .pg-x,.pg-x:focus-visible{opacity:1}.pg-x:hover{color:var(--ink)}@media (hover:none){.pg-x{opacity:1}}.pages .pg-add{box-shadow:none;border:1.5px dashed var(--line-2);background:0 0;gap:0;display:grid;overflow:hidden}.pg-add button{color:var(--ink-2);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:13px;font-weight:500;transition:background .2s,color .2s;display:flex}.pg-add button:hover{color:var(--ink);background:#ffffffb3}.pg-add button+button{border-top:1.5px dashed var(--line-2)}.scan-err{background:var(--miss-soft);color:#7a1f0f;border-radius:12px;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:18px 0 0;padding:12px 14px;font-size:14.5px;display:flex}.scan-err a{color:inherit;align-items:center;gap:3px;font-weight:600;display:inline-flex}.scan-go{margin-top:24px}.scan-go .btn.primary.big{flex:none;width:100%}.scan-go p{text-align:center;color:var(--ink-3);margin:10px 0 0;font-size:13.5px}.scan-privacy{color:var(--ink-3);align-items:flex-start;gap:8px;margin:26px 0 0;font-size:13px;line-height:1.5;display:flex}.scan-privacy svg{flex:none;margin-top:2px}.scan-work{margin-top:30px}.sw-live{box-shadow:var(--shadow-1);background:#fff;border-radius:24px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:36px;padding:30px;display:grid}.sw-stack{height:280px;position:relative}.sw-page{width:138px;height:184px;box-shadow:0 0 0 1px var(--line-2), 0 6px 14px -10px #12121229;background:#fff;border-radius:8px;margin:-92px 0 0 -69px;transition:filter .4s;position:absolute;top:50%;left:50%;overflow:hidden}.sw-page img{object-fit:cover;width:100%;height:100%;display:block}.sw-page.read img{filter:grayscale()contrast(.9)brightness(1.05)}.sw-scanline{border-bottom:2px solid var(--ink);height:36%;animation:scanline 1.6s var(--ease) infinite alternate;background:linear-gradient(#12121200 0%,#12121212 90%,#12121229 100%);position:absolute;top:0;left:0;right:0}@keyframes scanline{0%{transform:translateY(-100%)}to{transform:translateY(190%)}}.sw-tag{background:var(--ink);color:#fff;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;align-items:center;gap:4px;max-width:calc(100% - 12px);height:22px;padding:0 7px;font-size:11.5px;font-weight:500;display:inline-flex;position:absolute;bottom:6px;left:6px;overflow:hidden}.sw-steps{margin:0;padding:0;list-style:none}.sw-row{color:var(--ink-3);gap:12px;padding:12px 0;transition:color .3s;display:flex}.sw-row+.sw-row{border-top:1px solid var(--line)}.sw-row.on,.sw-row.done{color:var(--ink)}.sw-ico{width:24px;height:24px;box-shadow:inset 0 0 0 1.5px var(--line-2);border-radius:50%;flex:none;place-items:center;display:grid}.sw-row.done .sw-ico{background:var(--accent);box-shadow:inset 0 0 0 1.5px var(--ink)}.sw-row.on .sw-ico{box-shadow:none}.spin{border:2px solid var(--line);border-top-color:var(--ink);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}.sw-text{flex-direction:column;min-width:0;display:flex}.sw-text b{font-size:15.5px;font-weight:600}.sw-text span{color:var(--ink-2);font-size:13.5px}.sw-foot{border-top:1px solid var(--line);color:var(--ink-3);font-variant-numeric:tabular-nums;grid-column:1/-1;justify-content:space-between;align-items:center;padding-top:16px;font-size:14px;display:flex}.sw-done{box-shadow:var(--shadow-1);background:#fff;border-radius:24px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:30px;padding:24px;display:grid}.sw-thumb{border-radius:16px}.sw-ok{background:var(--accent-soft);border-radius:8px;align-items:center;gap:6px;height:28px;padding:0 10px;font-size:13.5px;font-weight:600;display:inline-flex}.sw-done-text h2{font-family:var(--display);letter-spacing:-.03em;margin:12px 0 4px;font-size:34px;font-weight:800}.sw-done-text p{color:var(--ink-2);margin:0}.sw-actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.sw-done-text .sw-note{color:var(--ink-3);margin-top:14px;font-size:13px}.callout-link{color:var(--ink);margin-top:6px;font-size:14px;font-weight:600;display:inline-block}@media (max-width:720px){.scan{padding-top:22px}.sf-row{grid-template-columns:32px minmax(0,1fr)}.sf-n{font-size:24px}.sw-live,.sw-done{grid-template-columns:1fr;gap:18px;padding:20px}.sw-stack{height:240px}.key-saved{flex-wrap:wrap}}.nf-scan{justify-self:center;margin-top:10px}
