:root{--ink:#252641;--muted:#777991;--accent:#5756d8;--accent-dark:#4443b5;--tint:#eaeafa;--paper:#f4f5fb;--white:#fff;--line:#e4e5f0;--success:#358477;--body:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--display:"Avenir Next","Trebuchet MS",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:15px;-webkit-font-smoothing:antialiased}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #9d9cf0;outline-offset:4px}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}h1{font-family:var(--display);font-size:42px;line-height:1.08;letter-spacing:-1.8px;font-weight:700}h2{font-size:20px;letter-spacing:-.5px}[hidden]{display:none!important}.symbols{position:absolute;width:0;height:0;overflow:hidden}.app,.login{max-width:520px;margin:0 auto;min-height:100dvh}.app-header{height:calc(82px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 24px 0;display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:750;letter-spacing:1.6px}.brand-icon{height:36px;width:36px;background:var(--accent);border-radius:12px;color:white;display:flex;align-items:center;justify-content:center;font-size:23px;letter-spacing:-6px;padding-right:6px;font-weight:800;font-family:var(--display);transform:rotate(-5deg)}.brand-icon span{opacity:.65;transform:translateY(3px)}.icon-button{border:1px solid var(--line);width:42px;height:42px;display:grid;place-items:center;background:var(--white);border-radius:50%;color:var(--ink)}#more{margin-left:auto}main{padding:0 24px 120px}.screen{animation:enter .24s ease-out}.eyebrow{display:block;font-size:10px;font-weight:750;letter-spacing:1.8px;color:var(--muted);margin-bottom:14px}.intro{padding-top:30px}.intro h1{font-size:54px;letter-spacing:-2.4px}.intro h1 span{color:var(--accent)}.intro p{margin-top:16px;font-size:15px;color:var(--muted)}.scanner-art{height:230px;position:relative;max-width:300px;margin:30px auto 22px}.frame-corner{position:absolute;width:25px;height:25px;border-color:#bfc0e2;border-style:solid}.tl{left:6px;top:4px;border-width:2px 0 0 2px;border-radius:12px 0 0 0}.tr{right:6px;top:4px;border-width:2px 2px 0 0;border-radius:0 12px 0 0}.bl{left:6px;bottom:4px;border-width:0 0 2px 2px;border-radius:0 0 0 12px}.br{right:6px;bottom:4px;border-width:0 2px 2px 0;border-radius:0 0 12px 0}.art-card{width:136px;height:178px;position:absolute;border-radius:14px;box-shadow:0 14px 24px #35365d12;padding:18px}.behind{background:#d9daf1;transform:rotate(-17deg);left:42px;top:21px;color:#7779b5;font-size:9px;letter-spacing:1.5px;display:flex;flex-direction:column;justify-content:space-between}.art-chip{width:28px;height:23px;border:1px solid #babbdc;border-radius:6px}.front{background:var(--accent);color:white;transform:rotate(10deg);right:44px;top:30px;display:flex;flex-direction:column;justify-content:space-between}.art-word{font-family:var(--display);font-size:43px;letter-spacing:-3px;margin-top:12px}.art-bottom{display:flex;align-items:center;justify-content:space-between;font-size:7px;letter-spacing:1.2px}.art-bottom svg{width:21px}.scan-line{height:1px;background:#9492ff;box-shadow:0 0 10px #9998ff;position:absolute;left:18px;right:18px;top:132px}.art-tick{position:absolute;right:28px;bottom:8px;background:var(--white);width:41px;height:41px;border:4px solid var(--paper);border-radius:50%;display:grid;place-items:center;color:var(--accent)}.button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:58px;padding:16px 22px;border-radius:18px;border:0;font-weight:650;font-size:16px;transition:background .15s,transform .15s}.button:active{transform:scale(.98)}.primary{background:var(--accent);color:var(--white);box-shadow:0 8px 18px #5756d81a}.primary:hover{background:var(--accent-dark)}.secondary{background:var(--white);border:1px solid var(--line);color:var(--ink)}.capture-buttons{display:grid;gap:12px}.capture-tip{text-align:center;font-size:12px;line-height:1.7;color:var(--muted);margin:20px 0}.tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,520px);display:flex;justify-content:center;gap:76px;padding:12px 24px calc(14px + env(safe-area-inset-bottom));background:#ffffffed;backdrop-filter:blur(16px);border-top:1px solid var(--line);z-index:5}.tabs button{border:0;background:none;color:#9192a7;display:flex;align-items:center;flex-direction:column;gap:5px;min-width:65px;min-height:48px;font-size:10px;font-weight:650}.tabs button.active{color:var(--accent)}.tabs button.active svg{background:var(--tint);border-radius:9px;box-sizing:content-box;padding:5px 17px;margin-top:-5px}.section-title{padding:26px 0}.muted{color:var(--muted);line-height:1.6;margin-top:12px}.photo-list{display:grid;gap:14px}.photo-item{display:flex;text-align:left;align-items:center;gap:15px;width:100%;background:white;border:1px solid var(--line);padding:12px;border-radius:20px;color:var(--ink)}.photo-item img{width:68px;height:82px;object-fit:cover;border-radius:11px;background:var(--tint)}.photo-item .photo-meta{flex:1;min-width:0}.photo-item strong{display:block;font-size:16px;margin-bottom:6px}.photo-item small{color:var(--muted);display:block;line-height:1.6}.photo-item svg{width:17px;color:var(--muted)}.empty{text-align:center;padding:60px 0}.empty>svg{width:52px;height:52px;color:var(--accent);margin-bottom:25px}.empty p{color:var(--muted);line-height:1.6;margin:16px 0 25px}.empty .button{margin-top:12px}.preview-frame{height:350px;max-height:45dvh;background:#e6e7f1;border-radius:24px;overflow:hidden;margin-bottom:24px;display:grid;place-items:center}.preview-frame img{width:100%;height:100%;object-fit:contain}.preview-frame p{padding:24px;text-align:center;color:var(--muted)}.progress-visual{height:250px;width:220px;margin:36px auto 40px;position:relative;background:var(--tint);border-radius:28px;overflow:hidden;border:7px solid white;box-shadow:0 18px 40px #2526410c}.progress-visual img{width:100%;height:100%;object-fit:cover;opacity:.55}.progress-sweep{position:absolute;left:0;right:0;height:55px;top:0;border-bottom:2px solid var(--accent);background:linear-gradient(transparent,#5756d833);animation:sweep 3s ease-in-out infinite alternate}.progress-badge{display:grid;place-items:center;position:absolute;inset:0;margin:auto;width:60px;height:60px;background:white;border-radius:20px;color:var(--accent);box-shadow:0 4px 25px #25264115}.progress-copy{text-align:center}.progress-copy h1{font-size:34px}.steps{list-style:none;padding:0;margin:30px auto;max-width:275px;display:grid;gap:20px}.steps li{display:flex;align-items:center;gap:14px;font-weight:550;color:#9697ad}.steps span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e5e6f0;font-size:12px}.steps li.active{color:var(--accent)}.steps li.active span{background:var(--accent);color:white;box-shadow:0 0 0 5px var(--tint)}.steps li.done{color:var(--success)}.steps li.done span{background:#e1efeb;color:var(--success)}.text-button{border:0;background:transparent;color:var(--accent);padding:14px;display:block;margin:auto;text-align:center;font-size:13px;font-weight:600}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px 0}.result-heading h1{font-size:32px;letter-spacing:-1.2px}.result-heading .eyebrow{margin-bottom:10px}.chip-button{border:1px solid var(--line);border-radius:20px;padding:10px 14px;background:white;color:var(--ink);white-space:nowrap;font-size:12px}.photo-toggle{border:0;background:none;color:var(--muted);display:flex;justify-content:space-between;width:100%;padding:10px 0;font-size:12px}.photo-toggle span{color:var(--accent)}.result-photo{background:#e7e8f2;border-radius:22px;overflow:hidden;max-height:460px}.result-photo>svg{width:100%;height:auto;display:block;max-height:460px;stroke:none}.result-photo rect{stroke:#9996ff;stroke-width:2;fill:#5756d80a;vector-effect:non-scaling-stroke}.result-photo .box-label{fill:var(--accent);stroke:none}.result-photo text{fill:white;stroke:none;font-family:var(--body);font-weight:600}.list-title{display:flex;justify-content:space-between;align-items:center;margin:28px 0 14px}.list-title span{font-size:11px;color:var(--muted)}.result-cards{border:1px solid var(--line);border-radius:20px;background:white;overflow:hidden}.card-row{padding:18px 16px;display:flex;gap:12px;align-items:center;background:transparent;border:0;border-bottom:1px solid #f0f0f6;width:100%;text-align:left;color:var(--ink)}.card-row:last-child{border-bottom:0}.card-number{width:31px;height:34px;display:grid;place-items:center;flex-shrink:0;background:var(--tint);border-radius:9px;color:var(--accent);font-size:11px;font-variant-numeric:tabular-nums}.card-name{flex:1;min-width:0}.card-name strong{font-size:13px;display:block;line-height:1.4}.card-name small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.card-value{font-size:14px;font-weight:650;text-align:right;max-width:100px;flex-shrink:0}.card-value.unknown{font-size:10px;font-weight:400;color:var(--muted)}.edit-link{margin-bottom:15px}.login{padding:calc(35px + env(safe-area-inset-top)) 30px 30px;display:flex;flex-direction:column}.login-body{margin:auto 0;padding:70px 0}.login h1{font-size:62px;color:var(--ink);letter-spacing:-3px}.login form{margin-top:38px}.login label{display:block;font-size:12px;font-weight:600;margin-bottom:10px}.login input{border:1px solid var(--line);background:white;border-radius:16px;padding:18px;width:100%;font-size:16px;color:var(--ink);margin-bottom:14px}.login .button svg{margin-left:auto}.login .button{justify-content:space-between}.status-text{font-size:12px;color:var(--muted);margin-top:16px;min-height:18px}.install-note{font-size:13px;color:var(--ink);line-height:1.7}.install-note span{color:var(--muted);font-size:11px}.boot{height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:var(--muted);font-size:13px}dialog{border:0;border-radius:28px 28px 0 0;position:fixed;top:auto;bottom:0;padding:18px 26px calc(28px + env(safe-area-inset-bottom));margin:0 auto;max-width:520px;width:100%;max-height:88dvh;color:var(--ink);background:var(--white)}dialog::backdrop{background:#25264166;backdrop-filter:blur(4px)}.sheet-handle{width:36px;height:4px;border-radius:5px;background:var(--line);margin:0 auto 26px}.sheet-close{position:absolute;right:15px;top:15px;width:36px;height:36px;border:0;border-radius:50%;font-size:24px;color:var(--muted);background:var(--paper)}dialog h2{padding-right:22px;margin:8px 0 16px}dialog .button{margin-top:10px}dialog p{color:var(--muted);font-size:13px;line-height:1.6}.detail-crop{display:block;max-width:100%;max-height:240px;object-fit:contain;margin:20px auto;border-radius:12px}.detail-value{font-family:var(--display);font-size:32px;color:var(--accent);margin:12px 0}.detail-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.detail-text{max-height:95px;overflow:auto;margin-top:12px}.toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:14px;padding:14px 20px;width:max-content;max-width:calc(100vw - 40px);font-size:13px;z-index:20;box-shadow:0 8px 30px #25264125}.failure-inline{padding:20px;background:white;border-radius:20px;color:var(--muted);line-height:1.6}@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes sweep{from{transform:translateY(10px)}to{transform:translateY(160px)}}@media(min-width:700px){body{background:#e8eaf4}.app,.login{background:var(--paper);border-left:1px solid #dcdeed;border-right:1px solid #dcdeed}.app-header{padding-left:32px;padding-right:32px}main{padding-left:32px;padding-right:32px}.intro{padding-top:40px}.scanner-art{margin-top:40px;margin-bottom:35px}}@media(max-width:360px){main{padding-left:18px;padding-right:18px}.intro h1{font-size:48px}.scanner-art{height:210px;margin-top:20px}.result-heading h1{font-size:27px}.card-row{padding:16px 11px;gap:9px}.card-value{max-width:85px;font-size:12px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
