/* A single living arrangement, with a restrained foreground and distant roses. */
.bloom-space{transform-style:flat}
.cat-world{z-index:3}
.bloom-space .bouquet-flight{z-index:2;isolation:isolate;transform-style:flat;aspect-ratio:1215/1295;top:43%}
.bouquet-drift{position:relative;transform-origin:50% 78%;transform-style:flat}
.bloom-space .bloom-bouquet{filter:none;transform:scale(.94)}
.living-bouquet{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0}
.has-living-mesh>.living-bouquet{opacity:1}
.has-living-mesh>.bloom-bouquet{opacity:0}
.rose-atmosphere{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:0}
.rose-warmth,.rose-halo{position:absolute;inset:-10% -8%;pointer-events:none}
.rose-warmth{background:radial-gradient(ellipse at 50% 43%,#a8375860 0%,#ad5b4927 34%,transparent 68%)}
.rose-halo{background:radial-gradient(ellipse at 43% 48%,#f5c89f18,transparent 55%);opacity:.65}
.bouquet-awake .rose-halo{animation:rose-breath 8s ease-in-out infinite alternate}
.floating-rose{position:absolute;left:var(--rose-x);top:var(--rose-y);width:var(--rose-size);aspect-ratio:1;display:block;transform:translate(-50%,-50%);opacity:.8;pointer-events:none}
.floating-rose img{width:100%;height:100%;object-fit:contain;display:block}
.floating-rose:nth-of-type(4){opacity:.55}
.floating-rose:nth-of-type(6){opacity:.65}
.rose-dust{position:absolute;inset:0;pointer-events:none}
.rose-dust>i{position:absolute;left:var(--x);top:var(--y);width:2px;height:2px;border-radius:50%;background:#ffe0bb;box-shadow:0 0 8px #ffd1a969;opacity:0;animation:rose-mote 7s var(--delay) ease-in-out infinite;animation-play-state:paused}
.bouquet-awake .rose-dust>i{animation-play-state:running}
.bloom-space .bloom-petals{inset:0;z-index:6;transform:none;overflow:hidden;pointer-events:none}
.bloom-space .bloom-petals>.rose-petal{left:0;top:0;opacity:0;border-radius:80% 15% 65% 25%;background:radial-gradient(ellipse at 30% 20%,#f4b4be,var(--petal-hue) 65%,#7b1f41);box-shadow:inset 1px 1px 1px #ffd1d94a;will-change:transform,opacity}
.bloom-space .bloom-message{z-index:8;justify-content:flex-end;padding:20px 15px 16px;transform-style:flat}
.bloom-copy{padding:10px 8px;width:min(460px,calc(100vw - 48px))}
.bloom-copy::before{inset:-15px -40px;background:radial-gradient(ellipse,#231015db 8%,#24101880 44%,transparent 73%);filter:none}
.bloom-space .bloom-heart{display:none}
.bloom-space #bloom-title .zh{font-size:18px;margin-top:12px}
#bloom-title:focus{outline:none}
.bloom-space #bloom-title em{font-size:30px;margin-top:7px}
.bloom-space .bloom-copy>p{margin-top:12px}
.bloom-space .bloom-copy>p>span{font-size:18px}
.bloom-next{margin-top:12px}
.bloom-next::before{filter:none}
.bloom-space .bloom-replay{margin-top:8px}
/* Frame the reference cutout's transparent side margins while keeping paws grounded. */
.cat-button img{filter:drop-shadow(0 15px 15px #0c03085c);object-fit:cover;object-position:64% bottom}
.cat-bob{animation:kitten-breathe 6.2s ease-in-out infinite;transform-origin:50% 100%}
@keyframes kitten-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.004,1.008)}}
@keyframes rose-breath{from{transform:scale(.94);opacity:.5}to{transform:scale(1.05);opacity:.9}}
@keyframes rose-mote{0%,100%{transform:translate(-6px,10px);opacity:0}30%{opacity:.65}70%{opacity:.25}90%{transform:translate(10px,-35px);opacity:0}}
@media(max-width:760px){
 .bloom-space .bouquet-flight{top:39%}
 .floating-rose{width:calc(var(--rose-size)*.55)}
 .floating-rose:last-child{display:none}
 .bloom-space .bloom-message{padding:16px 12px 28px}
 .bloom-copy{padding:8px 6px}
 .bloom-space #bloom-title .zh{font-size:18px}
 .bloom-space #bloom-title em{font-size:29px}
 .bloom-space .bloom-copy>p{margin-top:10px}
 .bloom-space .bloom-copy>p>span{font-size:16px}
 .bloom-next{margin-top:12px}
}
@media(max-height:720px){
 .bloom-space .bouquet-flight{top:34%}
 .bloom-space .bloom-message{padding-bottom:40px}
 .bloom-space #bloom-title em{font-size:27px}
 .bloom-space .bloom-copy>p{margin-top:7px}
 .bloom-next{margin-top:5px}
 .bloom-scroll{padding:5px;gap:4px}
 .bloom-space .bloom-replay{margin-top:4px}
}
@media(prefers-reduced-motion:reduce){.cat-bob,.rose-halo,.rose-dust>i{animation:none!important}.rose-dust>i{opacity:.25}}
