.bubblePage{width:min(100%,760px);margin:0 auto;padding:14px 14px calc(30px + var(--bottomNavHeight,76px));display:grid;gap:14px;color:var(--appText)}
.bubbleHero{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:22px;border:1px solid color-mix(in srgb,var(--appBlue) 14%,var(--appLine));border-radius:28px;background:linear-gradient(145deg,color-mix(in srgb,var(--appPanel) 94%,#f7fbff),color-mix(in srgb,var(--appPanel) 96%,#fff7fb));box-shadow:0 16px 40px rgba(35,70,130,.08)}
.bubbleAvatarWrap{position:relative}.bubbleAvatar{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:#fff;border:5px solid rgba(255,255,255,.94);box-shadow:0 10px 28px rgba(38,83,143,.14),0 0 0 1px rgba(62,131,220,.14)}.bubbleAvatar img{width:100%;height:100%;object-fit:cover}.bubbleAvatar span{font-size:1.65rem;font-weight:950;letter-spacing:-.05em;color:#2869c7}.bubbleStatusDot{position:absolute;right:3px;bottom:5px;width:18px;height:18px;border-radius:50%;background:#35ba76;border:4px solid #fff}
.bubbleIdentity{min-width:0}.bubbleIdentity>span,.bubbleFeedSection>header span,.bubbleAccountBar>div>span{font-size:.64rem;letter-spacing:.15em;font-weight:950;color:var(--appBlue)}.bubbleIdentity h1{margin:4px 0 5px;font-size:clamp(1.65rem,6vw,2.2rem);letter-spacing:-.055em;line-height:1}.bubbleIdentity>p{margin:0;color:var(--appMuted);font-size:.76rem;line-height:1.45;font-weight:700;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bubbleIdentityMeta{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.bubbleIdentityMeta span{display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:999px;background:color-mix(in srgb,var(--appBlue) 8%,var(--appPanel));font-size:.62rem;font-weight:900;color:color-mix(in srgb,var(--appBlue) 82%,var(--appText))}.bubbleEditButton{display:flex;align-items:center;gap:7px;padding:10px 12px;border-radius:14px;border:1px solid var(--appLine);background:color-mix(in srgb,var(--appPanel) 92%,transparent);color:var(--appText);font-size:.7rem;font-weight:900}
.bubbleActionStrip{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bubbleActionStrip button{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;padding:14px;border:1px solid var(--appLine);border-radius:20px;background:var(--appPanel);color:var(--appText);text-align:left;box-shadow:0 8px 24px rgba(24,47,92,.045)}.bubbleActionStrip button>i{width:42px;height:42px;border-radius:15px;display:grid;place-items:center;background:rgba(48,132,232,.1);color:var(--appBlue);font-size:1rem}.bubbleActionStrip button:last-child>i{background:rgba(255,116,177,.1);color:#c44f86}.bubbleActionStrip span{display:grid;gap:2px}.bubbleActionStrip b{font-size:.78rem}.bubbleActionStrip small{font-size:.62rem;color:var(--appMuted);font-weight:700}
.bubblePocketGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bubblePocket{min-width:0;display:grid;grid-template-columns:45px minmax(0,1fr) auto;align-items:center;gap:11px;padding:15px;border:1px solid var(--appLine);border-radius:22px;background:var(--appPanel);color:var(--appText);text-align:left}.bubblePocketIcon{width:45px;height:45px;border-radius:16px;display:grid;place-items:center;font-size:1.1rem}.meritFeature .bubblePocketIcon{background:rgba(35,139,247,.1);color:#2475d1}.gritFeature .bubblePocketIcon{background:rgba(255,107,177,.1);color:#d95193}.bubblePocket>span:nth-child(2){min-width:0;display:grid;gap:1px}.bubblePocket small{font-size:.59rem;color:var(--appMuted);font-weight:850}.bubblePocket strong{font-size:.98rem;letter-spacing:-.025em}.bubblePocket em{font-style:normal;font-size:.61rem;color:var(--appMuted);font-weight:700}.bubblePocket>i{font-size:.72rem;color:var(--appMuted)}
.bubbleFeedSection{display:grid;gap:10px}.bubbleFeedSection>header{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:2px 3px}.bubbleFeedSection h2{margin:4px 0 0;font-size:1.2rem;letter-spacing:-.04em}.bubbleFeedSection>header button{display:flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid var(--appLine);border-radius:13px;background:var(--appPanel);color:var(--appText);font-size:.66rem;font-weight:900}.bubbleFeed{display:grid;gap:11px}.bubbleFeedEmpty{padding:30px 20px;text-align:center;border:1px dashed color-mix(in srgb,var(--appBlue) 22%,var(--appLine));border-radius:25px;background:color-mix(in srgb,var(--appPanel) 96%,#f5fbff)}.bubbleEmptyIllustration{width:58px;height:58px;margin:0 auto 12px;border-radius:21px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(48,132,232,.13),rgba(255,116,177,.1));color:var(--appBlue);font-size:1.35rem}.bubbleFeedEmpty h3{margin:0 0 6px;font-size:1rem}.bubbleFeedEmpty p{max-width:470px;margin:0 auto;color:var(--appMuted);font-size:.72rem;line-height:1.55;font-weight:700}.bubbleFeedEmpty button{margin-top:15px;padding:10px 14px;border:0;border-radius:14px;background:var(--appBlue);color:#fff;font-size:.7rem;font-weight:900}
.bubblePostCard{overflow:hidden;border:1px solid var(--appLine);border-radius:24px;background:var(--appPanel);box-shadow:0 10px 28px rgba(19,42,85,.05)}.bubblePostCard>header{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px 15px}.bubblePostAvatar,.bubbleMiniAvatar,.bubbleFriendAvatar{overflow:hidden;display:grid;place-items:center;border-radius:50%;background:rgba(48,132,232,.1);color:var(--appBlue);font-weight:950}.bubblePostAvatar{width:42px;height:42px}.bubblePostAvatar img,.bubbleMiniAvatar img{width:100%;height:100%;object-fit:cover}.bubblePostCard header div:nth-child(2){display:grid;gap:2px}.bubblePostCard header strong{font-size:.77rem}.bubblePostCard header small{font-size:.59rem;color:var(--appMuted);font-weight:700}.bubblePostCard header button{border:0;background:transparent;color:var(--appMuted)}.bubblePostBody{padding:3px 16px 16px}.bubblePostTag{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;background:rgba(48,132,232,.09);color:var(--appBlue);font-size:.56rem;font-weight:950}.bubblePostBody h3{margin:10px 0 5px;font-size:1.08rem;letter-spacing:-.03em}.bubblePostBody p{margin:0;color:var(--appMuted);font-size:.72rem;line-height:1.55;font-weight:650}.bubblePostFacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.bubblePostFacts span{display:flex;align-items:center;gap:6px;font-size:.62rem;font-weight:850;color:var(--appMuted)}.bubblePostCard>footer{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--appLine)}.bubblePostCard>footer button{padding:11px 8px;border:0;border-right:1px solid var(--appLine);background:transparent;color:var(--appMuted);font-size:.61rem;font-weight:850}.bubblePostCard>footer button:last-child{border-right:0}.bubblePostCard>footer i{margin-right:5px}
.bubbleAccountBar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;border:1px solid var(--appLine);border-radius:20px;background:var(--appPanel)}.bubbleAccountBar h2{margin:4px 0 0;font-size:.75rem;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bubbleAccountBar>div{min-width:0}.bubbleAccountBar button{display:flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid var(--appLine);border-radius:13px;background:var(--appPanelSoft);color:var(--appText);font-size:.62rem;font-weight:900;white-space:nowrap}
body.bubbleLayerOpen{overflow:hidden}.bubbleLayer{position:fixed;inset:0;z-index:10050;display:grid;align-items:end}.bubbleLayer[hidden]{display:none}.bubbleLayerBackdrop{position:absolute;inset:0;border:0;background:rgba(12,18,35,.34);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);opacity:0;transition:opacity .22s ease}.bubbleLayerSheet{position:relative;width:min(100%,760px);height:min(92dvh,900px);margin:0 auto;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border-radius:30px 30px 0 0;border:1px solid var(--appLine);border-bottom:0;background:var(--appBg);box-shadow:0 -25px 80px rgba(16,27,56,.24);transform:translateY(102%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}.bubbleLayer.isOpen .bubbleLayerBackdrop{opacity:1}.bubbleLayer.isOpen .bubbleLayerSheet{transform:translateY(0)}.bubbleLayerHead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px 13px;border-bottom:1px solid var(--appLine);background:color-mix(in srgb,var(--appPanel) 94%,transparent);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.bubbleLayerHead span{font-size:.62rem;letter-spacing:.15em;font-weight:950;color:var(--appBlue)}.bubbleLayerHead h2{margin:3px 0 0;font-size:1.35rem;letter-spacing:-.045em}.bubbleLayerHead button{width:42px;height:42px;border-radius:15px;border:1px solid var(--appLine);background:var(--appPanelSoft);color:var(--appText)}.bubbleLayerBody{min-height:0;overflow:auto;overscroll-behavior:contain;padding-bottom:max(18px,env(safe-area-inset-bottom));scroll-behavior:smooth}.bubbleLayerBody>.meritPage{padding-bottom:24px}.bubbleLayerBody .meritInfoOverlay{z-index:10070}
.bubbleProfileForm,.bubblePostForm{display:grid;gap:14px;padding:16px}.bubbleProfilePreview{display:flex;align-items:center;gap:12px;padding:14px;border-radius:20px;background:var(--appPanel);border:1px solid var(--appLine)}.bubbleMiniAvatar{width:54px;height:54px}.bubbleProfilePreview div:last-child{display:grid;gap:3px}.bubbleProfilePreview strong{font-size:.9rem}.bubbleProfilePreview small{font-size:.64rem;color:var(--appMuted)}.bubbleProfileForm label,.bubblePostForm label,.bubbleFriendInvite label{display:grid;gap:7px}.bubbleProfileForm label>span,.bubblePostForm label>span,.bubbleFriendInvite label>span{font-size:.67rem;font-weight:900}.bubbleProfileForm input,.bubbleProfileForm textarea,.bubblePostForm input,.bubblePostForm textarea,.bubbleFriendInvite input{width:100%;border:1px solid var(--appLine);border-radius:15px;background:var(--appPanel);color:var(--appText);padding:12px 13px;font:inherit;font-size:.76rem;outline:none}.bubbleProfileForm textarea,.bubblePostForm textarea{resize:vertical}.bubbleProfileForm label>small{text-align:right;color:var(--appMuted);font-size:.58rem}.bubbleProfileNote{display:flex;gap:10px;padding:12px;border-radius:16px;background:rgba(48,132,232,.07);color:var(--appMuted)}.bubbleProfileNote i{color:var(--appBlue)}.bubbleProfileNote p{margin:0;font-size:.65rem;line-height:1.45;font-weight:700}.bubbleSaveButton{padding:13px 16px;border:0;border-radius:15px;background:var(--appBlue);color:#fff;font-weight:950}.bubblePostFormIntro{display:flex;gap:12px;padding:14px;border-radius:20px;background:linear-gradient(145deg,rgba(48,132,232,.09),rgba(255,116,177,.07))}.bubblePostFormIntro>i{width:42px;height:42px;flex:0 0 auto;border-radius:15px;display:grid;place-items:center;background:var(--appPanel);color:var(--appBlue)}.bubblePostFormIntro h3{margin:0 0 4px;font-size:.9rem}.bubblePostFormIntro p{margin:0;color:var(--appMuted);font-size:.65rem;line-height:1.45}.bubbleFormPair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bubbleFriendInvite{margin:16px;padding:16px;border:1px solid var(--appLine);border-radius:22px;background:var(--appPanel)}.bubbleFriendInvite h3{margin:0 0 4px}.bubbleFriendInvite>p{margin:0 0 13px;color:var(--appMuted);font-size:.68rem}.bubbleFriendInvite form{display:grid;gap:10px}.bubbleFriendInvite form>button{padding:12px;border:0;border-radius:14px;background:var(--appBlue);color:#fff;font-weight:950}.bubbleFriendList{display:grid;gap:9px;padding:0 16px 18px}.bubbleFriendList article{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px;border:1px solid var(--appLine);border-radius:19px;background:var(--appPanel)}.bubbleFriendAvatar{width:44px;height:44px}.bubbleFriendList article>div:nth-child(2){display:grid;gap:3px}.bubbleFriendList strong{font-size:.78rem}.bubbleFriendList small{font-size:.61rem;color:var(--appMuted)}.bubbleFriendList article>button{width:34px;height:34px;border:1px solid var(--appLine);border-radius:12px;background:var(--appPanelSoft);color:var(--appMuted)}.bubbleFriendsEmpty{text-align:center;padding:28px 18px;border:1px dashed var(--appLine);border-radius:21px}.bubbleFriendsEmpty i{font-size:1.55rem;color:var(--appBlue)}.bubbleFriendsEmpty strong{display:block;margin:8px 0 4px}.bubbleFriendsEmpty p{margin:0;color:var(--appMuted);font-size:.68rem;line-height:1.5}
.bubbleGritSummary{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px}.bubbleGritSummary>div{padding:15px;border-radius:19px;border:1px solid var(--appLine);background:var(--appPanel)}.bubbleGritSummary span{display:block;font-size:.65rem;font-weight:850;color:var(--appMuted)}.bubbleGritSummary strong{display:block;margin-top:4px;font-size:1.1rem}.bubbleGritList{display:grid;gap:10px;padding:0 16px 18px}.bubbleGritList article{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;padding:15px;border-radius:21px;border:1px solid var(--appLine);background:var(--appPanel)}.bubbleGritIcon{width:48px;height:48px;border-radius:17px;display:grid;place-items:center;background:rgba(48,132,232,.1);color:var(--appBlue);font-size:1.15rem}.bubbleGritIcon img{width:100%;height:100%;display:block;object-fit:contain;border-radius:15px}.bubbleGritTitle{display:flex;align-items:center;justify-content:space-between;gap:10px}.bubbleGritTitle h3{margin:0;font-size:.94rem}.bubbleGritTitle span{padding:5px 8px;border-radius:999px;background:rgba(44,174,108,.1);color:#218254;font-size:.56rem;font-weight:950}.bubbleGritList p{margin:5px 0;color:var(--appMuted);font-size:.7rem;line-height:1.45}.bubbleGritList small{font-size:.65rem;color:var(--appBlue);font-weight:850}.bubbleEmpty{margin:16px;padding:30px 18px;text-align:center;border:1px dashed var(--appLine);border-radius:22px;background:var(--appPanel)}.bubbleEmpty i{font-size:1.8rem;color:var(--appBlue)}.bubbleEmpty h3{margin:10px 0 5px}.bubbleEmpty p{margin:0;color:var(--appMuted);font-size:.75rem;line-height:1.5}
@media(max-width:620px){.bubblePage{padding:10px 10px calc(24px + var(--bottomNavHeight,76px));gap:12px}.bubbleHero{grid-template-columns:74px minmax(0,1fr);padding:17px;border-radius:24px;gap:12px}.bubbleAvatar{width:72px;height:72px;border-width:4px}.bubbleEditButton{position:absolute;right:12px;top:12px;padding:8px}.bubbleEditButton span{display:none}.bubbleIdentity{padding-right:30px}.bubbleIdentity h1{font-size:1.48rem}.bubbleIdentity>p{-webkit-line-clamp:2;font-size:.69rem}.bubbleIdentityMeta span{padding:6px 8px;font-size:.56rem}.bubbleActionStrip{grid-template-columns:1fr 1fr}.bubbleActionStrip button{grid-template-columns:36px minmax(0,1fr);padding:11px;gap:9px}.bubbleActionStrip button>i{width:36px;height:36px;border-radius:13px}.bubbleActionStrip small{display:none}.bubblePocketGrid{grid-template-columns:1fr}.bubblePocket{padding:13px;border-radius:19px}.bubbleFeedSection h2{font-size:1.08rem}.bubbleAccountBar{align-items:flex-start;flex-direction:column}.bubbleAccountBar button{width:100%;justify-content:center}.bubbleLayerSheet{height:94dvh;border-radius:25px 25px 0 0}.bubbleLayerHead{padding:14px}.bubbleLayerBody>.meritPage{width:100%;padding-left:10px;padding-right:10px}.bubbleFormPair{grid-template-columns:1fr}.bubblePostCard>footer button{font-size:.56rem}.bubblePostCard>footer i{display:block;margin:0 0 3px}}

/* v140 feed-first Bubble */
.bubbleFeedPage{gap:12px}.bubbleFeedWelcome{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px;border:1px solid var(--appLine);border-radius:24px;background:linear-gradient(145deg,color-mix(in srgb,var(--appPanel) 95%,#f6fbff),color-mix(in srgb,var(--appPanel) 96%,#fff7fb))}.bubbleFeedWelcome>div{min-width:0}.bubbleFeedWelcome span{font-size:.58rem;letter-spacing:.14em;font-weight:950;color:var(--appBlue)}.bubbleFeedWelcome h1{margin:4px 0 5px;font-size:1.4rem;letter-spacing:-.04em}.bubbleFeedWelcome p{margin:0;color:var(--appMuted);font-size:.69rem;line-height:1.45;font-weight:650}.bubbleFeedWelcome>button{display:grid;place-items:center;gap:2px;flex:0 0 auto;width:58px;height:58px;border:0;border-radius:19px;background:var(--appBlue);color:#fff;font-size:.58rem;font-weight:900}.bubbleFeedFilters{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}.bubbleFeedFilters::-webkit-scrollbar{display:none}.bubbleFeedFilters button{flex:0 0 auto;padding:9px 14px;border:1px solid var(--appLine);border-radius:999px;background:var(--appPanel);color:var(--appMuted);font-size:.63rem;font-weight:900}.bubbleFeedFilters button.active{background:var(--appText);color:var(--appBg);border-color:var(--appText)}.bubbleComposer{display:grid;grid-template-columns:42px minmax(0,1fr) 40px;align-items:center;gap:9px;padding:10px;border:1px solid var(--appLine);border-radius:20px;background:var(--appPanel)}.bubbleComposerAvatar{width:42px;height:42px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:var(--appPanelSoft);color:var(--appBlue);font-weight:950}.bubbleComposerAvatar img{width:100%;height:100%;object-fit:cover}.bubbleComposerPrompt{min-width:0;padding:11px 12px;border:0;border-radius:14px;background:var(--appPanelSoft);color:var(--appMuted);text-align:left;font-size:.66rem;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bubbleComposerAdd{width:40px;height:40px;border:0;border-radius:14px;background:rgba(48,132,232,.1);color:var(--appBlue)}.bubbleMirror{margin:16px;border:1px solid var(--appLine);border-radius:25px;overflow:hidden;background:var(--appPanel)}.bubbleMirrorCover{height:88px;background:radial-gradient(circle at 20% 10%,rgba(48,132,232,.5),transparent 35%),radial-gradient(circle at 80% 20%,rgba(255,116,177,.42),transparent 38%),linear-gradient(135deg,#15284c,#315f9e)}.bubbleMirrorIdentity{display:grid;grid-template-columns:78px minmax(0,1fr);gap:13px;align-items:end;padding:0 16px 14px;margin-top:-34px}.bubbleMirrorAvatar{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;overflow:hidden;border:5px solid var(--appPanel);background:var(--appPanelSoft);color:var(--appBlue);font-size:1.2rem;font-weight:950}.bubbleMirrorAvatar img{width:100%;height:100%;object-fit:cover}.bubbleMirrorIdentity small{font-size:.53rem;letter-spacing:.13em;color:var(--appBlue);font-weight:950}.bubbleMirrorIdentity h2{margin:2px 0 4px;font-size:1.25rem}.bubbleMirrorIdentity p{margin:0;color:var(--appMuted);font-size:.66rem;line-height:1.4}.bubbleMirrorMeta{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px 16px}.bubbleMirrorMeta span{display:flex;align-items:center;gap:5px;padding:7px 9px;border-radius:999px;background:var(--appPanelSoft);font-size:.58rem;font-weight:850}.bubbleProfileGrid{display:grid;gap:9px;padding:0 16px 20px}.bubbleProfileGrid button{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px;border:1px solid var(--appLine);border-radius:18px;background:var(--appPanel);color:var(--appText);text-align:left}.bubbleProfileGrid button>i:first-child{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(48,132,232,.1);color:var(--appBlue)}.bubbleProfileGrid button>span{display:grid;gap:2px}.bubbleProfileGrid small{font-size:.51rem;letter-spacing:.1em;color:var(--appBlue);font-weight:950}.bubbleProfileGrid b{font-size:.76rem}.bubbleProfileGrid em{font-style:normal;font-size:.59rem;color:var(--appMuted);font-weight:700}@media(max-width:620px){.bubbleFeedWelcome{padding:15px}.bubbleFeedWelcome h1{font-size:1.2rem}.bubbleFeedWelcome p{font-size:.64rem}.bubbleFeedWelcome>button{width:52px;height:52px}.bubbleMirror{margin:10px}.bubbleProfileGrid{padding:0 10px 16px}}

/* v147: Bubble Mirror logout + required Bubble name onboarding */
.bubbleProfileGrid .bubbleMirrorLogout{border-color:color-mix(in srgb,#d64c68 32%,var(--appLine));background:color-mix(in srgb,#d64c68 6%,var(--appPanel))}.bubbleProfileGrid .bubbleMirrorLogout>i:first-child{background:color-mix(in srgb,#d64c68 13%,transparent);color:#c43f5b}.bubbleProfileGrid .bubbleMirrorLogout small{color:#c43f5b}.bubbleProfileGrid .bubbleMirrorLogout:hover{border-color:color-mix(in srgb,#d64c68 48%,var(--appLine));transform:translateY(-1px)}.bubbleProfileGrid .bubbleMirrorLogout:disabled{opacity:.62;cursor:wait;transform:none}.bubbleProfileGrid .bubbleMirrorLogout.isBusy>i:first-child{animation:bubbleLogoutPulse .9s ease-in-out infinite alternate}@keyframes bubbleLogoutPulse{from{transform:scale(.94);opacity:.72}to{transform:scale(1.04);opacity:1}}


/* v163: signed-out Bubble membership gate */
.bubbleSignedOutPage{min-height:calc(100dvh - var(--topbarH,72px) - var(--bottomNavH,76px) - 24px);display:grid;place-items:center;padding-top:12px;padding-bottom:24px}
.bubbleSignedOutGate{position:relative;width:min(760px,100%);overflow:hidden;padding:clamp(22px,4vw,42px);border:1px solid var(--appLine);border-radius:30px;background:linear-gradient(145deg,color-mix(in srgb,var(--appBlue) 7%,var(--appPanel)),var(--appPanel) 48%,color-mix(in srgb,#ff74b1 3%,var(--appPanel)));box-shadow:0 24px 60px rgba(15,23,42,.09);isolation:isolate}
.bubbleSignedOutGate:before{content:"";position:absolute;z-index:-1;width:280px;height:280px;right:-120px;top:-145px;border-radius:50%;background:color-mix(in srgb,#ff74b1 8%,transparent);filter:blur(2px)}
.bubbleSignedOutMark{position:relative;display:grid;place-items:center;width:70px;height:70px;margin-bottom:22px;border:1px solid color-mix(in srgb,var(--appBlue) 22%,var(--appLine));border-radius:24px;background:color-mix(in srgb,var(--appBlue) 10%,var(--appGlass));color:var(--appBlue)}
.bubbleSignedOutMark>span{font-size:1.45rem}.bubbleSignedOutMark>i{position:absolute;right:-7px;top:-7px;display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--appLine);border-radius:10px;background:var(--appPanel);font-size:.67rem}
.bubbleSignedOutCopy{max-width:630px}.bubbleSignedOutCopy>small{display:block;margin-bottom:8px;color:var(--appBlue);font-size:.55rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase}.bubbleSignedOutCopy h1{margin:0;font-size:clamp(1.45rem,4vw,2.25rem);line-height:1.08;letter-spacing:-.045em}.bubbleSignedOutCopy p{max-width:605px;margin:12px 0 0;color:var(--appMuted);font-size:.72rem;line-height:1.65}
.bubbleSignedOutBenefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:26px}.bubbleSignedOutBenefits>div{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:start;padding:14px;border:1px solid var(--appLine);border-radius:18px;background:color-mix(in srgb,var(--appGlass) 72%,transparent)}.bubbleSignedOutBenefits>div>span{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:color-mix(in srgb,var(--appBlue) 10%,var(--appPanel));color:var(--appBlue);font-size:.8rem}.bubbleSignedOutBenefits>div>div{display:grid;gap:4px;min-width:0}.bubbleSignedOutBenefits b{font-size:.58rem;line-height:1.25}.bubbleSignedOutBenefits small{color:var(--appMuted);font-size:.47rem;line-height:1.45}
.bubbleSignedOutAction{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:26px;padding-top:20px;border-top:1px solid var(--appLine)}.bubbleSignedOutAction>div{display:grid;gap:4px}.bubbleSignedOutAction>div b{font-size:.64rem}.bubbleSignedOutAction>div small{color:var(--appMuted);font-size:.5rem;line-height:1.4}.bubbleSignedOutAction button{display:flex;align-items:center;justify-content:center;gap:11px;min-height:50px;padding:0 19px;border:0;border-radius:16px;background:var(--appText);color:var(--appBg);font-size:.58rem;font-weight:950;white-space:nowrap;box-shadow:0 10px 24px rgba(15,23,42,.12)}.bubbleSignedOutAction button:active{transform:scale(.985)}
@media(max-width:700px){.bubbleSignedOutPage{width:100%;min-height:calc(100dvh - var(--topbarH,64px) - var(--bottomNavH,72px));padding:0 10px 14px}.bubbleSignedOutGate{width:100%;padding:22px 17px 18px;border-radius:24px}.bubbleSignedOutMark{width:62px;height:62px;margin-bottom:18px;border-radius:21px}.bubbleSignedOutCopy>small{font-size:.49rem}.bubbleSignedOutCopy h1{font-size:1.55rem}.bubbleSignedOutCopy p{font-size:.63rem;line-height:1.58}.bubbleSignedOutBenefits{grid-template-columns:1fr;gap:8px;margin-top:20px}.bubbleSignedOutBenefits>div{grid-template-columns:36px minmax(0,1fr);padding:12px;border-radius:16px}.bubbleSignedOutBenefits>div>span{width:36px;height:36px}.bubbleSignedOutBenefits b{font-size:.56rem}.bubbleSignedOutBenefits small{font-size:.46rem}.bubbleSignedOutAction{display:grid;gap:13px;margin-top:20px;padding-top:17px}.bubbleSignedOutAction button{width:100%;min-height:52px;border-radius:16px;font-size:.57rem}}

/* v168: Edit Your Mirror identity fields + automatic photo upload */
.bubbleMirrorEditor{display:grid;gap:0;min-height:100%;background:var(--appBg)}
.bubbleEditorHero{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:24px;overflow:hidden;padding:30px;border-bottom:1px solid var(--appLine);background:linear-gradient(145deg,color-mix(in srgb,var(--appBlue) 12%,var(--appPanel)),var(--appPanel) 55%,color-mix(in srgb,#ff74b1 7%,var(--appPanel)))}
.bubbleEditorGlow{position:absolute;width:260px;height:260px;right:-120px;top:-150px;border-radius:50%;background:color-mix(in srgb,#ff74b1 11%,transparent);filter:blur(8px);pointer-events:none}
.bubbleEditorAvatar{position:relative;z-index:1;display:grid;place-items:center;align-content:center;gap:8px;width:142px;height:142px;padding:0;border:1px solid color-mix(in srgb,var(--appBlue) 26%,var(--appLine));border-radius:36px;background:color-mix(in srgb,var(--appPanel) 88%,transparent);color:var(--appText);box-shadow:0 18px 42px rgba(15,23,42,.12);overflow:hidden}
.bubbleEditorAvatar>span{position:absolute;inset:0;display:grid;place-items:center;background:var(--appPanelSoft);font-size:1.45rem;font-weight:950;color:var(--appBlue)}
.bubbleEditorAvatar>span img{width:100%;height:100%;object-fit:cover}
.bubbleEditorAvatar>i,.bubbleEditorAvatar>em{position:relative;z-index:2;opacity:0;transform:translateY(6px);transition:.2s ease}
.bubbleEditorAvatar>i{font-size:1.2rem}.bubbleEditorAvatar>em{font-style:normal;font-size:.57rem;font-weight:950}
.bubbleEditorAvatar:after{content:"";position:absolute;inset:0;z-index:1;background:rgba(8,16,34,.56);opacity:0;transition:.2s ease}
.bubbleEditorAvatar:hover:after,.bubbleEditorAvatar:focus-visible:after,.bubbleEditorAvatar:hover>i,.bubbleEditorAvatar:focus-visible>i,.bubbleEditorAvatar:hover>em,.bubbleEditorAvatar:focus-visible>em,.bubbleEditorAvatar.hasPreview:after,.bubbleEditorAvatar.hasPreview>i,.bubbleEditorAvatar.hasPreview>em{opacity:1;transform:none;color:#fff}
.bubbleEditorFile{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.bubbleEditorIntro{position:relative;z-index:1;max-width:500px}.bubbleEditorIntro>small{display:block;margin-bottom:8px;color:var(--appBlue);font-size:.54rem;font-weight:950;letter-spacing:.13em}.bubbleEditorIntro h2{margin:0;font-size:clamp(1.35rem,3vw,2rem);line-height:1.08;letter-spacing:-.045em}.bubbleEditorIntro p{max-width:540px;margin:11px 0 0;color:var(--appMuted);font-size:.7rem;line-height:1.62}
.bubbleEditorFields{display:grid;gap:16px;padding:26px 30px}.bubbleEditorField{display:grid;gap:10px}.bubbleEditorField>span{display:grid;gap:3px}.bubbleEditorField>span>b{font-size:.69rem}.bubbleEditorField>span>small{color:var(--appMuted);font-size:.55rem;line-height:1.4}.bubbleEditorField input,.bubbleEditorField textarea{width:100%;border:1px solid var(--appLine);border-radius:17px;background:var(--appPanel);color:var(--appText);outline:0;font:inherit;font-size:.72rem;transition:border-color .2s ease,box-shadow .2s ease}.bubbleEditorField input{min-height:52px;padding:0 16px}.bubbleEditorField textarea{min-height:128px;padding:15px 16px;line-height:1.6;resize:vertical}.bubbleEditorField input:focus,.bubbleEditorField textarea:focus{border-color:color-mix(in srgb,var(--appBlue) 60%,var(--appLine));box-shadow:0 0 0 4px color-mix(in srgb,var(--appBlue) 10%,transparent)}
.bubbleEditorBio{position:relative}.bubbleEditorBio>em{position:absolute;right:14px;bottom:12px;padding:5px 7px;border-radius:999px;background:color-mix(in srgb,var(--appPanel) 85%,transparent);color:var(--appMuted);font-style:normal;font-size:.48rem;font-weight:850}
.bubbleEditorPrivacy{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:start;padding:14px;border:1px solid color-mix(in srgb,var(--appBlue) 18%,var(--appLine));border-radius:18px;background:color-mix(in srgb,var(--appBlue) 6%,var(--appPanel))}.bubbleEditorPrivacy>i{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:color-mix(in srgb,var(--appBlue) 12%,var(--appPanel));color:var(--appBlue)}.bubbleEditorPrivacy>div{display:grid;gap:4px}.bubbleEditorPrivacy b{font-size:.61rem}.bubbleEditorPrivacy small{color:var(--appMuted);font-size:.52rem;line-height:1.45}
.bubbleEditorActions{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 30px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--appLine);background:color-mix(in srgb,var(--appPanel) 94%,transparent);backdrop-filter:blur(18px);z-index:5}.bubbleEditorActions button{min-height:49px;padding:0 18px;border-radius:16px;font-size:.6rem;font-weight:950}.bubbleEditorCancel{border:1px solid var(--appLine);background:transparent;color:var(--appMuted)}.bubbleEditorActions .bubbleSaveButton{display:flex;align-items:center;justify-content:center;gap:10px;min-width:170px;border:0;background:var(--appText);color:var(--appBg)}.bubbleEditorActions .bubbleSaveButton.isBusy i{animation:bubbleEditorArrow .8s ease-in-out infinite alternate}.bubbleEditorActions button:disabled{opacity:.62;cursor:wait}@keyframes bubbleEditorArrow{to{transform:translateX(4px)}}
@media(max-width:620px){.bubbleLayerSheet:has(.bubbleMirrorEditor){height:100dvh;max-height:100dvh;border-radius:0}.bubbleLayerBody:has(.bubbleMirrorEditor){padding:0}.bubbleEditorHero{grid-template-columns:1fr;justify-items:center;text-align:center;gap:18px;padding:24px 18px 22px}.bubbleEditorAvatar{width:124px;height:124px;border-radius:32px}.bubbleEditorAvatar:after,.bubbleEditorAvatar>i,.bubbleEditorAvatar>em{opacity:1;transform:none;color:#fff}.bubbleEditorAvatar:after{background:linear-gradient(transparent 52%,rgba(8,16,34,.72))}.bubbleEditorAvatar>i{position:absolute;right:11px;bottom:10px}.bubbleEditorAvatar>em{position:absolute;left:12px;bottom:12px}.bubbleEditorIntro h2{font-size:1.43rem}.bubbleEditorIntro p{font-size:.63rem}.bubbleEditorFields{padding:20px 16px 24px}.bubbleEditorField input{min-height:54px}.bubbleEditorActions{display:grid;grid-template-columns:1fr 1.45fr;padding:12px 14px calc(12px + env(safe-area-inset-bottom))}.bubbleEditorActions button{width:100%;padding:0 12px}.bubbleEditorActions .bubbleSaveButton{min-width:0}}

.bubblePhotoProgress{position:relative;z-index:2;grid-column:1/-1;display:grid;gap:8px;padding:13px 15px;border:1px solid color-mix(in srgb,var(--appBlue) 24%,var(--appLine));border-radius:17px;background:color-mix(in srgb,var(--appPanel) 94%,transparent)}.bubblePhotoProgress[hidden]{display:none}.bubblePhotoProgress>div{display:flex;justify-content:space-between;gap:12px;align-items:center}.bubblePhotoProgress span{font-size:.58rem;font-weight:900}.bubblePhotoProgress b{font-size:.58rem;color:var(--appBlue)}.bubblePhotoProgress progress{width:100%;height:7px;border:0;border-radius:999px;overflow:hidden;accent-color:var(--appBlue)}.bubblePhotoProgress small{font-size:.5rem;color:var(--appMuted)}.bubbleEditorAvatar.isUploading:before{content:"";position:absolute;z-index:4;inset:8px;border:3px solid rgba(255,255,255,.42);border-top-color:#fff;border-radius:inherit;animation:bubblePhotoSpin .85s linear infinite}.bubbleEditorAvatar.isUploading:after{opacity:1;background:rgba(8,16,34,.48)}@keyframes bubblePhotoSpin{to{transform:rotate(360deg)}}
.bubbleEditorSectionTitle{display:grid;gap:4px;margin-top:3px}.bubbleEditorSectionTitle span{font-size:.5rem;letter-spacing:.13em;font-weight:950;color:var(--appBlue)}.bubbleEditorSectionTitle h3{margin:0;font-size:.9rem}.bubbleEditorSectionTitle p{margin:0;color:var(--appMuted);font-size:.54rem}.bubbleEditorNameGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.bubbleEditorNameGrid .bubbleEditorField:last-child{max-width:220px}@media(max-width:620px){.bubblePhotoProgress{width:100%;text-align:left}.bubbleEditorNameGrid{grid-template-columns:1fr}.bubbleEditorNameGrid .bubbleEditorField:last-child{max-width:none}}
