*{box-sizing:border-box;margin:0;padding:0}:root{--paper:#f4f1e9;--ink:#16211c;--muted:#6b7a70;--muted-2:#8a968d;--muted-3:#9aa69e;--green:#16a15f;--green-grad:linear-gradient(135deg, #16a15f, #0b6b41);--amber:#e8913a;--amber-grad:linear-gradient(135deg, #f6b24e, #e8913a);--red:#d2513f;--err:#c0392b;--line:#e7e4da;--seg-bg:#ebe7dc}html,body{height:100%}body{background:radial-gradient(120% 90% at 50% 0%, #f7f4ec 0%, #ede7da 100%) fixed var(--paper);color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:Noto Sans SC,-apple-system,PingFang SC,sans-serif}#root{flex-direction:column;max-width:560px;height:100dvh;margin:0 auto;display:flex}.num{font-family:Space Grotesk,sans-serif}.center-page{justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}button{font-family:inherit}input,select{width:100%;color:inherit;background:0 0;border:none;outline:none;font-family:inherit;font-size:16px}.field{border:1.5px solid var(--line);background:#fff;border-radius:16px;align-items:center;gap:11px;padding:14px 16px;transition:border-color .2s,box-shadow .2s;display:flex;box-shadow:0 2px 8px #16211c0a}.field:focus-within{border-color:var(--green);box-shadow:0 0 0 4px #16a15f24}.field.err{border-color:#e0503f;animation:.5s shake;box-shadow:0 0 0 4px #e0503f24}.field .prefix{opacity:.55;flex:none;font-size:16px}.btn-primary{background:var(--green-grad);color:#fff;cursor:pointer;border:none;border-radius:16px;width:100%;padding:16px;font-size:16px;font-weight:800;box-shadow:0 14px 26px -10px #0b6b4199}.btn-text{color:var(--muted);cursor:pointer;background:0 0;border:none;width:100%;padding:12px;font-size:14.5px}.hint{color:var(--muted-3);font-size:13px}.error-text{color:var(--err);text-align:center;font-size:13px}.sheet-mask{z-index:90;background:#0b0f0c80;animation:.25s both fadeIn;position:fixed;inset:0}.sheet{z-index:91;border-radius:30px 30px 0 0;width:100%;max-width:560px;max-height:88dvh;padding:10px 24px 30px;animation:.34s cubic-bezier(.22,1,.36,1) both sheetUp;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}.sheet-grab{border-radius:3px;width:40px;height:5px;margin:0 auto 18px}.dialog-wrap{z-index:96;justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}.dialog{text-align:center;background:#f7f5ef;border-radius:24px;width:100%;max-width:320px;padding:26px 24px 20px;animation:.3s cubic-bezier(.22,1,.36,1) both checkPop;position:relative}.scan-overlay{z-index:70;background:#0b0f0c;animation:.25s both fadeIn;position:fixed;inset:0}.scan-overlay .glow{background:radial-gradient(60% 40% at 50% 42%,#16a15f29,#0000 70%);position:absolute;inset:0}.scan-close{z-index:80;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff29;border:none;border-radius:50%;width:38px;height:38px;font-size:18px;position:absolute;top:24px;left:22px}.scan-title{text-align:center;color:#fff;z-index:80;font-size:16px;font-weight:600;position:absolute;top:30px;left:0;right:0}.viewfinder{width:250px;height:250px;position:absolute;top:50%;left:50%;transform:translate(-50%,-58%)}.viewfinder .win{background:#000;border-radius:26px;position:absolute;inset:0;overflow:hidden;box-shadow:0 0 0 2000px #0b0f0c8c}.viewfinder .win video{object-fit:cover;width:100%!important;height:100%!important}.viewfinder .laser{z-index:3;background:linear-gradient(90deg,#0000,#3be38c,#0000);border-radius:3px;height:3px;animation:1.6s ease-in-out infinite scanline;position:absolute;left:8%;right:8%;box-shadow:0 0 14px #3be38c}.viewfinder .corner{z-index:4;width:34px;height:34px;position:absolute}.viewfinder .c-tl{border-top:4px solid #3be38c;border-left:4px solid #3be38c;border-radius:14px 0 0;top:-2px;left:-2px}.viewfinder .c-tr{border-top:4px solid #3be38c;border-right:4px solid #3be38c;border-radius:0 14px 0 0;top:-2px;right:-2px}.viewfinder .c-bl{border-bottom:4px solid #3be38c;border-left:4px solid #3be38c;border-radius:0 0 0 14px;bottom:-2px;left:-2px}.viewfinder .c-br{border-bottom:4px solid #3be38c;border-right:4px solid #3be38c;border-radius:0 0 14px;bottom:-2px;right:-2px}.scan-hint{text-align:center;color:#ffffffd9;z-index:80;font-size:14px;position:absolute;bottom:120px;left:0;right:0}.scan-err{z-index:80;text-align:center;color:#ffb3a6;background:#d2513f38;border-radius:14px;padding:10px 16px;font-size:14px;position:absolute;bottom:168px;left:32px;right:32px}.bottom-nav{background:#fff;border-top:1px solid #ece8de;flex:none;gap:2px;padding:8px 10px 22px;display:flex;box-shadow:0 -6px 18px -12px #16211c33}.bottom-nav button{cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:2px 0;font-size:11px;display:flex}@keyframes scanline{0%{top:6%}50%{top:88%}to{top:6%}}@keyframes sheetUp{0%{transform:translate(-50%)translateY(100%)}to{transform:translate(-50%)translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes checkPop{0%{transform:scale(0)}60%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes splashRoof{0%{opacity:0;transform:translateY(-70px)}to{opacity:1;transform:translateY(0)}}@keyframes splashAwning{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes splashBody{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes splashCoin{0%{transform:scale(0)}60%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes splashRing{0%{opacity:.5;transform:scale(.6)}to{opacity:0;transform:scale(1.9)}}@keyframes splashText{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes idleBob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes drift{0%{opacity:.5;transform:translateY(0)translate(0)}50%{opacity:.9}to{opacity:.5;transform:translateY(-26px)translate(8px)}}@keyframes floatUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes coinShine{0%,88%,to{opacity:0;transform:translate(-70px)skew(-18deg)}92%{opacity:.85}96%{opacity:0;transform:translate(70px)skew(-18deg)}}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-9px)rotate(-2deg)}30%{transform:translate(8px)rotate(2deg)}45%{transform:translate(-6px)rotate(-1.4deg)}60%{transform:translate(5px)rotate(1deg)}75%{transform:translate(-3px)}}@keyframes flyToCard{0%{opacity:1;transform:translateY(0)scale(1)}30%{transform:translateY(14px)scale(1.04)}to{opacity:0;transform:translateY(-460px)scale(.72)}}@keyframes cardArrive{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes twinkle{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes windowGlow{0%,to{opacity:.55}50%{opacity:.9}}@keyframes waveDrift{0%,to{transform:translate(-10px)}50%{transform:translate(10px)}}@keyframes wc_sun{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.85;transform:scale(1.1)}}@keyframes wc_twinkle{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes wc_cloud{0%{transform:translate(-8px)}to{transform:translate(18px)}}@keyframes wc_rain{0%{opacity:0;transform:translateY(-16px)}20%{opacity:.75}to{opacity:0;transform:translateY(150px)}}@keyframes wc_snow{0%{opacity:0;transform:translateY(-12px)translate(0)}20%{opacity:.95}to{opacity:0;transform:translateY(150px)translate(16px)}}@keyframes wc_wind{0%{opacity:0;transform:translate(-70px)}15%{opacity:.7}85%{opacity:.7}to{opacity:0;transform:translate(360px)}}@keyframes wc_spin{to{transform:rotate(360deg)}}@keyframes wc_shimmer{0%,to{opacity:.2;transform:scaleX(1)}50%{opacity:.55;transform:scaleX(1.06)}}@keyframes wc_hail{0%{opacity:0;transform:translateY(-14px)}15%{opacity:1}to{opacity:0;transform:translateY(150px)}}@keyframes wc_fog{0%{opacity:.25;transform:translate(-22px)}50%{opacity:.6}to{opacity:.25;transform:translate(22px)}}@keyframes wc_flash{0%,90%,to{opacity:0}92%{opacity:.42}94%{opacity:.1}96%{opacity:.34}99%{opacity:0}}
