.vscan{--sweep:1.3s;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);max-width:720px;margin-top:16px;padding:14px 16px 12px}.vscan-row{width:max-content;max-width:100%;font-family:var(--font-mono);gap:.35em;padding:6px 0;font-size:19px;display:flex;position:relative;overflow:hidden}.vscan-grp{align-content:start;justify-items:center;gap:6px;display:grid}.vscan-chars{gap:.08em;display:flex}.vscan i{background:var(--sunk);width:1.25em;height:1.7em;color:var(--ink-2);transition:color .3s var(--ease), background-color .3s var(--ease), box-shadow .3s var(--ease);border-radius:4px;place-items:center;font-style:normal;font-weight:500;display:grid}.vscan[data-state=scan] i{animation:vscan-lit var(--sweep) linear infinite;animation-delay:calc((var(--i) + .5) / 17 * var(--sweep) - var(--sweep) * .06)}@keyframes vscan-lit{0%,16%,to{color:var(--ink-2);background-color:var(--sunk)}6%{color:var(--on-accent);background-color:var(--accent)}}.vscan-sweep{pointer-events:none;animation:vscan-sweep var(--sweep) linear infinite;position:absolute;inset:0}.vscan-sweep:before{content:"";background:var(--accent);width:3px;box-shadow:0 0 14px 2px color-mix(in srgb, var(--accent) 70%, transparent);border-radius:2px;position:absolute;top:0;bottom:0;left:-1px}.vscan-sweep:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 16%, transparent));width:70px;position:absolute;top:0;bottom:0;right:100%}@keyframes vscan-sweep{0%{transform:translate(0)}to{transform:translate(100%)}}.vscan-cap{font-size:var(--t-15);color:var(--ink-2);margin:8px 2px 0}.vscan[data-state=read] i{color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);background:0 0}.vscan[data-state=read] .has i{background:var(--sunk);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}.vscan small{width:0;font-family:var(--font-sans);color:var(--muted);white-space:nowrap;animation:vscan-settle .55s var(--ease-back) both;animation-delay:var(--d,0s);flex-direction:column;justify-self:center;align-items:center;font-size:11px;line-height:1.2;display:flex}.vscan small b{font-family:var(--font-mono);color:var(--ink);font-size:13px;font-weight:600}@keyframes vscan-settle{0%{opacity:0;filter:blur(3px);transform:translateY(-10px)}}@media (max-width:560px){.vscan{padding:12px 10px 10px}.vscan-row{font-size:min(19px,4.08163vw - 2.20408px)}}@media (prefers-reduced-motion:reduce){.vscan i,.vscan small{animation:none!important}.vscan-sweep{display:none}}
