:root{color-scheme:dark;--ink:#fff9eb;--muted:#c9bda9;--cyan:#e8b55d;--violet:#a62d1f;--pink:#e15a32;--panel:rgba(32,16,10,.78)}
*{box-sizing:border-box}
html,body{min-height:100%;margin:0}
body{font-family:"Noto Sans SC",system-ui,sans-serif;background:#0d0806;color:var(--ink);overflow-x:hidden}
button{font:inherit}
.shell{position:relative;min-height:100svh;display:grid;place-items:center;padding:42px 22px;isolation:isolate;background:radial-gradient(circle at 74% 8%,rgba(211,68,37,.26) 0,transparent 28%),radial-gradient(circle at 50% -12%,#4a2118 0,transparent 45%),linear-gradient(160deg,#0b0705 0%,#170c08 57%,#25120c 100%)}
.shell:before{content:"";position:absolute;inset:0;z-index:-2;opacity:.23;background-image:linear-gradient(rgba(232,181,93,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(232,181,93,.06) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,#000,transparent 78%)}
.shell:after{content:"";position:absolute;left:7%;right:7%;bottom:5%;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);box-shadow:0 0 25px rgba(232,181,93,.7);opacity:.68}
.hero{width:min(100%,520px);text-align:center;animation:rise .8s ease-out both}
.badge{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border:1px solid rgba(232,181,93,.3);border-radius:999px;background:rgba(49,23,13,.66);color:#f5db9c;font-size:12px;letter-spacing:.12em;backdrop-filter:blur(12px)}
.badge span{width:7px;height:7px;border-radius:50%;background:#e8b55d;box-shadow:0 0 12px #e8b55d;animation:pulse 1.8s infinite}
.mark{width:96px;height:96px;margin:34px auto 18px;display:grid;place-items:center;border:1px solid rgba(255,224,158,.26);border-radius:12px;font-family:serif;font-size:50px;font-weight:900;background:linear-gradient(145deg,#7e1e16,#c74325);box-shadow:0 24px 70px rgba(143,36,21,.42),inset 0 1px 0 rgba(255,239,199,.38);transform:rotate(-4deg)}
.eyebrow{margin:0 0 5px;color:var(--cyan);font-size:11px;font-weight:700;letter-spacing:.42em}
h1{margin:0;font-family:"Noto Sans SC",serif;font-size:clamp(48px,14vw,78px);font-weight:900;letter-spacing:-.04em;line-height:1.08;background:linear-gradient(115deg,#fff8dc 8%,#f2c56c 48%,#d6783a 88%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 10px 45px rgba(216,100,47,.2)}
.tagline{margin:20px 0 30px;color:#d6c2a5;font-size:16px;font-weight:600;line-height:1.85;letter-spacing:.12em}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.button{position:relative;min-height:70px;border:0;border-radius:19px;display:flex;align-items:center;justify-content:center;gap:11px;color:#fff;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;overflow:hidden}
.button:active{transform:scale(.97)}
.button svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.button span{display:flex;flex-direction:column;text-align:left;font-size:16px;font-weight:700;line-height:1.25}.button small{font-size:10px;font-weight:400;opacity:.68}
.primary{background:linear-gradient(135deg,#9e261c,#d6532d);box-shadow:0 14px 38px rgba(155,42,27,.36)}
.primary:before{content:"";position:absolute;inset:-1px;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.22) 48%,transparent 70%);transform:translateX(-100%);animation:shine 4s 1.2s infinite}
.secondary{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(10px)}
.button:hover{transform:translateY(-2px)}.primary:hover{box-shadow:0 18px 44px rgba(177,50,28,.48)}.secondary:hover{border-color:rgba(232,181,93,.5)}
.note{margin:18px 0 0;color:#747d99;font-size:11px}
.orbs i{position:absolute;border-radius:50%;filter:blur(4px);opacity:.5;z-index:-1}.orbs i:nth-child(1){width:180px;height:180px;left:-90px;top:18%;background:radial-gradient(circle,var(--violet),transparent 70%)}.orbs i:nth-child(2){width:150px;height:150px;right:-80px;bottom:20%;background:radial-gradient(circle,var(--cyan),transparent 70%)}.orbs i:nth-child(3){width:8px;height:8px;left:17%;bottom:16%;background:white;box-shadow:80px -320px 0 #fff,260px -230px 0 var(--pink),300px 50px 0 var(--cyan)}
.modal{width:min(calc(100% - 40px),390px);padding:30px 28px 26px;border:1px solid rgba(255,255,255,.18);border-radius:28px;background:rgba(16,21,40,.96);color:#fff;text-align:center;box-shadow:0 30px 100px rgba(0,0,0,.6);backdrop-filter:blur(20px)}
.modal::backdrop{background:rgba(3,5,13,.76);backdrop-filter:blur(7px)}.modal[open]{animation:pop .25s ease-out}
.close{position:absolute;top:12px;right:14px;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.07);color:#bfc5d7;font-size:27px;line-height:1;cursor:pointer}.close:hover{background:rgba(255,255,255,.13);color:#fff}
.wechat-icon{width:44px;height:44px;margin:0 auto 10px;display:grid;place-items:center;border-radius:14px;background:#17c964;color:white;font-size:26px;font-weight:900}.modal h2{margin:0;font-size:24px}.modal p{margin:8px 0 18px;color:#aeb5cb;font-size:13px}.qr-wrap{background:#fff;border-radius:20px;padding:12px;box-shadow:0 12px 40px rgba(0,0,0,.28)}.qr-wrap img{display:block;width:100%;aspect-ratio:1;object-fit:contain;border-radius:10px}.scan-tip{display:block;margin-top:16px;color:#67e8a4;font-size:12px;letter-spacing:.12em}
.toast{position:fixed;left:50%;bottom:max(26px,env(safe-area-inset-bottom));z-index:10;width:max-content;max-width:calc(100% - 36px);padding:12px 18px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(24,29,50,.94);color:#e8ebf6;font-size:12px;box-shadow:0 14px 35px rgba(0,0,0,.35);opacity:0;transform:translate(-50%,18px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes pop{from{opacity:0;transform:scale(.94)}}@keyframes pulse{50%{opacity:.45;transform:scale(.75)}}@keyframes shine{0%,65%{transform:translateX(-100%)}85%,100%{transform:translateX(100%)}}
@media(max-width:380px){.actions{grid-template-columns:1fr}.mark{margin-top:24px}.tagline{margin-bottom:24px}.button{min-height:64px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
