/* Four-second introduction, centered over the live camera image only. */
.scan-coach{position:absolute;inset:0;z-index:3;display:grid;place-items:center;background:rgba(5,8,12,.82);pointer-events:none;opacity:0}
.scan-coach[hidden]{display:none}.scan-coach-art{width:clamp(140px,46%,210px);height:auto;max-height:64%;overflow:visible;stroke-linecap:round;stroke-linejoin:round}
.scan-coach-phone{stroke:#a4abb5;stroke-width:2.6}.scan-coach-sheet{fill:var(--bg,#161616);stroke:#edf0f4;stroke-width:2.6}.scan-coach-ink{stroke:#a4abb5;stroke-width:2.4}.scan-coach-shutter{stroke:var(--brand-accent,#e8594f);stroke-width:2.6}.scan-coach-tap{stroke:var(--brand-accent,#e8594f);stroke-width:2.6;opacity:0}.scan-coach-tap{transform-origin:72px 105px}
.scan-coach.is-playing{animation:coach-intro 4s ease both}.scan-coach.is-playing .scan-coach-paper{animation:coach-position 4s cubic-bezier(.4,0,.2,1) both}.scan-coach.is-playing .scan-coach-tap{animation:coach-tap 4s ease-out both}.scan-coach.is-playing .scan-coach-shutter{animation:coach-shutter 4s ease both}
@keyframes coach-intro{0%{opacity:0}9%,85%{opacity:1}100%{opacity:0}}
@keyframes coach-position{0%,12%{transform:translate(-22px,8px) rotate(-14deg) scale(.82)}32%,42%{transform:translate(0,0) rotate(0) scale(.82)}62%,100%{transform:translate(0,0) rotate(0) scale(1)}}
@keyframes coach-tap{0%,74%{opacity:0;transform:scale(.6)}78%{opacity:.8;transform:scale(.6)}91%,100%{opacity:0;transform:scale(1.8)}}
@keyframes coach-shutter{0%,76%,90%,100%{fill:transparent}80%,84%{fill:var(--brand-accent,#e8594f)}}
@media(prefers-reduced-motion:reduce){.scan-coach.is-playing{animation:none;opacity:1}.scan-coach.is-playing *{animation:none!important}}
