:root{--red:#da291c;--red-dark:#b31912;--yellow:#ffbc0d;--yellow-soft:#fff2bd;--ink:#241713;--cream:#fffaf0;--white:#fff;--muted:#786762;--line:#eadfd4;--shadow:0 24px 70px rgba(89,25,16,.18);--radius:28px;font-family:"PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}.home-page{background:var(--red);overflow-x:hidden}.home-page:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 12% 15%,rgba(255,188,13,.15),transparent 20%),linear-gradient(120deg,transparent 62%,rgba(117,0,0,.14) 62%);pointer-events:none}.home-shell{width:min(1180px,calc(100% - 48px));min-height:100vh;margin:auto;display:grid;grid-template-columns:minmax(480px,.95fr) 1.05fr;align-items:center;gap:72px;padding:52px 0;position:relative}.home-card{background:var(--white);border-radius:40px;padding:52px 58px 38px;box-shadow:var(--shadow);position:relative}.brand-mark{width:72px;height:72px;border-radius:22px 22px 26px 26px;background:var(--red);display:grid;place-items:center;color:var(--yellow);font:900 46px/1 Arial,sans-serif;letter-spacing:-8px;padding-right:7px;box-shadow:0 10px 0 #a91c13;transform:rotate(-2deg);margin-bottom:32px}.brand-mark.small{width:58px;height:58px;font-size:37px;border-radius:17px;margin-bottom:30px}.eyebrow{font-size:12px;line-height:1.2;font-weight:900;letter-spacing:.2em;color:var(--red);text-transform:uppercase}.home-card h1{font-size:clamp(43px,4.3vw,66px);line-height:1.03;letter-spacing:-.055em;margin:14px 0 16px}.home-card h1 span{color:var(--red);position:relative;z-index:1}.home-card h1 span:after{content:"";position:absolute;left:-4px;right:-7px;bottom:3px;height:12px;background:var(--yellow);z-index:-1;transform:rotate(-1deg);border-radius:10px}.lead{font-size:17px;color:var(--muted);margin:0 0 30px}.access-form label{display:block;font-weight:800;font-size:14px;margin-bottom:9px}.input-wrap{position:relative}.input-wrap input,.stack-form input{width:100%;height:58px;border:2px solid var(--line);border-radius:16px;padding:0 48px 0 18px;outline:0;background:#fffdf9;transition:.2s}.input-wrap input:focus,.stack-form input:focus{border-color:var(--yellow);box-shadow:0 0 0 4px rgba(255,188,13,.18)}.input-dot{position:absolute;right:19px;top:50%;transform:translateY(-50%);width:12px;height:12px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 5px var(--yellow-soft)}.form-hint,.form-error{font-size:12px;margin:8px 2px 15px}.form-hint{color:#998984}.form-error{color:var(--red);font-weight:700}.primary-button{width:100%;border:0;border-radius:16px;background:var(--red);color:#fff;min-height:58px;padding:13px 22px;font-weight:900;font-size:16px;box-shadow:0 8px 0 var(--red-dark);transition:transform .2s,box-shadow .2s}.primary-button:hover{transform:translateY(-2px);box-shadow:0 10px 0 var(--red-dark)}.primary-button:active{transform:translateY(5px);box-shadow:0 3px 0 var(--red-dark)}.primary-button span{float:right;font-size:22px}.text-button{display:block;background:none;border:0;color:var(--red);font-weight:800;text-decoration:underline;text-underline-offset:4px;margin:24px auto 0}.trust-row{border-top:1px dashed var(--line);display:flex;justify-content:center;gap:20px;margin-top:26px;padding-top:21px;color:#8c7a74;font-size:11px;font-weight:700}.trust-row span:First-letter{color:var(--red)}.treat-stage{height:620px;position:relative;display:grid;place-items:center}.treat-stage>p{position:absolute;right:2%;top:7%;color:#fff;font-size:21px;line-height:1.25;transform:rotate(5deg);text-align:center}.treat-stage>p strong{color:var(--yellow);font-size:31px}.icecream{width:340px;height:550px;position:relative;filter:drop-shadow(0 34px 18px rgba(87,0,0,.23));transform:rotate(5deg);z-index:2}.swirl{position:absolute;background:#fff8e7;left:50%;transform:translateX(-50%);border-radius:50%;box-shadow:inset -20px -10px 0 #f1dfc0}.swirl-a{width:260px;height:180px;top:88px;z-index:3}.swirl-b{width:200px;height:160px;top:20px;z-index:2}.swirl-c{width:120px;height:130px;top:-35px;z-index:1}.swirl-c:after{content:"";position:absolute;top:-48px;left:45px;border-left:22px solid transparent;border-right:22px solid transparent;border-bottom:70px solid #fff8e7;transform:rotate(8deg)}.cone{position:absolute;top:230px;left:50%;transform:translateX(-50%);width:230px;height:300px;background:linear-gradient(135deg,#ef9e2e,#ffc45c);clip-path:polygon(0 0,100% 0,50% 100%);overflow:hidden}.cone:before,.cone:after,.cone i,.cone b{content:"";position:absolute;width:350px;height:3px;background:rgba(151,69,12,.35);transform:rotate(35deg)}.cone:before{top:60px;left:-55px}.cone:after{top:150px;left:-65px}.cone i{top:70px;left:-70px;transform:rotate(-35deg)}.cone b{top:165px;left:-60px;transform:rotate(-35deg)}.round-sticker{position:absolute;left:2%;bottom:11%;z-index:4;width:126px;height:126px;border-radius:50%;background:var(--yellow);border:8px solid var(--white);box-shadow:0 10px 0 rgba(92,0,0,.22);display:grid;place-content:center;text-align:center;color:var(--red);font-weight:900;line-height:1;transform:rotate(-12deg)}.round-sticker strong{font-size:42px;letter-spacing:-4px}.round-sticker strong span{font-size:17px;letter-spacing:0}.sun-ray{position:absolute;width:9px;height:72px;border-radius:9px;background:var(--yellow)}.ray-one{left:12%;top:18%;transform:rotate(-45deg)}.ray-two{right:7%;top:40%;transform:rotate(64deg)}.ray-three{left:14%;bottom:13%;transform:rotate(70deg)}.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:22px}.modal-backdrop{position:absolute;inset:0;background:rgba(37,15,12,.72);backdrop-filter:blur(6px)}.modal-card{position:relative;width:min(410px,100%);background:#fff;border-radius:28px;padding:35px;text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.25);animation:pop .35s cubic-bezier(.2,.9,.25,1.2)}.modal-icon,.success-check{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;background:var(--yellow);color:var(--red);font-size:36px;font-weight:900}.modal-card h2{font-size:27px;margin:0 0 9px}.modal-card p{color:var(--muted);line-height:1.7;margin:0 0 24px}.modal-close{background:none;border:0;color:#8a7973;margin-top:20px;font-weight:700}.success-modal{border-top:10px solid var(--yellow)}.success-check{background:#e5f6e8;color:#18843a}.setup-page{background:linear-gradient(135deg,var(--red) 0 44%,#fff7e7 44%)}.setup-shell{width:min(1040px,calc(100% - 40px));min-height:100vh;margin:auto;display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:100px;padding:50px 0}.setup-intro{color:#fff}.setup-intro h1{font-size:56px;line-height:1.05;margin:15px 0}.setup-intro>p{opacity:.8;line-height:1.7}.setup-intro ol{list-style:none;padding:30px 0 0;margin:0;display:grid;gap:17px}.setup-intro li{display:flex;align-items:center;gap:13px;font-weight:700;opacity:.58}.setup-intro li b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:2px solid rgba(255,255,255,.5)}.setup-intro li.active{opacity:1}.setup-intro li.active b{background:var(--yellow);border-color:var(--yellow);color:var(--red)}.setup-card{background:#fff;padding:42px;border-radius:32px;box-shadow:var(--shadow)}.setup-card h2{font-size:30px;margin:0 0 7px}.setup-card>p{color:var(--muted);margin:0 0 24px}.stack-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stack-form label{font-size:13px;font-weight:800;display:grid;gap:8px}.stack-form label:first-of-type,.stack-form label:last-of-type,.stack-form .primary-button{grid-column:1/-1}.alert{border-radius:12px;padding:12px 15px;margin:0 0 18px;font-size:13px;font-weight:700}.alert.error{color:#a51d15;background:#fff0ee;border:1px solid #ffc8c3}.claim-page{background:#f8f1e7}.claim-header{height:92px;background:var(--red);display:flex;align-items:center;justify-content:space-between;padding:0 max(30px,calc((100vw - 1180px)/2));position:relative;z-index:10}.mini-brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:#fff}.mini-brand span{width:48px;height:48px;border-radius:14px;background:var(--yellow);color:var(--red);display:grid;place-items:center;font:900 31px Arial;padding-right:4px;letter-spacing:-5px}.mini-brand b{font-size:17px}.refresh-button{position:fixed;right:max(24px,calc((100vw - 1240px)/2));top:18px;z-index:30;border:4px solid #fff;background:var(--yellow);color:var(--red);width:116px;height:76px;border-radius:20px;display:grid;grid-template-columns:38px 1fr;grid-template-rows:1fr 1fr;align-items:center;padding:8px 10px;box-shadow:0 9px 0 #9f1c13,0 15px 30px rgba(81,13,8,.22);transition:.2s}.refresh-button:hover{transform:translateY(-2px)}.refresh-button:disabled{filter:grayscale(.3);opacity:.72;cursor:not-allowed}.refresh-icon{grid-row:1/3;font-size:35px;font-weight:400}.refresh-button b{font-size:16px;align-self:end}.refresh-button small{font-size:10px;align-self:start}.refresh-button.loading .refresh-icon{animation:spin .7s linear infinite}.claim-shell{min-height:calc(100vh - 92px)}.claim-hero{background:var(--red);min-height:400px;color:#fff;position:relative;overflow:hidden;padding:76px max(30px,calc((100vw - 1180px)/2))}.claim-hero:before{content:"";position:absolute;width:650px;height:650px;border:130px solid rgba(255,188,13,.13);border-radius:50%;right:-180px;top:-310px}.eyebrow.light{color:var(--yellow)}.claim-hero>p{font-size:18px;margin:14px 0 8px}.claim-hero h1{font-size:clamp(45px,5.2vw,76px);line-height:1.08;margin:0;letter-spacing:-.055em;position:relative;z-index:2}.claim-hero h1 strong{color:var(--yellow);font-size:1.12em}.hero-scoop{position:absolute;right:max(55px,calc((100vw - 1120px)/2));bottom:-80px;width:270px;height:350px;filter:drop-shadow(0 25px 14px rgba(80,0,0,.2));transform:rotate(9deg)}.hero-scoop i{position:absolute;background:#fff8e7;border-radius:50%;left:50%;transform:translateX(-50%);box-shadow:inset -15px -8px 0 #edddc1}.hero-scoop i:nth-child(1){width:190px;height:130px;top:70px;z-index:3}.hero-scoop i:nth-child(2){width:145px;height:115px;top:20px;z-index:2}.hero-scoop i:nth-child(3){width:85px;height:90px;top:-22px}.hero-scoop b{position:absolute;width:175px;height:220px;left:50%;top:170px;transform:translateX(-50%);background:#ffad3d;clip-path:polygon(0 0,100% 0,50% 100%)}.coupon-section{width:min(1180px,calc(100% - 48px));margin:auto;padding:60px 0 80px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px}.section-heading span{color:var(--red);font-size:12px;font-weight:900;letter-spacing:.16em}.section-heading h2{font-size:32px;margin:5px 0 0}.section-heading>p{color:var(--muted);font-size:13px}.coupon-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.coupon-card{min-height:250px;background:#fff;border-radius:25px;display:grid;grid-template-columns:150px 1fr;position:relative;overflow:hidden;box-shadow:0 13px 35px rgba(74,44,31,.09);border:1px solid #eee2d5;transition:.3s}.coupon-card:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(74,44,31,.14)}.coupon-number{background:var(--yellow);display:grid;place-content:center;color:var(--red);font-size:67px;font-weight:950;letter-spacing:-8px;text-align:center}.coupon-number span{font-size:19px;letter-spacing:0}.coupon-content{padding:29px 28px;min-width:0}.coupon-topline{display:flex;justify-content:space-between;align-items:center}.coupon-topline span{font-size:11px;font-weight:900;letter-spacing:.13em;color:var(--red)}.coupon-topline em{font-size:11px;color:#17813b;background:#e8f7ec;border-radius:20px;padding:5px 9px;font-style:normal;font-weight:700}.coupon-content h3{font-size:22px;margin:14px 0 8px}.coupon-content code{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#fff7e1;color:#6e4500;border:1px dashed #dfaf2e;padding:9px 11px;border-radius:9px;font-family:inherit;font-size:13px}.claim-button{width:100%;border:0;background:var(--red);color:#fff;border-radius:12px;padding:13px 16px;margin-top:18px;font-weight:900;text-align:left}.claim-button span{float:right}.claim-button:disabled{opacity:.65}.ticket-edge{position:absolute;left:139px;width:22px;height:22px;background:#f8f1e7;border-radius:50%;z-index:3}.ticket-edge.top{top:-11px}.ticket-edge.bottom{bottom:-11px}.empty-state{grid-column:1/-1;padding:70px 25px;text-align:center;border:2px dashed #decdbd;border-radius:25px;color:var(--muted)}.empty-state>div{font-size:54px}.empty-state h2{color:var(--ink);margin:10px 0 7px}.claim-note{text-align:center;color:#998882;font-size:12px;margin-top:30px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:#211814;color:#fff;border-radius:99px;padding:12px 20px;font-size:13px;font-weight:700;z-index:150;transition:.25s;box-shadow:0 10px 30px rgba(0,0,0,.2)}.toast.show{opacity:1;transform:translate(-50%,0)}.coupon-card.shatter{animation:card-shatter .75s ease-in forwards;pointer-events:none}.coupon-card.shatter:after{content:"名额已领完";position:absolute;inset:0;background:var(--red);color:#fff;display:grid;place-items:center;font-size:25px;font-weight:900;animation:flash-out .75s forwards}.fragment{position:absolute;width:28%;height:35%;background:inherit;z-index:8;animation:fragment 1s cubic-bezier(.5,0,.8,.3) forwards}.fragment:nth-child(1){left:0;top:0;--x:-90px;--y:-40px;--r:-35deg}.fragment:nth-child(2){left:30%;top:0;--x:10px;--y:-100px;--r:50deg}.fragment:nth-child(3){right:0;top:0;--x:100px;--y:-55px;--r:35deg}.fragment:nth-child(4){left:0;top:36%;--x:-120px;--y:40px;--r:70deg}.fragment:nth-child(5){left:35%;top:35%;--x:5px;--y:120px;--r:-60deg}.fragment:nth-child(6){right:0;top:40%;--x:130px;--y:50px;--r:80deg}.fragment:nth-child(7){left:15%;bottom:0;--x:-55px;--y:160px;--r:-75deg}.fragment:nth-child(8){right:15%;bottom:0;--x:70px;--y:150px;--r:90deg}@keyframes pop{from{opacity:0;transform:scale(.88) translateY(18px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes card-shatter{55%{transform:scale(1.03);filter:none}100%{transform:scale(.75);filter:blur(5px);opacity:0}}@keyframes fragment{to{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:0}}@keyframes flash-out{0%,40%{opacity:0}55%{opacity:1}100%{opacity:0}}
@media (max-width:900px){.home-shell{grid-template-columns:1fr;width:min(560px,calc(100% - 28px));padding:25px 0 45px}.treat-stage{position:absolute;right:-55px;top:-45px;height:280px;width:200px;opacity:.22;pointer-events:none}.icecream{transform:scale(.52) rotate(12deg)}.round-sticker,.sun-ray,.treat-stage>p{display:none}.home-card{padding:38px 40px}.setup-page{background:var(--red)}.setup-shell{grid-template-columns:1fr;gap:35px;width:min(620px,calc(100% - 28px));padding:35px 0}.setup-intro h1{font-size:42px}.setup-intro ol{display:none}.setup-card{padding:32px}.hero-scoop{opacity:.28;right:-25px}.coupon-grid{grid-template-columns:1fr}.claim-hero{min-height:340px;padding-top:65px}}
@media (max-width:560px){.home-card{padding:30px 23px 25px;border-radius:28px}.brand-mark{width:58px;height:58px;font-size:37px;margin-bottom:25px}.home-card h1{font-size:41px}.lead{font-size:15px}.trust-row{gap:9px;justify-content:space-between}.stack-form{grid-template-columns:1fr}.stack-form label,.stack-form label:first-of-type,.stack-form label:last-of-type,.stack-form .primary-button{grid-column:1}.setup-card{padding:26px 20px}.claim-header{height:78px;padding:0 16px}.mini-brand b{display:none}.refresh-button{right:12px;top:12px;width:108px;height:68px;border-width:3px}.claim-shell{min-height:calc(100vh - 78px)}.claim-hero{min-height:320px;padding:57px 20px}.claim-hero h1{font-size:42px}.claim-hero>p{font-size:15px}.coupon-section{width:calc(100% - 26px);padding:34px 0 55px}.section-heading{display:block}.section-heading h2{font-size:26px}.section-heading>p{margin-bottom:0}.coupon-card{grid-template-columns:105px 1fr;min-height:228px}.coupon-number{font-size:48px}.coupon-content{padding:22px 17px}.coupon-content h3{font-size:18px}.coupon-topline em{font-size:10px}.ticket-edge{left:94px}.modal-card{padding:29px 22px}}
.copy-helper{position:fixed;left:-9999px;top:0;opacity:0}@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Android visual-viewport compatibility: keep dialogs centered inside the visible page. */
html,body{width:100%;max-width:100%;overflow-x:hidden}body.modal-open{overflow:hidden;overscroll-behavior:none}.modal{left:0;right:0;top:0;bottom:0;width:100%;max-width:100vw;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:22px;padding-top:max(22px,env(safe-area-inset-top));padding-bottom:max(22px,env(safe-area-inset-bottom))}.modal-card{flex:0 1 410px;width:100%;max-width:410px;max-height:calc(100vh - 44px);max-height:calc(100dvh - 44px);overflow-y:auto;margin:auto}@media(max-width:560px){.modal{padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.modal-card{max-width:100%;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);padding:29px 22px}.claim-hero h1{font-size:clamp(38px,11.2vw,48px)}.refresh-button{max-width:calc(100vw - 24px)}}
