/* Brighter frosted colour, with a restrained cylindrical highlight. */
.cup .body{opacity:1;background:transparent}.card .cup .body img{opacity:1;filter:blur(9px) brightness(1) saturate(1)}.unbox .cup .body img{opacity:1;filter:blur(13px) brightness(1) saturate(1)}.cup .body:after{background:none}
.lipstick-bullet{position:absolute;inset:0;z-index:4;pointer-events:none}.lipstick-tip{clip-path:polygon(0 0,100% 0,100% 36.3%,0 36.3%)}.lipstick-case{clip-path:polygon(0 36.3%,100% 36.3%,100% 100%,0 100%);z-index:5}.metal-glint{position:absolute;left:31%;top:36.5%;width:36%;height:60%;z-index:6;pointer-events:none;overflow:hidden;border-radius:2px 2px 8px 8px}.metal-glint:after{content:'';position:absolute;inset:-30% -170%;background:linear-gradient(108deg,transparent 38%,#fff8e300 44%,#fff8e388 49%,#fff8e300 54%,transparent 62%);opacity:0;transform:translateX(-35%)}
#reveal .scent-cloud,#reveal .particles,#reveal .rays,#reveal .halo{display:none}.opening .cup,.opening .drawn-cup,.opening .body{animation:none;transform:none;opacity:1}.opening .cup{animation:ritualLift 3s cubic-bezier(.22,.61,.36,1) both}.opening .lipstick-case{transform-origin:50% 69%;animation:caseTurn 1.5s cubic-bezier(.45,0,.2,1) both}.opening .lipstick-bullet{animation:bulletRise 2.6s cubic-bezier(.22,.61,.36,1) both}.opening .metal-glint:after{animation:metalSweep 1.9s .65s ease-in-out both}.opening .unbox:after{content:'轻旋 · 显色';animation:ritualLabel 3s ease both;letter-spacing:2px;border-color:transparent}.unveiling .unbox{animation:ritualExit 1.4s cubic-bezier(.22,.61,.36,1) both;pointer-events:none}.unveiling .result{animation:artworkEnter 1.6s cubic-bezier(.22,.61,.36,1) both}.revealed .result{animation:none;opacity:1;filter:none;transform:none}.opening .info{transition:opacity .8s;opacity:.65}.unveiling .info{opacity:1}.unbox:hover .cup{transform:none}
@keyframes ritualLift{0%{transform:translateY(0)}70%,100%{transform:translateY(-5px)}}
@keyframes caseTurn{0%{transform:scaleX(1);filter:brightness(1)}35%{transform:scaleX(.965);filter:brightness(1.09)}75%,100%{transform:scaleX(1);filter:brightness(1)}}
@keyframes bulletRise{0%,12%{transform:translateY(0)}75%,100%{transform:translateY(-3.5%)}}
@keyframes metalSweep{0%{opacity:0;transform:translateX(-35%)}20%{opacity:.6}75%{opacity:.45}100%{opacity:0;transform:translateX(35%)}}
@keyframes ritualLabel{0%{opacity:.8}75%{opacity:.55}100%{opacity:0}}
@keyframes ritualExit{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(12px)}}
@keyframes artworkEnter{0%{opacity:0;filter:blur(6px);transform:translateY(8px) scale(.985)}65%{filter:blur(0)}100%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.opening .cup,.opening .lipstick-case,.opening .lipstick-bullet,.opening .metal-glint:after,.unveiling .unbox,.unveiling .result{animation:none}.opening .info{transition:none}}
.lipstick-bullet{transform-origin:50% 36.3%}@keyframes bulletRise{0%,12%{transform:scaleY(1)}75%,100%{transform:scaleY(1.10)}}
/* A fuller lipstick reveal: rose-gold light ribbons, a halo, and a satin wipe. */
#reveal .halo{display:block;inset:8%;width:auto;height:auto;z-index:0;background:radial-gradient(ellipse,#f4cdb780 0%,#e7a69b44 30%,transparent 68%);opacity:0;pointer-events:none}#reveal .rays{display:block;inset:14% 8%;width:auto;height:auto;z-index:1;opacity:0;border:1px solid #e0ae7c80;border-radius:50%;background:none;transform:rotate(-25deg);pointer-events:none}#reveal .rays:before,#reveal .rays:after{content:'';position:absolute;inset:10% -5%;border:1px solid #f2c9a599;border-radius:50%;transform:rotate(45deg);box-shadow:0 0 14px #f4bc9666}#reveal .rays:after{inset:-6% 14%;transform:rotate(-30deg);border-color:#bd6b6944}#reveal .particles{display:block;pointer-events:none;z-index:6}.opening .particles i{width:3px;height:3px;top:44%;left:50%;border-radius:50%;background:#fff4d9;box-shadow:0 0 7px 2px #efc29a88;animation:lipSpark 3.8s calc(.45s + var(--delay)) both}.opening .halo{animation:roseLight 5.4s both}.opening .rays{animation:roseOrbit 5.4s cubic-bezier(.2,.65,.3,1) both}.opening .cup{animation:lipHero 3.4s cubic-bezier(.22,.61,.36,1) both}.opening .metal-glint:after{animation:metalSweep 2.5s .55s ease-in-out both}.opening .lipstick-bullet{animation:bulletRise 3s cubic-bezier(.22,.61,.36,1) both}.opening .unbox:after{animation:ritualLabel 3.4s ease both;content:'旋出色彩 · 即将揭晓'}.unveiling .unbox{animation:ritualExit 1.4s ease both}.unveiling .result{animation:satinReveal 2s cubic-bezier(.16,.7,.25,1) both}.unveiling .result:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#fff5e770 50%,transparent 65%);pointer-events:none;animation:artSheen 1.6s ease-out both}
@keyframes lipHero{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-12px) scale(1.045)}100%{transform:translateY(-9px) scale(1.025)}}
@keyframes roseLight{0%{opacity:0;transform:scale(.65)}30%{opacity:.8}62%{opacity:1;transform:scale(1.15)}100%{opacity:0;transform:scale(1.25)}}
@keyframes roseOrbit{0%{opacity:0;transform:rotate(-50deg) scale(.55)}23%{opacity:.65}60%{opacity:.85;transform:rotate(30deg) scale(1)}100%{opacity:0;transform:rotate(65deg) scale(1.15)}}
@keyframes lipSpark{0%{opacity:0;transform:translate(0,25px) scale(.3)}25%{opacity:.9}75%{opacity:.55}100%{opacity:0;transform:translate(calc(var(--x)*.65),calc(var(--y)*.55 - 45px)) scale(.4)}}
@keyframes satinReveal{0%{opacity:0;clip-path:inset(0 100% 0 0 round 18px);transform:translateY(10px) scale(.97);filter:blur(4px)}30%{opacity:1}75%{clip-path:inset(0 0 0 0 round 3px);filter:blur(0)}100%{opacity:1;clip-path:inset(0);transform:none;filter:none}}
@keyframes artSheen{0%{opacity:0;transform:translateX(-90%)}30%{opacity:.7}100%{opacity:0;transform:translateX(90%)}}
@media(prefers-reduced-motion:reduce){#reveal .halo,#reveal .rays,#reveal .particles{display:none}.opening .cup,.unveiling .result,.unveiling .result:after{animation:none}}
header{background:none}.hero-frame{position:absolute;inset:0;overflow:hidden}.hero-art{width:100%;height:100%;object-fit:cover;display:block}.hero-frame .image-loading{width:160px}.hero-frame.image-host{position:absolute}.hero-frame .image-loading-label{font-size:11px}

.live-reveal-pending .unbox{cursor:default}.live-reveal-pending .unbox:after{content:'直播间正在揭晓';border:0;background:none;color:#ac594c;letter-spacing:1px;font-size:12px;padding:12px 0;opacity:1}.live-reveal-pending .unbox:hover .cup{transform:none}
