/* The Upper Room Profiles. Part 2, piece 7-2. */
.upf{position:fixed;inset:0;z-index:30;background:#000;color:var(--tx);display:flex;flex-direction:column;transform:translateX(100%);
  transition:transform .42s var(--ease);will-change:transform;overscroll-behavior:contain}
.upf.on{transform:none}
.upf [hidden]{display:none!important}
.upf-sc{position:relative;flex:1;width:100%;max-width:600px;margin:0 auto;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
@media (min-width:640px){.upf-sc{border-left:1px solid var(--line);border-right:1px solid var(--line)}}
.upf-top{position:relative}
.upf-hd{position:absolute;top:0;left:0;right:0;max-width:600px;margin:0 auto;z-index:3;display:flex;align-items:center;gap:8px;
  height:calc(54px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 10px 0;transition:background .25s}
.upf.solid .upf-hd{background:rgba(0,0,0,.74);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.upf-b{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;color:#fff;background:rgba(0,0,0,.45);transition:background .25s,transform .15s}
.upf-b:active{transform:scale(.9)}
.upf-b svg{width:20px;height:20px}
.upf.solid .upf-b{background:transparent}
.upf-ht{flex:1;min-width:0;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .32s var(--ease)}
.upf.named .upf-ht{opacity:1;transform:none}
.upf-ht b{display:flex;align-items:center;gap:3px;font-size:18px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upf-ht small{display:block;color:var(--dim);font-size:13px}
.upf-ht .badge,.upp-x .badge{flex:none;width:18px;height:18px}
.upf-nm .badge{flex:none;width:21px;height:21px}

/* banner and picture */
.upf-bn{position:relative;aspect-ratio:3/1;min-height:118px;overflow:hidden;background:#111;transform-origin:50% 100%}
.upf-bn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;animation:upfIn .5s var(--ease) both}
.upf-art{position:absolute;inset:0;
  background:radial-gradient(120% 140% at 12% 8%,hsl(var(--h) 72% 46%) 0,transparent 56%),
             radial-gradient(120% 160% at 96% 100%,hsl(var(--h2) 70% 34%) 0,transparent 62%),
             linear-gradient(135deg,hsl(var(--h) 45% 18%),hsl(var(--h2) 50% 9%))}
.upf-art svg{position:absolute;right:6%;bottom:-14%;width:40%;max-width:220px;height:auto;aspect-ratio:1;color:#fff;opacity:.13}
.upf-id{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;gap:10px;padding:0 16px;margin-top:-44px}
.upf-av{width:90px;height:90px;border-radius:50%;border:4px solid #000;background:#000;overflow:hidden;flex:none;display:block}
.upf-av img{width:100%;height:100%;object-fit:cover;display:block;animation:upfIn .45s var(--ease) both}
.upf-ini{width:100%;height:100%;display:grid;place-items:center;font-size:38px;font-weight:700;color:#fff;line-height:1;
  background:linear-gradient(145deg,hsl(var(--h) 66% 52%),hsl(var(--h2) 62% 36%));text-shadow:0 1px 2px rgba(0,0,0,.25)}

/* buttons */
.upf-act{display:flex;align-items:center;gap:8px;padding-bottom:4px}
.upf-pill{height:36px;padding:0 18px;border-radius:99px;font-weight:700;font-size:15px;background:var(--tx);color:#000;white-space:nowrap;
  transition:background .2s,color .2s,box-shadow .2s,transform .15s}
.upf-pill:active{transform:scale(.95)}
.upf-pill.out,.upf-pill.on{background:transparent;color:var(--tx);box-shadow:inset 0 0 0 1px #536471}
.upf-pill.pop{animation:upfPop .45s var(--ease)}
.upf-ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--gold);box-shadow:inset 0 0 0 1px rgba(212,172,94,.55);transition:transform .15s}
.upf-ic:active{transform:scale(.9)}
.upf-ic svg{width:19px;height:19px}

/* name, bio, verse, counts */
.upf-nm{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 16px 0}
.upf-nm h1{margin:0;font-size:22px;line-height:1.2;display:flex;align-items:center;gap:4px;word-break:break-word}
.upf-role{font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--gold);border:1px solid rgba(212,172,94,.5);border-radius:6px;padding:2px 7px}
.upf-hn{display:flex;align-items:center;gap:8px;padding:2px 16px 0;color:var(--dim);font-size:15px}
.upf-fy{font-size:12px;line-height:1.5;background:var(--raise);color:var(--dim);padding:1px 6px;border-radius:4px;white-space:nowrap}
.upf-sus{margin:12px 16px 0;padding:10px 12px;border-radius:12px;background:rgba(244,33,46,.1);color:#F4212E;font-size:14px}
.upf-bio{margin:12px 16px 0;font-size:16px;line-height:1.4;white-space:pre-wrap;word-break:break-word}
.upf-vs{display:flex;align-items:flex-start;gap:10px;width:calc(100% - 32px);margin:12px 16px 0;padding:10px 12px;border-radius:12px;text-align:left;
  font-size:15px;line-height:1.35;color:var(--tx);background:rgba(212,172,94,.08);border-left:3px solid var(--gold);transition:background .2s}
.upf-vs:active{background:rgba(212,172,94,.16)}
.upf-vs svg{flex:none;width:18px;height:18px;margin-top:1px;color:var(--gold)}
.upf-meta{display:flex;align-items:center;gap:6px;padding:12px 16px 0;color:var(--dim);font-size:15px}
.upf-meta svg{width:18px;height:18px}
.upf-cn{display:flex;flex-wrap:wrap;gap:18px;padding:12px 16px 14px;color:var(--dim);font-size:15px}
.upf-cn b{color:var(--tx);margin-right:4px}
.upf-cn button{color:var(--dim)}
.upf-cn button:active{opacity:.6}

/* tabs that follow your finger */
.upf-sn{display:block;height:0}
.upf-tabs{position:sticky;top:calc(54px + env(safe-area-inset-top));z-index:2;display:grid;grid-template-columns:repeat(3,1fr);
  background:rgba(0,0,0,.84);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.upp .upf-tabs{grid-template-columns:1fr 1fr}
.upf-tab{height:52px;font-weight:700;font-size:15px;color:var(--dim);transition:color .25s,background .2s}
.upf-tab:active{background:rgba(231,233,234,.05)}
.upf-tab[aria-selected="true"]{color:var(--tx)}
.upf-ink{position:absolute;left:0;bottom:-1px;width:0;height:4px;border-radius:4px;background:var(--blue)}
.upf-ink.an{transition:transform .38s var(--ease),width .3s var(--ease)}
.upf-vp{overflow:hidden;touch-action:pan-y}
.upf-tr{display:flex;align-items:flex-start}
.upf-tr.an{transition:transform .38s var(--ease)}
.upf-pn{flex:0 0 100%;min-width:0;min-height:calc(100vh - 107px - env(safe-area-inset-top))}
.upf-pn.off{height:0;min-height:0;overflow:hidden}

/* pinned post */
.upf-pw{border-bottom:1px solid var(--line)}
.upf-pw .post{border-bottom:0}
.upf-pin{display:flex;align-items:center;gap:6px;padding:10px 16px 0 72px;margin-bottom:-6px;color:var(--dim);font-size:13px;font-weight:700}
.upf-pin svg{width:14px;height:14px}

/* media grid */
.upf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px 0}
.upf-mt{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:var(--sheet)}
.upf-mt img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s var(--ease)}
.upf-mt:active img{transform:scale(.96)}
.upf-mt .ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--dim)}
.upf-mt .ph svg{width:30px;height:30px}
.upf-mt em{position:absolute;right:6px;bottom:6px;display:flex;align-items:center;gap:3px;font-style:normal;font-size:12px;font-weight:700;
  color:#fff;background:rgba(0,0,0,.6);padding:2px 6px;border-radius:6px}
.upf-mt em svg{width:11px;height:11px}
.upf-mt em.n{top:6px;bottom:auto;padding:4px}
.upf-mt em.n svg{width:14px;height:14px}
.upf-mt.sk{background:linear-gradient(90deg,#16181C 0,#202327 50%,#16181C 100%);background-size:200% 100%;animation:upfSh 1.2s linear infinite}

/* empty, end, loading */
.upf-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:44px 32px;gap:8px}
.upf-empty .ei{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--raise);color:var(--blue)}
.upf-empty .ei svg{width:26px;height:26px}
.upf-empty b{font-size:22px;line-height:1.2}
.upf-empty p{margin:0 0 8px;color:var(--dim);font-size:15px;line-height:1.4;max-width:320px}
.upf-empty.sm{padding:24px}
.upf-empty.sm p{margin:0}
.upf-end{text-align:center;color:var(--dim);font-size:14px;margin:0;padding:22px 0 calc(28px + env(safe-area-inset-bottom))}
.upf-more{display:block;margin:16px auto;color:var(--blue);font-weight:700}
.upf-spin{width:26px;height:26px;margin:22px auto;border-radius:50%;border:3px solid rgba(29,155,240,.25);border-top-color:var(--blue);animation:upfR .8s linear infinite}
.upf-sk .b{aspect-ratio:3/1;min-height:118px;background:#16181C}
.upf-sk .a{position:relative;width:90px;height:90px;border-radius:50%;margin:-44px 16px 12px;border:4px solid #000;background:#202327}
.upf-sk .l{display:block;height:12px;border-radius:6px;background:#16181C;margin:10px 16px}
.upf-sk .b,.upf-sk .a,.upf-sk .l{animation:upfPulse 1.4s ease-in-out infinite}

/* followers and following */
.upp-sp{height:calc(54px + env(safe-area-inset-top))}
.upp-r{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;cursor:pointer;transition:background .2s}
.upp-r:active{background:rgba(231,233,234,.04)}
.upp-av{width:44px;height:44px;border-radius:50%;overflow:hidden;flex:none;display:block}
.upp-av img{width:100%;height:100%;object-fit:cover;display:block}
.upp-av .upf-ini{font-size:19px}
.upp-x{flex:1;min-width:0}
.upp-x b{display:flex;align-items:center;gap:3px;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upp-x small{display:flex;align-items:center;gap:6px;color:var(--dim);font-size:15px}
.upp-x p{margin:4px 0 0;font-size:15px;line-height:1.35;word-break:break-word}
.upp-r .upf-pill{height:32px;padding:0 16px;font-size:14px;flex:none}

/* names and pictures on posts can be tapped */
.post .pav,.post .meta .name,.post .meta .handle{cursor:pointer}
.post .meta .name:active,.post .pav:active{opacity:.7}

/* follow celebration */
.upf-burst{position:fixed;z-index:70;width:0;height:0;pointer-events:none}
.upf-burst i{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--c);animation:upfB .75s var(--ease) forwards}

@keyframes upfIn{from{opacity:0}}
@keyframes upfPop{0%{transform:scale(1)}35%{transform:scale(.9)}70%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes upfB{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--x),var(--y)) scale(.3);opacity:0}}
@keyframes upfSh{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes upfR{to{transform:rotate(360deg)}}
@keyframes upfPulse{0%,100%{opacity:1}50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){.upf,.upf-tr.an,.upf-ink.an{transition:none!important}.upf-burst{display:none}}
