.mini-scene{--ms-bg:#112840;--ms-floor:#243c54;--ms-line:#7894ad;--ms-accent:#ddbd79;--ms-water:#257996;position:relative;isolation:isolate;display:block;width:100%;height:100%;min-height:75px;overflow:hidden;background:var(--mini-scene-background,var(--ms-bg));color:var(--mini-scene-accent,var(--ms-accent));contain:layout paint}
.mini-scene[data-theme="arise"]{--ms-bg:#080f1d;--ms-floor:#142238;--ms-line:#536e97;--ms-accent:#8fd8ff;--ms-water:#164663}
.mini-scene[data-theme="coast"]{--ms-bg:#91bec8;--ms-floor:#d3d9ba;--ms-line:#438a91;--ms-accent:#fff3d3;--ms-water:#3eafbd}
.mini-scene .ms-scenery{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:hidden;stroke:none;fill:none;pointer-events:none}
.mini-scene .ms-outdoor,.mini-scene .ms-indoor,.mini-scene .ms-night,.mini-scene .ms-steam,.mini-scene .ms-chat,.mini-scene .ms-doze,.mini-scene .ms-key-glints,.mini-scene .ms-cook-bubbles,.mini-scene .ms-pool,.mini-scene .ms-swimmer-track,.mini-scene .ms-phone-glow{display:none}
.mini-scene:is([data-activity="walk"],[data-activity="shop"]) .ms-outdoor,.mini-scene:not([data-activity="walk"]):not([data-activity="shop"]):not([data-activity="swim"]) .ms-indoor{display:block}
.mini-scene .ms-horizon{fill:var(--ms-line);opacity:.2}.mini-scene .ms-ground{fill:var(--ms-floor);opacity:.8}.mini-scene .ms-path{fill:currentColor;opacity:.17}.mini-scene .ms-tree{fill:var(--ms-line);opacity:.32}.mini-scene .ms-path-marks{fill:none;stroke:currentColor;stroke-width:1;opacity:.25}.mini-scene .ms-daylight{fill:currentColor;opacity:.32}
.mini-scene .ms-room-floor{fill:var(--ms-floor);opacity:.55}.mini-scene .ms-room-line,.mini-scene .ms-window-light{fill:none;stroke:var(--ms-line);stroke-width:1;opacity:.24}.mini-scene .ms-window{fill:var(--ms-water);stroke:var(--ms-line);stroke-width:1;opacity:.24}.mini-scene .ms-wall-accent{fill:none;stroke:var(--ms-line);stroke-width:2;opacity:.23}
.mini-scene .ms-pose-stage{position:absolute;inset:3% 2% 2%;z-index:1;pointer-events:none}.mini-scene .ms-pose-float{position:absolute;inset:0;transform-origin:50% 90%;animation:fvl-pose-breathe 4.5s ease-in-out infinite}
.mini-scene .ms-pose-main,.mini-scene .ms-pose-alt{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center bottom;opacity:0;user-select:none;pointer-events:none;border:0}
.mini-scene.has-pose .ms-pose-main{opacity:1}.mini-scene[data-activity="swim"] .ms-pose-stage{display:none}
.mini-scene[data-activity="walk"] .ms-pose-float{animation:fvl-pose-walk-bob 1.2s ease-in-out infinite}.mini-scene[data-activity="walk"] .ms-parallax{animation:fvl-pose-path 3.6s linear infinite}
.mini-scene[data-activity="walk"].has-pose.has-walk-alt .ms-pose-main{animation:fvl-pose-frame-a 1.2s steps(1,end) infinite}.mini-scene[data-activity="walk"].has-pose.has-walk-alt .ms-pose-alt{animation:fvl-pose-frame-b 1.2s steps(1,end) infinite}
.mini-scene[data-activity="gym"] .ms-pose-float{animation:fvl-pose-lift 2.8s ease-in-out infinite}.mini-scene[data-activity="eat"] .ms-pose-float{animation:fvl-pose-eat 3.8s ease-in-out infinite}.mini-scene[data-activity="cook"] .ms-pose-float{animation:fvl-pose-stir 2.8s ease-in-out infinite}.mini-scene[data-activity="shop"] .ms-pose-float{animation:fvl-pose-shop 3.4s ease-in-out infinite}
.mini-scene:is([data-activity="sleep"],[data-activity="lazy"]) .ms-night,.mini-scene:is([data-activity="sleep"],[data-activity="lazy"]) .ms-doze{display:block}.mini-scene:is([data-activity="sleep"],[data-activity="lazy"]) .ms-window{opacity:.1}.mini-scene .ms-star,.mini-scene .ms-moon{fill:currentColor;opacity:.45}.mini-scene .ms-night{animation:fvl-pose-twinkle 5s ease-in-out infinite}.mini-scene .ms-doze{fill:none;stroke:currentColor;stroke-width:1;opacity:.5;animation:fvl-pose-doze 4.5s ease-in-out infinite}
.mini-scene[data-activity="sleep"] .ms-pose-float{animation:fvl-pose-breathe 5.5s ease-in-out infinite}.mini-scene[data-activity="rest"] .ms-pose-float{animation:fvl-pose-breathe 4.8s ease-in-out infinite}.mini-scene[data-activity="lazy"] .ms-pose-float{animation:fvl-pose-breathe 6s ease-in-out infinite}
.mini-scene:is([data-activity="eat"],[data-activity="cook"],[data-activity="rest"]) .ms-steam{display:block;fill:none;stroke:currentColor;stroke-width:1;opacity:.45;animation:fvl-pose-steam 3.4s ease-in-out infinite}
.mini-scene[data-activity="cook"] .ms-cook-bubbles{display:block;fill:currentColor;animation:fvl-pose-bubbles 2.2s ease-in-out infinite}.mini-scene[data-activity="work"] .ms-key-glints{display:block;fill:none;stroke:currentColor;stroke-width:1;animation:fvl-pose-type .9s steps(2,end) infinite}
.mini-scene:is([data-activity="friends"],[data-activity="parents"]) .ms-chat{display:block;fill:var(--ms-bg);stroke:currentColor;stroke-width:.8}.mini-scene .ms-chat-one{animation:fvl-pose-chat 4s ease-in-out infinite}.mini-scene .ms-chat-two{animation:fvl-pose-chat 4s ease-in-out -1.4s infinite}.mini-scene .ms-chat-three{animation:fvl-pose-chat 4s ease-in-out -2.8s infinite}
.mini-scene[data-activity="lazy"] .ms-phone-glow{display:block;position:absolute;z-index:2;left:58%;top:48%;width:18%;height:24%;pointer-events:none;background:radial-gradient(ellipse,#b1eaff50,transparent 70%);animation:fvl-pose-phone 5s ease-in-out infinite}
.mini-scene[data-activity="swim"] .ms-pool{display:block;position:absolute;left:4%;right:4%;top:16%;bottom:7%;overflow:hidden;border:1px solid var(--ms-line);background:repeating-linear-gradient(0deg,transparent 0 19%,#ffffff0b 20%,transparent 21% 39%),linear-gradient(175deg,var(--ms-bg),var(--ms-water));transform:perspective(300px) rotateX(20deg)}
.mini-scene .ms-lane{position:absolute;left:0;right:0;height:2px;background:repeating-linear-gradient(90deg,#e9f5ff 0 8px,currentColor 8px 16px);opacity:.65}.mini-scene .ms-lane-top{top:25%}.mini-scene .ms-lane-bottom{bottom:22%}.mini-scene .ms-pool-shine{position:absolute;left:10%;right:8%;top:52%;height:1px;background:#f0faff;opacity:.25;animation:fvl-pose-water 3s ease-in-out infinite}
.mini-scene[data-activity="swim"].has-swimmer .ms-swimmer-track{display:block;position:absolute;left:8%;right:calc(8% + 80px);top:27%;height:59%;z-index:1;pointer-events:none}.mini-scene .ms-swimmer{position:absolute;left:0;top:0;width:100%;height:100%;animation:fvl-pose-swim-travel 8s ease-in-out infinite;will-change:transform}.mini-scene .ms-swimmer img{display:block;width:80px;max-width:none;height:100%;object-fit:contain;animation:fvl-pose-swim-flip 8s linear infinite;user-select:none;pointer-events:none}
.mini-scene.is-paused *,.is-hidden .mini-scene *{animation-play-state:paused!important}
@keyframes fvl-pose-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.012,1.018)}}
@keyframes fvl-pose-walk-bob{0%,50%,100%{transform:translateY(0)}25%,75%{transform:translateY(-2px)}}
@keyframes fvl-pose-path{0%{transform:translateX(8px)}100%{transform:translateX(-8px)}}
@keyframes fvl-pose-frame-a{0%,49.99%,100%{opacity:1}50%,99.99%{opacity:0}}
@keyframes fvl-pose-frame-b{0%,49.99%,100%{opacity:0}50%,99.99%{opacity:1}}
@keyframes fvl-pose-lift{0%,100%{transform:translateY(1px)}45%,60%{transform:translateY(-3px)}}
@keyframes fvl-pose-eat{0%,35%,100%{transform:rotate(0)}60%,75%{transform:rotate(-.8deg) translateY(-1px)}}
@keyframes fvl-pose-stir{0%,100%{transform:rotate(-.5deg)}50%{transform:rotate(.7deg)}}
@keyframes fvl-pose-shop{0%,100%{transform:translateY(1px) rotate(-.5deg)}50%{transform:translateY(-1px) rotate(.5deg)}}
@keyframes fvl-pose-steam{0%,100%{transform:translateY(2px);opacity:.18}50%{transform:translateY(-4px);opacity:.6}}
@keyframes fvl-pose-bubbles{0%,100%{transform:translateY(3px);opacity:0}50%{transform:translateY(-3px);opacity:.65}}
@keyframes fvl-pose-type{0%,100%{opacity:.15}50%{opacity:.8}}
@keyframes fvl-pose-twinkle{0%,100%{opacity:.5}50%{opacity:.9}}
@keyframes fvl-pose-doze{0%,100%{transform:translateY(1px);opacity:.2}50%{transform:translateY(-4px);opacity:.65}}
@keyframes fvl-pose-chat{0%,100%{transform:translateY(2px);opacity:.2}50%{transform:translateY(-3px);opacity:.7}}
@keyframes fvl-pose-phone{0%,100%{opacity:.25}55%,75%{opacity:.8}}
@keyframes fvl-pose-water{0%,100%{transform:translateX(-5px);opacity:.15}50%{transform:translateX(5px);opacity:.35}}
@keyframes fvl-pose-swim-travel{0%,100%{transform:translateX(0)}50%{transform:translateX(100%)}}
@keyframes fvl-pose-swim-flip{0%,49.99%,100%{transform:scaleX(1)}50%,99.99%{transform:scaleX(-1)}}
@media(prefers-reduced-motion:reduce){.mini-scene *{animation:none!important}.mini-scene.has-pose .ms-pose-main{opacity:1!important}.mini-scene .ms-pose-alt{opacity:0!important}}
/* A quiet ride: the scene illustration stays legible while traffic passes outside. */
.mini-scene .ms-bus-view{display:none}.mini-scene[data-activity="bus"] .ms-indoor{display:none}.mini-scene[data-activity="bus"] .ms-bus-view{display:block}
.mini-scene .ms-bus-window{fill:var(--ms-water);opacity:.15}.mini-scene .ms-bus-buildings{fill:var(--ms-line);opacity:.24}.mini-scene .ms-bus-road{fill:none;stroke:currentColor;stroke-width:1.5;opacity:.2}.mini-scene .ms-bus-rail{fill:none;stroke:var(--ms-line);stroke-width:2;opacity:.35}
.mini-scene[data-activity="bus"] .ms-pose-float{animation:fvl-pose-bus-ride 2.4s ease-in-out infinite}.mini-scene[data-activity="bus"] .ms-bus-traffic{animation:fvl-pose-bus-traffic 3.6s linear infinite}
@keyframes fvl-pose-bus-ride{0%,100%{transform:translateY(0) rotate(-.15deg)}25%{transform:translateY(-1px)}50%{transform:translateY(.7px) rotate(.15deg)}75%{transform:translateY(-.5px)}}
@keyframes fvl-pose-bus-traffic{from{transform:translateX(14px)}to{transform:translateX(-14px)}}
@media(prefers-reduced-motion:reduce){.mini-scene[data-activity="bus"] .ms-pose-float,.mini-scene[data-activity="bus"] .ms-bus-traffic{animation:none!important}}

/* Cleaning uses the same small three-frame strip in original and motion variants. */
.mini-scene[data-activity="cleaning"] .ms-pose-stage{inset:auto;top:50%;left:50%;height:auto;width:96%;max-width:176px;aspect-ratio:4/3;transform:translate(-50%,-50%)}
.mini-scene[data-activity="cleaning"] .ms-pose-float{overflow:hidden;animation:none}
.mini-scene[data-activity="cleaning"] .ms-pose-main{width:300%;height:100%;object-fit:fill;animation:fvl-cleaning-frames 1.6s steps(1,end) infinite}
@keyframes fvl-cleaning-frames{0%,100%{transform:translateX(0)}25%,75%{transform:translateX(-33.333333%)}50%{transform:translateX(-66.666667%)}}
@media(prefers-reduced-motion:reduce){.mini-scene[data-activity="cleaning"] .ms-pose-main{animation:none!important;transform:none}}

@media(max-width:480px){.mini-scene[data-activity="cleaning"] .ms-pose-stage{max-width:138.6667px}}
