/* Photo layers share one camera so the gesture remains aligned at every size. */
html.scan-card-preview,html.scan-card-preview body{scrollbar-width:none}
html.scan-card-preview::-webkit-scrollbar,html.scan-card-preview body::-webkit-scrollbar{display:none}
.scan-scene{position:relative;aspect-ratio:3/2;overflow:hidden;isolation:isolate;background:#14130f}
.scan-camera{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:100%;height:100%}
.how-photo .scan-background,.how-photo .scan-hand img{width:100%;height:100%;aspect-ratio:auto;object-fit:fill;display:block}
.scan-hand{position:absolute;inset:0;transform-origin:12% 92%;transform:translate(-14%,22%) rotate(-8deg) scale(1.13);will-change:transform}
.scan-pulse{position:absolute;left:57.3%;top:46.5%;width:5.5%;aspect-ratio:1;border-radius:50%;border:1px solid #eed7a0;box-shadow:0 0 20px #c9a96e77;opacity:0;pointer-events:none}
.scan-scene[data-phase=detected] .scan-pulse{animation:scan-signal 1.4s ease-out 2}
@keyframes scan-signal{0%{opacity:0;transform:scale(.6)}25%{opacity:.9}100%{opacity:0;transform:scale(2.3)}}
.scan-notification{position:absolute;left:50%;top:12%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;width:max-content;max-width:90%;padding:12px 16px;border:1px solid #cab47788;border-radius:12px;color:#faf7ef;background:#1d1b17ed;font-size:.875rem;line-height:1.4;box-shadow:0 6px 25px #0005;opacity:0;pointer-events:none}
.scan-notification svg{width:22px;height:22px;flex-shrink:0;fill:none;stroke:#e3c68c;stroke-width:1.5}.scan-notification strong{display:block;font-size:.875rem;font-weight:500}.scan-notification span{display:block;color:#d1c9b9;font-size:.75rem}
.scan-scene[data-phase=detected] .scan-notification{opacity:1}
.scan-shade{position:absolute;inset:0;background:#070604;opacity:0;transition:opacity .65s;pointer-events:none}
.scan-scene[data-phase=opened] .scan-shade{opacity:.55}
.scan-preview{position:absolute;top:5%;height:90%;aspect-ratio:350/640;left:50%;border:3px solid #ab9770;border-radius:18px;overflow:hidden;background:#131009;box-shadow:0 15px 50px #0009;opacity:0;transform:translateX(-50%);pointer-events:none}
.scan-preview iframe{position:absolute;left:0;top:0;width:350px;height:640px;border:0;transform-origin:top left;background:#131009}
.scan-scene[data-phase=opened] .scan-preview{opacity:1}
.scan-scene[data-phase=error] .scan-hand{display:none}
.scan-demo .scan-caption{display:block;position:static;padding:18px 20px;background:#18140d;color:var(--text)}
.scan-caption .scan-eyebrow{display:block;color:var(--gold);font-size:.75rem;letter-spacing:.08em;margin:0 0 7px}
.scan-caption p{margin:0;color:var(--muted);font-size:1rem;line-height:1.6;min-height:3.2em}
.scan-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.scan-controls button{min-height:44px;padding:10px 12px;font:500 .875rem/1.3 Montserrat,Arial,sans-serif;letter-spacing:0;border:1px solid #a0885a66;border-radius:9px;background:#232018;color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.scan-controls button:hover{background:#302819}.scan-controls button:disabled{opacity:.5;cursor:default}.scan-controls button:focus-visible{outline:2px solid var(--gold-light);outline-offset:3px}
.scan-controls svg{width:17px;height:17px;fill:none;stroke:var(--gold-light);stroke-width:1.6;flex-shrink:0}
.scan-controls [data-scan-open]{background:linear-gradient(160deg,#ddc28d,#c9a96e);color:#18140d;border-color:#dfc995}.scan-controls [data-scan-open] svg{stroke:currentColor}
.scan-controls [hidden]{display:none}
.scan-demo.is-paused .scan-pulse{animation-play-state:paused}
@media(max-width:760px){.scan-scene{aspect-ratio:1/1}.scan-demo .scan-caption{padding:16px}.scan-caption p{min-height:3.2em}.scan-notification{padding:9px 12px}.scan-controls{gap:8px}.scan-controls [data-scan-open]{flex:1 1 100%}.scan-preview{border-radius:15px}}
@media(prefers-reduced-motion:reduce){.scan-shade{transition:none}.scan-scene[data-phase=detected] .scan-pulse{animation:none}.scan-hand{will-change:auto}}
