body:has(.scan-page),html:has(.scan-page){min-width:0;min-height:100%;background:#11120f}.scan-page{position:relative;min-height:100svh;overflow:hidden;background:radial-gradient(circle at 50% 42%,rgb(83 91 67/40%),transparent 42%),#151713;color:#f8f8f3;isolation:isolate}.scan-camera,.scan-shade{position:absolute;inset:0;width:100%;height:100%}.scan-camera{z-index:-3;object-fit:cover}.scan-shade{z-index:-2;background:linear-gradient(180deg,rgb(0 0 0/46%),transparent 24% 68%,rgb(0 0 0/58%)),rgb(13 14 11/18%);pointer-events:none}.scan-header{display:grid;grid-template-columns:48px 1fr 48px;gap:12px;align-items:center;padding:calc(18px + env(safe-area-inset-top)) 18px 0;text-align:center}.scan-header h1{margin:0}.scan-header__identity{min-width:0}.scan-brand .project-brand__title{color:#ffffff;font-size:20px;letter-spacing:-.04em;line-height:1}.scan-brand .project-brand__credit{margin-top:4px!important;color:rgb(255 255 255/66%);font-size:10px;letter-spacing:.01em}.scan-header h1{margin-top:7px;color:#ffffff;font-size:17px;font-weight:620;letter-spacing:-.03em}.scan-back{display:grid;width:44px;height:44px;place-items:center;border:1px solid rgb(255 255 255/18%);border-radius:50%;background:rgb(255 255 255/12%);box-shadow:inset 0 1px 0 rgb(255 255 255/18%);color:inherit;font-size:22px;text-decoration:none;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.scan-stage{position:absolute;inset:14% 12px 20%;display:grid;place-items:center}.scan-reticle{position:relative;width:min(calc(100vw - 36px),444px);height:min(61svh,570px);max-height:100%}.scan-reticle span{position:absolute;width:54px;height:54px;border-color:rgb(255 255 255/92%);border-style:solid;filter:drop-shadow(0 1px 4px rgb(0 0 0/30%))}.scan-reticle span:first-child{top:0;left:0;border-width:2px 0 0 2px;border-radius:22px 0 0}.scan-reticle span:nth-child(2){top:0;right:0;border-width:2px 2px 0 0;border-radius:0 22px 0 0}.scan-reticle span:nth-child(3){right:0;bottom:0;border-width:0 2px 2px 0;border-radius:0 0 22px}.scan-reticle span:nth-child(4){bottom:0;left:0;border-width:0 0 2px 2px;border-radius:0 0 0 22px}.scan-status{position:absolute;bottom:-46px;width:min(292px,calc(100vw - 64px));padding:9px 14px;border:1px solid rgb(255 255 255/14%);border-radius:18px;background:rgb(10 10 9/32%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.scan-status--active{bottom:-75px}.scan-instruction{margin:0;color:rgb(255 255 255/82%);font-size:13px;letter-spacing:-.01em;text-align:center}.scan-progress__group{margin-top:8px}.scan-progress__label{display:block;margin-bottom:5px;color:rgb(255 255 255/68%);font-size:10px;font-weight:590;letter-spacing:.04em;text-transform:uppercase}.scan-progress{height:4px;overflow:hidden;border-radius:999px;background:rgb(255 255 255/20%)}.scan-progress>span{display:block;height:100%;border-radius:inherit;background:rgb(255 255 255/94%);transition:width .18s ease}.scan-progress--indeterminate>span{width:38%;animation:scan-progress-sweep 1.55s cubic-bezier(.45,0,.2,1) infinite;transform:translateX(-110%)}@keyframes scan-progress-sweep{to{transform:translateX(300%)}}@media (prefers-reduced-motion:reduce){.scan-progress--indeterminate>span{width:100%;animation:none;opacity:.72;transform:none}}.scan-error,.scan-result,.scan-start-card{position:absolute;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));left:12px;border:1px solid rgb(255 255 255/42%);border-radius:29px;background:rgb(246 246 239/90%);box-shadow:0 20px 70px rgb(0 0 0/28%);color:#20211e;backdrop-filter:blur(28px) saturate(1.15);-webkit-backdrop-filter:blur(28px) saturate(1.15)}.scan-start-card{padding:22px;text-align:center}.scan-start-card p{max-width:330px;margin:0 auto 18px;color:#696a65;font-size:14px;line-height:1.42}.scan-error a,.scan-error button,.scan-start-card button{min-height:48px;border:0;border-radius:999px;font-weight:620}.scan-start-card button{width:100%;background:#22231f;color:#fff}.scan-start-card a{display:inline-block;margin-top:14px;color:#5f605b;font-size:13px;font-weight:560;text-underline-offset:3px}.scan-error{padding:24px}.scan-error h2,.scan-error p{margin:0}.scan-error h2{font-size:22px;letter-spacing:-.04em}.scan-error p{margin-top:8px;color:#666762;font-size:14px;line-height:1.45}.scan-error div{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}.scan-error button{background:#22231f;color:#fff}.scan-error a{display:grid;place-items:center;background:#deded7;color:#30312d;text-decoration:none}.scan-result{padding:9px 14px 14px}.scan-result__handle{width:38px;height:4px;margin:0 auto 8px;border-radius:999px;background:rgb(39 40 36/18%)}.scan-result__content{display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center}.scan-result__image{display:grid;width:72px;height:72px;place-items:center;overflow:hidden;border-radius:20px;background:#e1e1da}.scan-result__image img{width:88%;height:88%;object-fit:contain}.scan-result__image span{font-size:38px;line-height:1}.scan-result__copy h2,.scan-result__copy p{margin:0}.scan-result__copy p{color:#777872;font-size:12px;font-weight:560;letter-spacing:.03em;text-transform:uppercase}.scan-result__copy h2{margin-top:2px;font-size:23px;font-weight:650;letter-spacing:-.045em}.scan-result__view{display:grid;width:100%;min-height:48px;place-items:center;margin-top:14px;border-radius:999px;background:#000;color:#fff;font-size:15px;font-weight:620;line-height:1;text-decoration:none}.scan-result__continue{display:block;width:fit-content;min-height:32px;margin:6px auto 0;padding:0 8px;border:0;border-radius:0;background:transparent;color:#555651;font-size:13px;font-weight:590;text-decoration:underline;text-underline-offset:3px}.scan-diagnostics{position:absolute;top:calc(92px + env(safe-area-inset-top));right:12px;left:12px;display:flex;flex-wrap:wrap;gap:5px 12px;justify-content:center;padding:8px 12px;border:1px solid rgb(255 255 255/12%);border-radius:12px;background:rgb(0 0 0/34%);color:rgb(255 255 255/72%);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;pointer-events:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}@media (min-width:700px){.scan-page{width:min(100%,480px);min-height:calc(100svh - 40px);margin:20px auto;border-radius:32px;box-shadow:0 25px 90px rgb(0 0 0/26%)}}