:root{--ink:#2b2621;--ink-2:#3d3631;--ground:#f8f4f1;--card:#fff;--line:#ece4dc;--line-2:#d9cdc2;--muted:#6e6259;--soft:#e6d9cc;--accent:#d91a2a;--accent-dark:#a8141f;--gold:#c9a245;--bordeaux:#5e2a21;--ok:#2f6b3a;--display:"Trirong", Georgia, "Times New Roman", serif;--body:"Quattrocento Sans", "Helvetica Neue", Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--ground);color:var(--ink);font:16px/1.5 var(--body);margin:0}a{color:var(--accent)}a:hover{color:var(--accent-dark)}h1,h2{font-family:var(--display);letter-spacing:0;margin:0;font-weight:400}h2{color:var(--accent);font-size:23px}.card.dark h2{color:var(--ground)}p{margin:0}button{font:inherit}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.stack{flex-direction:column;gap:16px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding:24px;display:flex}.center-items{align-items:center}.center-text{text-align:center}.muted{color:var(--muted);font-size:14px}.soft{color:var(--soft);font-size:14px}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.mono.big{letter-spacing:.08em;font-size:20px;font-weight:700}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600;display:block}.eyebrow.gold{color:var(--gold)}.logo{font-family:var(--display);font-size:26px;font-weight:400}.logo-img{width:auto;max-width:100%;height:52px;display:block}.logo-img.big{height:72px}.logo.small{font-size:22px;display:block}.error{color:#8a1c12;background:#fbe9e6;border-radius:12px;padding:10px 14px;font-size:15px}.error.big{font-size:18px}.ok{color:var(--ok);font-weight:600}.cta{background:var(--accent);width:100%;min-height:52px;color:var(--ground);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;box-shadow:0 0 0 3px var(--ground), 0 0 0 4px var(--gold);border:0;border-radius:7px;font-size:15px;font-weight:700}.cta:hover:not(:disabled){background:var(--accent-dark)}.cta:disabled{background:var(--line-2);color:var(--muted);box-shadow:none}.cta.gold{background:var(--gold);color:var(--ink)}.outline{border:1.5px solid var(--accent);min-height:48px;color:var(--accent);cursor:pointer;background:0 0;border-radius:7px;justify-content:center;align-items:center;padding:0 20px;font-weight:600;text-decoration:none;display:flex}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;min-height:44px;padding:8px 0;text-decoration:underline}.link.light{color:var(--soft)}.login{flex-direction:column;gap:24px;max-width:420px;min-height:100dvh;margin:0 auto;padding:64px 20px 24px;display:flex}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.field input{border:1.5px solid var(--line-2);min-height:52px;color:var(--ink);background:#fff;border-radius:7px;padding:0 14px;font-size:17px}.code-input{letter-spacing:.3em;font-family:ui-monospace,monospace;font-size:22px!important}.check{color:var(--muted);align-items:flex-start;gap:10px;font-size:14px;display:flex}.check input{width:22px;height:22px;accent-color:var(--accent);flex:none;margin:0}.legal{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 16px;margin-top:auto;padding-top:8px;font-size:13px;display:flex}.app{flex-direction:column;max-width:520px;min-height:100dvh;margin:0 auto;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--ground)}.topbar-strip{background:var(--ink);color:var(--ground);text-align:center;letter-spacing:.04em;padding:calc(env(safe-area-inset-top) + 8px) 16px 8px;font-size:13px}.topbar-logo{justify-content:center;padding:14px 20px 12px;display:flex}.content{flex:1;padding:20px 20px 110px}.tabbar{background:var(--ground);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{max-width:174px;font-family:var(--body);color:#6b5d55;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;min-height:60px;padding:10px 0 8px;font-size:12px;font-weight:500;display:flex}.tab.on{color:var(--accent);font-weight:700}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}.card.dark{background:var(--ink);border-color:var(--ink);color:var(--ground)}.card.gold-border{border:2px solid var(--gold)}.card.done{padding:32px}.stamps{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.slot{aspect-ratio:1;border:2px dashed #8c7a6e;border-radius:50%;justify-content:center;align-items:center;display:flex}.slot.on{border:2px solid var(--accent);background:var(--accent)}.qr{image-rendering:pixelated;border-radius:8px}.qr-placeholder{background:var(--line);border-radius:8px}.doors{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.door{aspect-ratio:1;background:var(--ink-2);color:#b8a598;font:700 17px var(--display);border:0;border-radius:12px;padding:0}.door.today{background:var(--gold);color:var(--ink);cursor:pointer;animation:2s ease-in-out infinite glow}.door.open{background:var(--ground);color:var(--accent);cursor:pointer}.door.missed{border:1.5px solid var(--ink-2);color:#8c7a6e;background:0 0;text-decoration:line-through}@keyframes glow{50%{box-shadow:0 0 0 4px #c9a22759}}@media (prefers-reduced-motion:reduce){.door.today{animation:none}}.invite-hint{border:1px solid var(--gold);background:#fff6da;border-radius:12px;padding:12px 14px;font-weight:600}.gift+.gift{border-top:1px solid var(--line);padding-top:16px}.prize{font-family:var(--display);color:var(--accent);font-size:26px;font-weight:800}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.product{color:var(--ink);flex-direction:column;justify-content:flex-end;gap:4px;min-height:96px;text-decoration:none;display:flex}.theke{flex-direction:column;min-height:100dvh;display:flex}.theke-bar{background:var(--ink);color:var(--ground);justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex}.theke-grid{flex:1;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;padding:24px;display:grid}.scan-panel{background:var(--ink);border-radius:24px;flex-direction:column;gap:16px;padding:20px;display:flex}.scanner{flex-direction:column;flex:1;gap:12px;min-height:280px;display:flex}.scanner video{aspect-ratio:4/3;object-fit:cover;background:#000;border-radius:16px;width:100%}.scan-paused{color:#b8a598;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-height:280px;display:flex}.manual{gap:10px;display:flex}.manual input{letter-spacing:.05em;border:0;border-radius:12px;flex:1;min-width:0;min-height:52px;padding:0 14px;font:600 18px ui-monospace,monospace}.scanbtn{background:var(--gold);min-height:52px;color:var(--ink);cursor:pointer;border:0;border-radius:12px;padding:0 22px;font-weight:700}.scanbtn:disabled{opacity:.6}.result-panel{flex-direction:column;gap:16px;display:flex}.waiting{border:2px dashed var(--line-2);text-align:center;border-radius:24px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;min-height:240px;padding:32px;font-size:18px;display:flex}.huge{font-family:var(--display);font-size:30px;font-weight:800;line-height:1.2}.accent{color:var(--accent)}.badge{background:var(--gold);white-space:nowrap;border-radius:999px;padding:8px 14px;font-weight:700}.label{color:var(--muted);font-weight:600}.amounts{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.amt{border:1.5px solid var(--line-2);min-height:72px;font:800 28px var(--display);color:var(--ink);cursor:pointer;background:#fff;border-radius:14px}.amt.on{background:var(--accent);border-color:var(--accent);color:#fff}.login .brand{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.login .brand .eyebrow{color:var(--accent)}
