.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}
