:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#102a43;background:#f4f7f9;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 50% -10%,#fff 0,#f4f7f9 52%,#eaf0f4)}button,textarea{font:inherit}button{min-height:52px;cursor:pointer}button:focus-visible,textarea:focus-visible{outline:3px solid #2d7ff9;outline-offset:3px}.app-shell,.barcode-page{width:min(100%,680px);min-height:100vh;margin:auto;padding:max(24px,env(safe-area-inset-top)) 22px max(24px,env(safe-area-inset-bottom));display:flex;flex-direction:column}.brand{display:flex;align-items:center;font-size:.86rem;font-weight:750;letter-spacing:.04em}.brand-link{display:inline-flex;align-items:center;gap:10px;min-height:48px;color:inherit;text-decoration:none}.brand-link:hover span{text-decoration:underline;text-underline-offset:4px}.brand-logo{width:42px;height:42px;object-fit:contain}.hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 0 10px}.eyebrow,.section-kicker{color:#527089;font-size:.7rem;font-weight:800;letter-spacing:.16em}.hero-icon{width:92px;height:92px;margin:20px 0;padding:22px;display:flex;justify-content:space-between;align-items:stretch;border-radius:24px;background:#dce9ed;transform:rotate(-3deg)}.hero-icon span{width:6px;border-radius:3px;background:#146b73}.hero-icon span:nth-child(2){width:3px}.hero-icon span:nth-child(3){width:10px}.hero-icon span:nth-child(5){width:4px}h1{margin:8px 0 12px;color:#0b253e;font-size:clamp(2rem,9vw,3.5rem);line-height:.98;letter-spacing:-.045em}.lede{max-width:420px;margin:6px 0 30px;color:#527089;font-size:1.05rem;line-height:1.6}.stacked-actions{width:min(100%,390px);display:grid;gap:12px}.primary-button,.secondary-button{border-radius:14px;border:1px solid transparent;padding:14px 20px;font-weight:750;transition:transform .15s,box-shadow .15s}.primary-button{color:#fff;background:#0d6670;box-shadow:0 9px 25px #0d66702b}.primary-button:hover{background:#095b64;transform:translateY(-1px)}.primary-button:disabled{opacity:.45;cursor:not-allowed;transform:none}.secondary-button{color:#173d5c;border-color:#bfd0db;background:#fff}.secondary-button:hover{background:#f7fafc}.full{width:100%;margin-top:12px}.privacy{max-width:420px;margin:28px 0 8px;color:#46647a;font-size:.82rem;line-height:1.5}.disclaimer,.compatibility{color:#708596;font-size:.75rem;line-height:1.5}.portfolio-link{min-height:44px;display:inline-flex;align-items:center;gap:5px;margin-top:2px;color:#315b72;font-size:.78rem;font-weight:700;text-underline-offset:3px}.confirm-panel{width:min(100%,540px);margin:0 auto;padding:24px 0 45px}.confirm-panel h1{font-size:clamp(2rem,7vw,3rem)}.confirm-panel>p:not(.section-kicker):not(.warning){color:#587286;line-height:1.5}.back-button{min-height:44px;margin-bottom:18px;padding:0;border:0;background:none;color:#2d576e;font-weight:700}.input-label{display:block;margin:18px 0 8px;font-size:.82rem;font-weight:800}textarea{width:100%;resize:vertical;min-height:108px;padding:16px;border:2px solid #bccdd7;border-radius:14px;color:#102a43;background:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.05rem;line-height:1.45;overflow-wrap:anywhere}.input-meta{display:flex;justify-content:space-between;gap:12px;padding:9px 2px 16px;color:#708596;font-size:.76rem}.valid{color:#087347;font-weight:750}.invalid{color:#a23b2a;font-weight:750}.warning{margin-top:22px;padding:12px 14px;border-left:4px solid #d59219;border-radius:6px;background:#fff6df;color:#704d0b;font-size:.84rem;line-height:1.45}.progress{height:8px;margin-top:20px;overflow:hidden;border-radius:8px;background:#dce7ed}.progress span{display:block;height:100%;background:#0d6670;transition:width .2s}.candidates{display:grid;gap:8px;margin:22px 0;padding:14px;border:1px solid #ccd9e1;border-radius:14px}.candidates legend{padding:0 6px;color:#526d80;font-size:.78rem;font-weight:750}.candidates button{min-height:44px;padding:9px;overflow-wrap:anywhere;border:1px solid #c5d4dc;border-radius:9px;background:#fff;color:#173d5c;font-family:ui-monospace,monospace}.candidates button span,.candidates button small{display:block}.candidates button small{margin-top:4px;color:#087347;font-family:inherit;font-size:.68rem;font-weight:750}.candidates button.selected{border:2px solid #0d6670;background:#e9f5f4}.camera-screen{position:fixed;inset:0;display:flex;flex-direction:column;background:#07121b;color:#fff}.camera-top{z-index:2;display:flex;align-items:center;gap:16px;padding:max(18px,env(safe-area-inset-top)) 20px 16px;font-weight:650}.icon-button{min-width:44px;min-height:44px;border:0;border-radius:50%;color:#fff;background:#ffffff1c;font-size:1.8rem}.camera-stage{position:relative;flex:1;overflow:hidden}.camera-stage video{width:100%;height:100%;object-fit:cover}.scan-guide{position:absolute;width:min(88%,700px);aspect-ratio:1.65 / 1;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:end center;padding:12px;border:3px solid #fff;border-radius:16px;box-shadow:0 0 0 9999px #0008}.scan-guide span{padding:5px 9px;border-radius:6px;background:#000a;font-size:.75rem}.camera-controls{display:grid;place-items:center;min-height:120px;padding-bottom:env(safe-area-inset-bottom)}.capture-button{width:76px;height:76px;padding:6px;border:3px solid white;border-radius:50%;background:transparent}.capture-button span{display:block;height:100%;border-radius:50%;background:#fff}.camera-error{margin:auto;width:min(90%,420px);text-align:center;line-height:1.6}.camera-error button{padding:12px 18px;border:0;border-radius:12px;font-weight:700}.barcode-page{width:100%;max-width:1000px;text-align:center}.brand.compact{text-align:left}.barcode-card{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:32px 0}.barcode-card h1{font-size:clamp(2rem,8vw,3.4rem)}.barcode-card p{margin:0;color:#5a7487}.success-dot{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#fff;background:#0b875b}.barcode-scroll{width:100%;overflow:hidden;padding:8px;background:#fff;border-radius:12px}.barcode-scroll svg{display:block;width:100%;height:auto;max-height:250px;margin:auto}.barcode-value{display:grid;gap:5px;max-width:100%}.encoded-value{max-width:100%;overflow-wrap:anywhere;font:700 1rem/1.4 ui-monospace,SFMono-Regular,monospace}.barcode-verified{color:#087347;font-size:.76rem;font-weight:750}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:min(100%,480px);margin:auto}.barcode-nav{display:flex;justify-content:center;gap:8px 26px;margin:8px auto 0}.barcode-nav button{min-height:44px;padding:8px 4px;border:0;background:transparent;color:#315b72;font-weight:700;text-decoration:underline;text-underline-offset:3px}.compatibility{max-width:620px;margin:8px auto 0}.barcode-page--large .brand,.barcode-page--large .action-row,.barcode-page--large .barcode-nav,.barcode-page--large .compatibility,.barcode-page--large .barcode-card>div:first-child{display:none}.barcode-page--large .barcode-scroll svg{width:100%;height:auto;max-height:70vh}.barcode-page--large .barcode-card{padding:0}@media(max-width:420px){.action-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
