.cam{--cap-h:max(340px, min(680px, 100svh - 300px));gap:14px;max-width:520px;margin:0 auto;display:grid}.cam .inapp-note{margin:0}.cam-viewport{animation:cam-in .7s var(--ease-out) both;isolation:isolate}@keyframes cam-in{0%{opacity:0;filter:blur(12px);transform:translateY(14px)scale(.94)}to{opacity:1;filter:none;transform:none}}.capture-video.unmirrored{transform:none}.cam-viewport .capture-video{opacity:0;transition:opacity .5s var(--ease-out)}.cam.is-live .capture-video{opacity:1}.cam-boot{background:conic-gradient(at 50% 45%,#0000,#ff5fa82e,#0000 30%,#6ef0ee24,#0000 60%);animation:2.4s linear infinite cam-spin;position:absolute;inset:0}@keyframes cam-spin{to{transform:rotate(1turn)}}.cam-fx{pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity .6s var(--ease-out);z-index:1;position:absolute;inset:0;transform:scaleX(-1)}.cam-fx.unmirrored{transform:none}.cam-fx.on{opacity:1}.cam-ghost{z-index:2;pointer-events:none;filter:drop-shadow(0 0 1.5px #fff)drop-shadow(0 0 10px #ff5fa8d9);opacity:.62;transition:opacity .5s var(--ease-out);position:absolute;inset:0}.cam-ghost i{-webkit-mask:var(--ghost) center / cover no-repeat;-webkit-mask:var(--ghost) center / cover no-repeat;mask:var(--ghost) center / cover no-repeat;background:linear-gradient(160deg,#ffffff57,#c9b8ff38);position:absolute;inset:0}.cam.is-found .cam-ghost{opacity:.3}.cam.is-matched .cam-ghost,.cam.is-still .cam-ghost{opacity:0}.cam-coach{z-index:4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;background:#07060b9e;border-radius:18px;justify-items:center;gap:2px;width:max-content;max-width:calc(100% - 24px);margin:0;padding:8px 16px 9px;display:grid;position:absolute;top:12px;left:50%;translate:-50%;box-shadow:inset 0 0 0 1px #ffffff24}.cam-coach b{font:700 11px/1 var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:#ffb3d6}.cam-coach span{font:600 16px/1.25 var(--font-ui);color:#fff;animation:cam-hint .35s var(--ease-out)}@keyframes cam-hint{0%{opacity:0;transform:translateY(4px)}}.cam.is-matched .cam-coach{box-shadow:inset 0 0 0 1.5px #6ee7a8,0 0 24px #6ee7a873}.cam.is-matched .cam-coach b{color:#6ee7a8}.cam .capture-count{z-index:5;animation:cam-count .45s var(--ease-spring);text-shadow:0 0 30px #ff5fa8cc}@keyframes cam-count{0%{opacity:0;transform:scale(1.6)}}.cam-still{z-index:6;object-fit:cover;width:100%;height:100%;animation:cam-land .42s var(--ease-out) both;position:absolute;inset:0}@keyframes cam-land{0%{filter:brightness(2.6)saturate(0)}45%{filter:brightness(1.15);transform:scale(1.02)}to{filter:none;transform:scale(.97)}}.cam.is-still .cam-coach span{color:#6ee7a8}.cam-controls{z-index:7}.cam-side{justify-self:end;gap:6px;display:inline-flex}.cam-icon{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;min-width:38px;height:38px;font:700 12px/1 var(--font-ui);cursor:pointer;background:#07060b80;border:0;border-radius:999px;place-items:center;padding:0 9px;display:inline-grid;box-shadow:inset 0 0 0 1px #ffffff38}.cam-icon.on{color:#0e0c15;background:#fff}.cam-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linejoin:round;stroke-linecap:round;width:20px;height:20px}.cam .shutter{--hold:0;position:relative}.cam .shutter:before{content:"";background:conic-gradient(#6ee7a8 calc(var(--hold) * 1turn), #ffffff2e 0);border-radius:50%;transition:background .15s linear;position:absolute;inset:-7px;-webkit-mask:radial-gradient(circle,#0000 calc(50% - 4px),#000 calc(50% - 3px));mask:radial-gradient(circle,#0000 calc(50% - 4px),#000 calc(50% - 3px))}.cam-poses{scroll-snap-type:x proximity;scrollbar-width:none;animation:cam-up .6s .15s var(--ease-out) both;gap:10px;padding:4px 2px 6px;display:flex;overflow-x:auto}.cam-poses::-webkit-scrollbar{display:none}@keyframes cam-up{0%{opacity:0;transform:translateY(12px)}}.cam-pose{scroll-snap-align:center;width:72px;color:var(--fg-2);cursor:pointer;background:0 0;border:0;flex:none;justify-items:center;gap:5px;padding:0;display:grid}.cam-pose img{object-fit:cover;object-position:50% 16%;background:var(--ink-3);width:60px;height:60px;box-shadow:inset 0 0 0 1px var(--line);transition:transform .25s var(--ease-spring), box-shadow .25s;border-radius:50%}.cam-pose span{font:600 11.5px/1.15 var(--font-ui);text-align:center}.cam-pose.on{color:#fff}.cam-pose.on img{transform:scale(1.08);box-shadow:0 0 0 2.5px #fff,0 0 18px #ff5fa899}.cam-pose.is-drop img{box-shadow:0 0 0 2px #ff9a4d}.cam-foot{text-align:center;justify-items:center;gap:8px;display:grid}.cam-foot .capture-privacy{margin-top:0}@media (prefers-reduced-motion:reduce){.cam-viewport,.cam-poses,.cam-still,.cam-coach span,.cam .capture-count,.cam-boot{animation:none}}.shoot-head{margin-bottom:12px}.shoot-head .h-step{margin:4px 0 0}.cam-more{justify-self:center;font-size:13.5px}.photo-verdict{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:12px 0 0;display:flex}.pose-score{color:#fff;background:linear-gradient(100deg,#ff5fa838,#7c5cff38)}.retake-notice{gap:10px;margin-top:12px;display:grid}.retake-notice p{margin:0}.retake-notice .row{flex-wrap:wrap;gap:8px}.cam-viewport.is-checking .cam-still{animation:none}.cam-verdict{z-index:7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;background:#07060ba8;border-radius:16px;justify-content:center;align-items:center;gap:12px;padding:12px 16px;display:flex;position:absolute;inset:auto 12px 14px}.cam-verdict .scan-orb{width:22px;height:22px;margin:0}.cam-failed{gap:12px;display:grid}.mint-card.is-raw .pc-fig{filter:none;clip-path:inset(var(--top) var(--side) var(--bot) var(--side) round var(--wr))}.mint-card.is-raw .pc-fig img{filter:saturate(.55)brightness(.8)contrast(.95)}.cam-bar{z-index:7;background:linear-gradient(#0000,#07060b9e);grid-template-columns:1fr auto 1fr;align-items:center;padding:26px 20px 18px;display:grid;position:absolute;bottom:0;left:0;right:0}.cam-gallery,.cam-flip,.cam-close,.cam-tool>span{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;transition:transform .15s var(--ease-spring), background .2s;-webkit-tap-highlight-color:transparent;background:#07060b73;border:0;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #ffffff3d}.cam-gallery,.cam-flip{width:50px;height:50px}.cam-gallery{border-radius:14px;justify-self:start}.cam-flip{border-radius:50%;justify-self:end}.cam-gallery:active,.cam-flip:active,.cam-close:active,.cam-tool:active>span{transform:scale(.88)}.cam-bar svg,.cam-close svg,.cam-tool svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linejoin:round;stroke-linecap:round;width:24px;height:24px}.cam-close{z-index:7;border-radius:50%;width:40px;height:40px;position:absolute;top:12px;left:12px}.cam-rail{z-index:7;gap:12px;display:grid;position:absolute;top:50%;right:10px;translate:0 -50%}.cam-tool{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;justify-items:center;gap:4px;padding:0;display:grid}.cam-tool>span{border-radius:50%;width:44px;height:44px}.cam-tool small{font:700 10px/1 var(--font-ui);letter-spacing:.04em;text-shadow:0 1px 3px #000c}.cam-tool.on>span{color:#0e0c15;background:#fff;box-shadow:0 0 18px #ffffff73}.cam .shutter{width:84px;height:84px;padding:6px}.cam .shutter:after{content:"";z-index:-1;opacity:0;filter:blur(6px);background:conic-gradient(#ff5fa8,#9b6bff,#6ef0ee,#ffb23d,#ff5fa8);border-radius:50%;transition:opacity .3s;animation:2.4s linear infinite tab-spin;position:absolute;inset:-12px}.cam.is-matched .shutter:after{opacity:.85}.cam .shutter:active i{transform:scale(.86)}.cam .capture-actions.cam-controls{display:none}@keyframes tab-spin{to{transform:rotate(1turn)}}.cam .shutter.is-auto{cursor:default;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#07060b59}.cam .shutter.is-auto i{color:#fff;background:0 0;border:2px solid #ffffff8c;place-items:center;display:grid}.cam .shutter.is-auto svg{fill:#fff;filter:drop-shadow(0 0 8px #ff5fa8cc);width:30px;height:30px;animation:1.8s ease-in-out infinite auto-twinkle}.cam .shutter.is-auto:before{background:conic-gradient(#ff5fa8 0, #9b6bff calc(var(--hold) * .5turn), #6ef0ee calc(var(--hold) * 1turn), #ffffff29 0);inset:-8px}@keyframes auto-twinkle{50%{opacity:.75;transform:scale(.82)rotate(20deg)}}.cam-reveal{animation:cam-pop .45s var(--ease-spring) both}@keyframes cam-pop{0%{opacity:0;transform:scale(.6)}}@media (prefers-reduced-motion:reduce){.cam .shutter.is-auto svg,.cam-reveal{animation:none}}.cam .cam-bar,.cam-poses{display:none}.cam-dock{z-index:7;background:linear-gradient(#0000,#07060b8c 45%,#07060bbf);padding:34px 0 16px;position:absolute;bottom:0;left:0;right:0}.dial{justify-items:center;display:grid;position:relative}.dial-name{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font:800 italic 15px/1 var(--font-cond);letter-spacing:.04em;text-transform:uppercase;color:#fff;animation:dial-name .35s var(--ease-spring) both;background:#07060b73;border-radius:999px;margin:0 0 10px;padding:5px 12px;font-stretch:85%;box-shadow:inset 0 0 0 1px #ffffff29}@keyframes dial-name{0%{opacity:0;transform:translateY(6px)scale(.9)}}.dial-track{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;align-items:center;width:100%;height:88px;padding-inline:calc(50% - 33px);display:flex;overflow-x:auto;-webkit-mask:linear-gradient(90deg,#0000,#000 18% 82%,#0000);mask:linear-gradient(90deg,#0000,#000 18% 82%,#0000)}.dial-track::-webkit-scrollbar{display:none}.dial-item{--d:3;scroll-snap-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex:none;place-items:center;width:66px;height:66px;padding:0;display:grid}.dial-item img{object-fit:cover;object-position:50% 16%;background:var(--ink-3);width:52px;height:52px;transform:scale(calc(1.3 - min(var(--d), 1) * .36 - max(var(--d) - 1, 0) * .08));opacity:calc(1 - min(var(--d), 2) * .2);pointer-events:none;border-radius:50%;transition:transform .12s linear;box-shadow:0 0 0 2px #ffffff59,0 6px 14px #00000080}.dial-item.is-drop img{box-shadow:0 0 0 2px #ff9a4d,0 6px 14px #00000080}.dial-ring{--hold:0;pointer-events:none;background:0 0;border:0;border-radius:50%;width:88px;height:88px;padding:0;position:absolute;bottom:0;left:50%;translate:-50%;box-shadow:inset 0 0 0 4px #ffffffeb,0 0 22px #ff5fa859}.dial-ring:before{content:"";background:conic-gradient(#ff5fa8 0, #9b6bff calc(var(--hold) * .5turn), #6ef0ee calc(var(--hold) * 1turn), transparent 0);border-radius:50%;transition:background .15s linear;position:absolute;inset:-6px;-webkit-mask:radial-gradient(circle,#0000 calc(50% - 4px),#000 calc(50% - 3px));mask:radial-gradient(circle,#0000 calc(50% - 4px),#000 calc(50% - 3px))}.cam.is-matched .dial-ring{box-shadow:inset 0 0 0 4px #fff,0 0 30px #6ee7a899}.dial-ring.is-shutter{pointer-events:auto;cursor:pointer;animation:1.6s ease-in-out 3 ring-call}.dial-ring.is-shutter:active{transform:scale(.92)}@keyframes ring-call{50%{box-shadow:inset 0 0 0 4px #fff,0 0 0 10px #ffffff2e}}.cam-dock .cam-gallery{z-index:2;position:absolute;bottom:30px;left:14px}.cam-flip-top{z-index:7;position:absolute;top:12px;right:12px;width:40px!important;height:40px!important}.cam-flip-top svg{width:21px!important;height:21px!important}.cam .cam-rail{top:42%}.cam-coach{max-width:calc(100% - 120px)}.cam-coach span{font-size:15px}.cam-ghost{animation:ghost-in .4s var(--ease-out) both}@keyframes ghost-in{0%{opacity:0;transform:scale(.96)}}@media (prefers-reduced-motion:reduce){.dial-name,.dial-ring.is-shutter,.cam-ghost{animation:none}}.cam-flip-top{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;background:#07060b73;border:0;border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #ffffff3d}.cam-flip-top svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linejoin:round;stroke-linecap:round}.cam .cam-coach,.cam .cam-gallery,.cam .cam-flip,.cam .cam-close,.cam .cam-tool>span,.cam .cam-icon,.cam .dial-name,.cam .cam-flip-top{background:#07060b9e;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.cam .cam-tool.on>span{background:#fff}.scanner-hint.is-note{color:#ffd6e8;background:#ff5fa82e;border-radius:12px;padding:8px 12px}.capture-fallback.is-slow{z-index:6;background:#07060bdb;position:absolute;inset:0}.cam-foot .cam-upload{--bh:46px;font-size:15px}.dial-ring.is-tap{pointer-events:auto;cursor:pointer}.dial-ring.is-tap:active{transform:scale(.94)}
