.angpao-side{min-width:0}.angpao-stage{position:relative;min-height:360px;padding-bottom:100px}.angpao-tree{position:relative;transform-origin:50% 95%}.angpao-art{display:block;width:100%;height:auto}.angpao-hanger{position:absolute;left:var(--x);top:var(--y);width:7%;height:19%;transform-origin:50% 0;animation:angpao-sway 3s ease-in-out var(--delay) infinite alternate}.angpao-hanger:before{content:'';display:block;width:1px;height:25%;background:#eecb75;margin:auto}.angpao-envelope{position:relative;display:grid;place-items:center;width:100%;height:64%;border-radius:6px;background:linear-gradient(120deg,#f34b4c,#b50d2c);box-shadow:inset 0 0 0 1px #f3c762,2px 5px 7px #0004;color:#f5d16e;font-style:normal}.angpao-envelope:before{content:'';position:absolute;top:0;left:0;width:100%;height:32%;border-radius:0 0 50% 50%;background:#d7263d;border-bottom:2px solid #eac36b}.angpao-envelope b{font-size:clamp(12px,2.5vw,25px);padding-top:25%}.angpao-stage[data-phase=shake] .angpao-tree{animation:angpao-quake .16s linear infinite}.angpao-stage[data-phase=shake] .angpao-hanger{animation-duration:.2s}.angpao-fallen{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);background:none;border:0;cursor:pointer;color:inherit;width:150px;display:flex;flex-direction:column;align-items:center;gap:12px}.angpao-fallen .angpao-envelope{width:65px;height:85px;box-shadow:0 0 25px #f9c95199}.angpao-stage[data-phase=drop] .angpao-fallen{animation:angpao-drop .75s cubic-bezier(.3,.7,.7,1) both;pointer-events:none}.angpao-stage[data-phase=land] .angpao-fallen .angpao-envelope{animation:angpao-glow 1.5s ease-in-out infinite alternate}.angpao-stage[data-phase=opening] .angpao-fallen .angpao-envelope:before{transform:rotateX(170deg);transform-origin:top;transition:transform .5s}.angpao-stage[data-phase=result] .angpao-tree{display:none}.angpao-result{padding:30px 20px;margin-top:25px;border:2px solid #d6ae51;border-radius:24px;background:linear-gradient(130deg,#fffdf1,#ffe4a3);text-align:center;color:#493419;animation:angpao-rise .6s ease-out}.angpao-result>strong{display:block;font-size:48px;margin:16px;color:#8a5e12}.angpao-result h3{color:#493419!important}.angpao-result p{color:#345365!important}.angpao-result>img{max-width:120px;max-height:100px;object-fit:contain}.angpao-result:has(img:not([hidden]))>strong{display:none}.angpao-side [hidden]{display:none!important}#angpao-skip{margin-top:12px}@keyframes angpao-sway{from{rotate:-5deg}to{rotate:5deg}}@keyframes angpao-quake{0%,100%{translate:0 0;rotate:0deg}25%{translate:-7px 2px;rotate:-2deg}50%{translate:8px -3px;rotate:2deg}75%{translate:-5px 1px;rotate:-1deg}}@keyframes angpao-drop{0%{translate:0 -240px;rotate:-15deg;opacity:0}15%{opacity:1}70%{translate:0 0;rotate:8deg}85%{translate:0 -24px;rotate:-4deg}100%{translate:0 0;rotate:0deg}}@keyframes angpao-glow{to{box-shadow:0 0 35px #ffd56b;scale:1.04}}@keyframes angpao-rise{from{opacity:0;translate:0 30px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){.angpao-game *{animation:none!important;transition:none!important}}

/* Uneven cords and small packet angles add a natural hanging arrangement. */
.angpao-hanger:before{height:var(--cord,25%)}.angpao-hanger>.angpao-envelope{transform:rotate(var(--tilt,0deg));transform-origin:50% 0}

/* A single centered result column, independent of shared image/text rules. */
.angpao-game .angpao-result{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px 24px}
.angpao-game .angpao-result>span{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;text-align:center;line-height:1.6}
.angpao-game .angpao-result>strong{margin:0;font-size:48px;line-height:1.1}
.angpao-game .angpao-result>#angpao-image{display:block;float:none;position:static;width:180px;height:130px;max-width:75%;max-height:160px;object-fit:contain;margin:0 auto}
.angpao-game .angpao-result>h3{display:block;margin:0;font-size:22px;line-height:1.4;text-align:center}
.angpao-game .angpao-result>p{margin:0;max-width:480px;font-size:14px;line-height:1.75;text-align:center}
.angpao-game .angpao-result>.button{margin:4px 0 0;max-width:100%;white-space:normal}
@media(max-width:520px){.angpao-game .angpao-result{padding:26px 18px;gap:14px}.angpao-game .angpao-result>h3{font-size:20px}}

/* A festive paper garden around the live tree and movable packets. */
.angpao-game .angpao-stage{isolation:isolate;border:1px solid #e6c68d;border-radius:24px;padding:16px 12px 88px;min-height:360px;background:#fff0d5 url('angpao-festive-stage.png') center bottom/100% 100% no-repeat;box-shadow:inset 0 0 0 5px #fff9e94d,0 12px 30px #9d542018;overflow:hidden}
.angpao-game .angpao-stage .angpao-tree{width:92%;margin:0 auto;z-index:2;filter:drop-shadow(0 8px 7px #8e64231a)}
.angpao-game .angpao-stage:before{content:'';position:absolute;inset:8% 17% 20%;z-index:0;border-radius:50%;background:radial-gradient(ellipse,#ffe6a680,transparent 70%);pointer-events:none}
.angpao-game .angpao-fallen{z-index:3;bottom:12px;color:#6b431a;text-shadow:0 1px #fff8}
.angpao-game .angpao-fallen>span{background:#fff9e6e8;padding:6px 12px;border:1px solid #d7b76d;border-radius:20px;font-size:12px;white-space:nowrap}
.angpao-game .angpao-stage[data-phase=result]{background:none;padding:0;border:0;box-shadow:none;min-height:0;overflow:visible}
.angpao-game .angpao-stage[data-phase=result]:before{display:none}
@media(max-width:520px){.angpao-game .angpao-stage{padding:12px 4px 88px;border-radius:18px;min-height:0}.angpao-game .angpao-stage .angpao-tree{width:96%}.angpao-game .angpao-stage[data-phase=result]{padding:0}}
