:root{--primary:#1f2937;--on-primary:#fff;--secondary:#f3f4f6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{color:#1f2937;background:var(--secondary);margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}main{max-width:28rem;margin:0 auto;padding:1.25rem}h1{margin:0;font-size:1.5rem;line-height:1.2}.hero{background:var(--primary);color:var(--on-primary);border-radius:1rem;margin-bottom:1rem;padding:1.25rem}.hero p{margin:.25rem 0 0}.panel{background:#fff;border-radius:1rem;padding:1.25rem}.field{margin-bottom:1rem;font-weight:600;display:block}.field input{width:100%;font:inherit;border:1px solid #9ca3af;border-radius:.5rem;margin-top:.25rem;padding:.75rem;font-weight:400;display:block}.check{align-items:flex-start;gap:.5rem;margin-bottom:.75rem;font-size:.9375rem;display:flex}.check input{flex:none;width:1.125rem;height:1.125rem;margin-top:.25rem}button{width:100%;min-height:3rem;font:inherit;color:var(--on-primary);background:var(--primary);cursor:pointer;border:0;border-radius:.5rem;margin-top:.5rem;font-weight:600}button:disabled{opacity:.6;cursor:default}:focus-visible{outline-offset:2px;outline:3px solid #2563eb}.message{margin:.75rem 0 0}.message.error{color:#b91c1c}.stamps{grid-template-columns:repeat(5,1fr);gap:.5rem;margin:1rem 0;display:grid}.stamp{aspect-ratio:1;border:2px dashed #9ca3af;border-radius:50%;place-items:center;font-size:1.5rem;display:grid}.stamp.filled{border:2px solid var(--primary);background:var(--secondary)}.reward{margin:0;font-weight:600}.earned{background:var(--secondary);border-left:4px solid var(--primary);border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem}.earned p{margin:0}.earned .message{margin-top:.25rem;font-size:.875rem}.qr{text-align:center;margin-top:1rem}.qr-box{aspect-ratio:1;background:#fff;width:min(100%,18rem);margin:0 auto}.qr-box svg{shape-rendering:crispedges;width:100%;height:100%;display:block}.qr-status{margin:.5rem 0 0;font-size:.875rem}button.secondary{color:var(--primary);border:2px solid var(--primary);background:0 0;margin-top:0}.home-screen{margin-top:1rem}.points{color:var(--primary);margin:8px 0 0;font-size:3rem;font-weight:700;line-height:1}.catalog{text-align:left;margin:16px 0 0;padding:0;list-style:none}.catalog li{opacity:.6;border-top:1px solid #e5e7eb;justify-content:space-between;gap:12px;padding:10px 0;display:flex}.catalog li.affordable{opacity:1;font-weight:600}.catalog .cost{white-space:nowrap;font-size:.875rem}.hero .logo{object-fit:contain;background:#fff;border-radius:12px;width:64px;height:64px;margin-bottom:.75rem;display:block}
