:root{--brand: #1a5c34;--brand-light: #2d8a52;--brand-dark: #052814;--gold: #f5d547;--gold-dark: #c9a92b;--ink: #1a2e1f;--muted: #5f7a68;--card-bg: rgba(255, 255, 255, .96)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;background:linear-gradient(160deg,#0a3d20,#114a28,#15572d);color:var(--ink);min-height:100vh}.app{position:relative;max-width:520px;margin:0 auto;padding:0 18px 50px;min-height:100vh}.brand-header{text-align:center;padding:18px 12px 14px;font-size:16px;font-weight:800;color:#fff;letter-spacing:1px;border-bottom:1px solid rgba(255,255,255,.12);text-shadow:0 1px 4px rgba(0,0,0,.25)}.hero{text-align:center;padding:22px 0 18px}.hero-badge{display:inline-block;font-size:11px;color:var(--gold);background:#f5d5471f;border:1px solid rgba(245,213,71,.35);padding:4px 12px;border-radius:999px;margin-bottom:12px;letter-spacing:1px}.hero h1{margin:0;font-size:32px;font-weight:900;line-height:1.1;background:linear-gradient(180deg,#fff 0%,var(--gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero p{margin:10px 0 0;color:#ffffffd1;font-size:13px;letter-spacing:.3px}.card{position:relative;background:var(--card-bg);border-radius:22px;padding:22px 20px;box-shadow:0 16px 40px #0000002e}.card-head{display:flex;align-items:center;gap:10px;margin-bottom:18px}.card-icon{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--brand-light),var(--brand));display:grid;place-items:center;font-size:18px;box-shadow:0 4px 10px #1a5c3440}.card h2{margin:0;font-size:17px;color:var(--ink);font-weight:700}.field{margin-bottom:15px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:500}.field .req{color:#e4393c;font-weight:700}.field .opt{color:#aab8af;font-weight:400}.field input,.field select,.field-control{width:100%;padding:13px 14px;border:1px solid #e0e8e2;border-radius:12px;font-size:15px;outline:none;background:#f8fbf9;transition:all .2s;font-family:inherit}.field input:focus,.field select:focus,.field-control:focus{border-color:var(--brand-light);background:#fff;box-shadow:0 0 0 3px #2d8a521a}.sms-row{display:flex;gap:10px;align-items:stretch;margin-bottom:15px}.sms-input{flex:1;min-width:0;padding:13px 14px;border:1px solid #e0e8e2;border-radius:12px;font-size:15px;outline:none;background:#f8fbf9;transition:all .2s;font-family:inherit}.sms-input:focus{border-color:var(--brand-light);background:#fff;box-shadow:0 0 0 3px #2d8a521a}.sms-btn{flex:0 0 auto;min-width:116px;padding:0 14px;border:1.5px solid var(--brand-light);border-radius:12px;background:#fff;color:var(--brand);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap}.sms-btn:active{background:#eef7f0}.sms-btn:disabled{opacity:.55;cursor:not-allowed;border-color:#cfd9d2;color:var(--muted);background:#f4f7f5}.btn{width:100%;padding:15px;border:0;border-radius:14px;background:linear-gradient(90deg,var(--brand),var(--brand-light));color:#fff;font-size:16px;font-weight:700;letter-spacing:1px;cursor:pointer;box-shadow:0 10px 22px #1a5c3459;transition:all .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px #1a5c3466}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.ghost{background:#fff;color:var(--brand);border:1.5px solid var(--brand);box-shadow:none}.tip{font-size:12px;color:var(--muted);text-align:center;margin-top:14px;line-height:1.5}.channels{display:flex;gap:10px;flex-wrap:wrap}.chip{flex:1;min-width:88px;padding:12px 10px;border:1px solid #e0e8e2;border-radius:12px;background:#f8fbf9;font-size:14px;color:var(--ink);cursor:pointer;transition:all .2s}.chip.on{border-color:var(--brand-light);background:linear-gradient(135deg,#e8f5e9,#fff);color:var(--brand);font-weight:700;box-shadow:0 4px 10px #1a5c341a}.lottery-section{position:relative;background:linear-gradient(145deg,#ffffff14,#ffffff0a);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:18px 16px 22px;box-shadow:0 16px 40px #0003,inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lottery-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.lottery-header h2{margin:0;font-size:18px;color:#fff;font-weight:800}.lottery-header p{margin:4px 0 0;font-size:12px;color:#ffffffa6}.chance-badge{background:linear-gradient(135deg,var(--gold),#ffe680);color:#3d2e00;font-size:13px;font-weight:700;padding:8px 14px;border-radius:999px;box-shadow:0 4px 12px #f5d54740}.chance-badge b{font-size:18px;margin:0 2px}.grid9{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:#0528148c;padding:12px;border-radius:20px;border:1px solid rgba(245,213,71,.25);box-shadow:inset 0 4px 20px #00000040}.cell{aspect-ratio:1 / 1;border-radius:14px;background:linear-gradient(145deg,#fff,#f6fbf7);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6px;box-shadow:0 4px 10px #00000014;transition:all .15s}.cell .emoji{font-size:28px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.08))}.cell .name{font-size:12px;margin-top:5px;font-weight:700;color:var(--ink)}.cell .lvl{font-size:10px;color:var(--muted);margin-top:2px}.cell.active{outline:3px solid var(--gold);transform:scale(1.05);background:linear-gradient(145deg,#fffbe6,#fff5c2);box-shadow:0 0 20px #f5d54773;z-index:2}.cell.center{background:linear-gradient(145deg,var(--gold),#ffec8b);color:#3d2e00;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 6px 16px #f5d54759;animation:pulseBtn 2s ease-in-out infinite}.cell.center:before{content:"";position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;background:radial-gradient(circle,rgba(255,255,255,.45) 0%,transparent 60%);transform:rotate(30deg)}.cell.center:hover{transform:scale(1.03)}.cell.center .go{font-size:19px;font-weight:900;position:relative;z-index:1}.cell.center .sub{font-size:11px;font-weight:700;opacity:.8;margin-top:3px;position:relative;z-index:1}.cell.center.spinning{animation:spinFast .8s linear infinite}@keyframes pulseBtn{0%,to{box-shadow:0 6px 16px #f5d54759,0 0 #f5d54759}50%{box-shadow:0 6px 16px #f5d54773,0 0 0 10px #f5d54700}}@keyframes spinFast{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:50}.modal{background:#fff;border-radius:24px;padding:32px 24px;text-align:center;width:100%;max-width:320px;box-shadow:0 24px 60px #00000059;animation:pop .35s cubic-bezier(.18,.89,.32,1.28)}@keyframes pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.modal .big{font-size:52px;margin-bottom:6px}.modal h3{margin:6px 0 4px;font-size:22px}.modal .desc{color:var(--muted);font-size:14px;margin-bottom:22px;line-height:1.5}.win-title{color:var(--brand)}.lose-title{color:var(--muted)}.redeem-box{background:linear-gradient(160deg,#eafaf0,#f4fbf6);border:1px solid var(--brand-light);border-radius:14px;padding:14px 14px 12px;margin-bottom:18px}.redeem-title{font-size:13px;font-weight:700;color:var(--brand);margin-bottom:10px}.redeem-qr{width:132px;height:132px;display:block;margin:0 auto 10px;border-radius:10px;background:#fff;padding:8px;box-shadow:0 4px 12px #1a5c341f}.redeem-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px;font-weight:800;letter-spacing:1.5px;color:var(--brand-dark);text-align:center;background:#fff;border:1px dashed var(--brand-light);border-radius:8px;padding:8px;margin-bottom:10px}.redeem-copy{width:100%;padding:10px;border:0;border-radius:10px;background:var(--brand);color:#fff;font-size:14px;font-weight:700;cursor:pointer}.redeem-copy:active{opacity:.85}.redeem-tip{font-size:11px;color:var(--muted);text-align:center;margin-top:8px;line-height:1.5}.admin-link{text-align:center;margin-top:26px}.admin-link a{color:#ffffffbf;font-size:12px;text-decoration:underline}@media (max-width: 360px){.hero h1{font-size:28px}.brand-header{font-size:15px}}
