html:has(>body.preview-shell){height:100%;overflow:hidden;overscroll-behavior:none}
body.preview-shell{position:relative;display:block;margin:0;padding:0;width:100%;height:100dvh;min-height:0;overflow:hidden;background:var(--background-subtle-light)}
.preview-page-stage{position:absolute;inset:0 0 var(--navigation-height);overflow:hidden;isolation:isolate}
.preview-page-frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:var(--background-subtle-light)}
.embedded-preview .bottom-navigation{visibility:hidden;pointer-events:none}
.preview-shell>.bottom-navigation{position:absolute;transition:transform 300ms ease-in-out}
.preview-shell.shell-chat-open>.bottom-navigation{transform:translateY(100%)}
.preview-page-stage{transition:bottom 300ms ease-in-out}
.shell-chat-open .preview-page-stage{bottom:0}
@media(prefers-reduced-motion:reduce){.preview-shell>.bottom-navigation,.preview-page-stage{transition:none}}
.preview-chat-frame{position:fixed;inset:0;width:100%;height:100dvh;border:0;z-index:30;background:#0c101b}
.floating-chat-open>.companion-avatar{visibility:hidden}



.app-splash{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:var(--background-subtle-light);pointer-events:auto}
.splash-heart-scene{position:relative;width:104px;height:104px;display:grid;place-items:center}
.splash-heart{width:56px;height:56px;object-fit:contain;animation:splash-heartbeat 2s ease-in-out infinite}
.splash-sparkle{position:absolute;color:#c63878;font-size:15px;animation:splash-twinkle 2.8s ease-in-out infinite}
.splash-sparkle.one{top:5px;left:17px}.splash-sparkle.two{right:3px;top:36px;font-size:11px;animation-delay:-.9s}.splash-sparkle.three{bottom:10px;left:24px;font-size:9px;animation-delay:-1.8s}
@keyframes splash-heartbeat{0%,65%,100%{transform:scale(1)}15%{transform:scale(1.04,.94)}30%{transform:scale(1.1,1.12)}45%{transform:scale(1)}}
@keyframes splash-twinkle{0%,100%{opacity:.15;transform:scale(.7)}50%{opacity:.8;transform:scale(1)}}
.splash-heart-scene{transform:scale(2)}
/* Installed iOS apps must fill their layout viewport. A 100dvh shell can
   stop above the home-indicator area even with the default status bar. */
@media(display-mode:standalone){
  body.preview-shell{position:fixed;inset:0 0 auto;height:100vh;--navigation-padding-bottom:calc(var(--navigation-safe-padding-bottom) + max(0px,100vh - 100dvh - 16px));--navigation-height:calc(var(--navigation-icon-size) + var(--navigation-padding-top) + var(--navigation-padding-bottom))}
  .preview-shell>.bottom-navigation{max-height:none}
  .preview-shell>.app-splash{position:absolute}
}

/* Use the same shell and navigation height, including standalone phone insets. */
.preview-shell>.companion-avatar{position:absolute}
.preview-shell>.companion-avatar[hidden]{visibility:hidden;pointer-events:none}
