*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#101010;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.app{max-width:760px;margin:auto;padding:env(safe-area-inset-top) 16px 28px}header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 2px 14px}h1{font-size:23px;margin:0 0 4px}header p,.hint{margin:0;color:#aaa;font-size:13px;line-height:1.4}#count{font-size:13px;color:#aaa;padding-top:5px}.camera-card{overflow:hidden;border-radius:20px;background:#222;aspect-ratio:3/4;box-shadow:0 8px 30px #0008}.camera-card video{width:100%;height:100%;object-fit:cover}.primary,.secondary{border:0;border-radius:15px;padding:16px 18px;font-size:17px;font-weight:700;cursor:pointer}.primary{background:#fff;color:#111}.secondary{background:#333;color:#fff}.app>.primary{width:100%;margin-top:16px}.app>.secondary{width:100%;margin-top:10px}.app>.hint{text-align:center;margin-top:10px}.error{padding:14px;background:#4a1717;color:#ffd8d8}.modal{position:fixed;inset:0;background:#000c;display:flex;align-items:flex-end;justify-content:center;z-index:10}.modal-card{width:100%;max-width:760px;max-height:95vh;overflow:auto;background:#181818;border-radius:24px 24px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px #000}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modal-head h2{margin:0;font-size:21px}.icon-btn{border:0;background:none;color:#fff;font-size:32px;line-height:1}.image-stage,.result-image{background:#000;border-radius:14px;overflow:auto;text-align:center}.image-stage img{display:block;width:100%;max-height:58vh;object-fit:contain}.result-image img{display:block;width:100%;max-height:38vh;object-fit:contain}.modal-card>.hint{margin:10px 2px}.actions{display:flex;gap:10px;margin-top:14px}.actions button{flex:1}.loading{text-align:center;padding:30px 10px}.spinner{width:32px;height:32px;margin:auto;border:3px solid #555;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.result{white-space:pre-wrap;font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:16px 0;color:#eee}.result-card details{margin-top:4px}.result-card summary{cursor:pointer;color:#bbb;padding:8px 0}button:active{transform:scale(.98)}[hidden]{display:none!important}
