.scannerPage{background-color:var(--colorBackgroundPrimary);width:100vw;height:100dvh;color:var(--colorTextPrimary);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex;overflow:hidden}.scannerPage .scannerHeader{font-variation-settings:"wdth" 75,"wght" 800;text-transform:uppercase;color:var(--colorTextPrimary);margin:0;font-size:1.5rem;position:absolute;top:5dvh}@media (max-height:800px){.scannerPage .scannerHeader{top:2dvh}}.scannerPage .scannerFooter{font-variation-settings:"wdth" 75,"wght" 200;color:var(--colorTextSecondary);margin:0;font-size:.9rem;position:absolute;bottom:5dvh}.scannerPage .scannerHeader{width:100%;padding-top:max(2rem,env(safe-area-inset-top));z-index:40;text-align:center;flex-direction:column;align-items:center;gap:.25rem;animation:.6s cubic-bezier(.16,1,.3,1) slideDown;display:flex;left:0}.scannerPage .cameraSelectWrapper{background:var(--colorBackgroundSecondary);z-index:30;border:1px solid #0000;border-radius:30px;justify-content:center;align-items:center;min-width:160px;height:36px;padding:0 1rem;transition:all .25s;animation:.6s cubic-bezier(.16,1,.3,1) slideDown;display:flex;position:relative;box-shadow:0 4px 12px #0000000d}.scannerPage .cameraSelectWrapper:hover{background:var(--colorBackgroundHover,#f0f0f0);transform:translateY(-1px)}.scannerPage .cameraSelectWrapper:focus-within{border-color:var(--colorPrimary);box-shadow:0 0 0 3px var(--colorPrimaryAlpha,#0000001a)}.scannerPage .cameraSelectWrapper .cameraSelect{appearance:none;width:100%;height:100%;color:var(--colorTextPrimary);cursor:pointer;text-align:center;text-align-last:center;background:0 0;border:none;outline:none;padding-right:1.5rem;font-size:.85rem;font-weight:600}.scannerPage .cameraSelectWrapper .selectIcon{pointer-events:none;color:var(--colorTextSecondary);font-size:.75rem;transition:transform .2s;position:absolute;right:1rem}.scannerPage .cameraSelectWrapper:active .selectIcon{transform:translateY(2px)}.scannerPage .scannerContainer{aspect-ratio:1;border:4px solid var(--colorBackgroundPrimary);background:#000;border-radius:24px;outline:1px solid #0000001a;width:100%;max-width:380px;animation:.8s cubic-bezier(.175,.885,.32,1.275) scaleIn;position:relative;overflow:hidden;box-shadow:0 20px 50px -10px #0000004d}.scannerPage .scannerContainer .errorMessage{background:var(--colorBackgroundSecondary,#f8f9fa);width:100%;height:100%;color:var(--colorError,#d32f2f);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.scannerPage .scannerContainer .errorMessage .errorIcon{margin-bottom:1rem;font-size:2.5rem;animation:.5s ease-in-out shake}.scannerPage .scannerContainer .errorMessage p{margin:0;font-size:.95rem;font-weight:500;line-height:1.5}.scannerPage .scannerContainer .errorMessage .hint{opacity:.7;color:var(--colorTextSecondary);margin-top:.75rem;font-size:.8rem}.scannerPage .scannerContainer .scanOverlay{pointer-events:none;z-index:10;justify-content:center;align-items:center;padding:1rem;display:flex;position:absolute;inset:0}.scannerPage .scannerContainer .scanOverlay .corners{border:2px solid #ffffff4d;border-radius:14px;width:100%;height:100%;position:relative;box-shadow:0 0 0 100vmax #0009}.scannerPage .scannerContainer .scanOverlay .corners:after{content:"";background:var(--colorPrimary);width:100%;height:2px;box-shadow:0 0 15px var(--colorPrimary);animation:2.5s ease-in-out infinite scanLine;position:absolute;top:0;left:0}.scannerPage .scannerContainer .flashBtn{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26;border:1px solid #fff3;width:32px;min-width:32px;height:32px;transition:all .2s;position:absolute;top:.5rem;right:.5rem;border-radius:50%!important}.scannerPage .scannerContainer .flashBtn .xIcon{font-size:14px}.scannerPage .scannerContainer .flashBtn:hover{background:#ffffff40;transform:scale(1.05)}.scannerPage .scannerContainer .flashBtn:active{transform:scale(.95)}.scannerPage .scannerControls{justify-content:center;align-items:center;gap:1rem;width:100%;max-width:400px;animation:.6s cubic-bezier(.16,1,.3,1) .1s backwards slideUp;display:flex}.scannerPage .scannerControls .controlBtn{width:48px;height:48px;transition:transform .2s cubic-bezier(.34,1.56,.64,1);border-radius:50%!important}.scannerPage .scannerControls .controlBtn:active{transform:scale(.9)}.scannerPage .scannerControls .zoomControls{border-radius:30px;align-items:center;gap:.25rem;height:48px;padding:.35rem .5rem;display:flex}.scannerPage .scannerControls .zoomControls .zoomBtn{width:36px;min-width:36px;height:36px;padding:0;border-radius:50%!important}.scannerPage .scannerControls .zoomControls .zoomVal{text-align:center;font-feature-settings:"tnum";min-width:36px;color:var(--colorTextPrimary);font-size:.85rem;font-weight:700}@keyframes scanLine{0%,to{opacity:0;top:0}10%{opacity:1}50%{opacity:1;top:100%}90%{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}
