:root{--bg:#F3F6FB;--card:#fff;--primary:#3F73CC;--primary-d:#3262B0;--soft:#E8F0FC;--ink:#1F2A3A;--muted:#667487;--line:#E3E9F2;--ok:#3DBE8B;
font-family:Figtree,"Avenir Next","Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit;color:inherit}[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.i{width:22px;height:22px;flex:none}

/* Coming soon */
.soon{min-height:100dvh;display:grid;place-content:center;justify-items:center;text-align:center;padding:2rem;background:radial-gradient(circle at 50% 30%,#E3EDFB,var(--bg) 70%)}
.rings{position:relative;width:190px;height:110px;margin-bottom:1.5rem}
.ring-a,.ring-b{position:absolute;top:0;width:110px;height:110px;border-radius:50%;border:10px solid #7FA6DD;opacity:.8}
.ring-a{left:0;animation:ja 1.4s cubic-bezier(.2,.7,.2,1) both}.ring-b{right:0;border-color:#B9CDE9;animation:jb 1.4s cubic-bezier(.2,.7,.2,1) both}
@keyframes ja{from{transform:translateX(-60px)}}@keyframes jb{from{transform:translateX(60px)}}
.wordmark{margin:0;font-size:clamp(3rem,10vw,5rem);font-weight:800;letter-spacing:-.04em}
.soon-line{margin:.5rem 0 0;font-size:1.25rem;color:var(--primary-d);font-weight:700}
.soon-sub{margin:.5rem 0 0;color:var(--muted);max-width:28ch;line-height:1.5}

/* Layout */
.app{max-width:1240px;margin:0 auto;padding:0 16px;display:grid;grid-template-columns:240px minmax(0,600px) 320px;gap:24px;justify-content:center}
.side{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:4px;padding:20px 0}
.brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:27px;letter-spacing:-.04em;padding:0 12px 18px}
.brand svg{width:40px;height:28px}
.nav-i{display:flex;align-items:center;gap:14px;padding:12px 14px;border:0;background:none;border-radius:14px;font-size:17px;font-weight:600;cursor:pointer;text-align:left}
.nav-i:hover{background:#E8EFFA}.nav-i.on{background:var(--soft);color:var(--primary-d)}
.nav-i .dot{margin-left:auto;background:var(--primary);color:#fff;font-size:12px;border-radius:999px;padding:1px 8px}
.btn{border:0;background:var(--primary);color:#fff;padding:10px 20px;border-radius:999px;font-weight:700;cursor:pointer}
.btn:hover{background:var(--primary-d)}.btn:disabled{background:#B9C6D8;cursor:not-allowed}
.cta{margin:14px 6px;padding:13px;font-size:16px}
.chip{margin-top:auto;display:flex;gap:10px;align-items:center;padding:10px;border-radius:14px}.chip small{display:block;color:var(--muted)}
.center{padding-top:16px;min-width:0}
.topbar{display:none;align-items:center;padding:12px 4px}
.av{flex:none;display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:700}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;margin-bottom:14px;box-shadow:0 1px 2px rgba(31,42,58,.04);overflow:hidden}
.tabs{display:flex;gap:6px;padding:5px;background:#E3EBF8;border-radius:999px;margin-bottom:14px}
.tabs button{flex:1;border:0;background:none;padding:9px;border-radius:999px;font-weight:700;color:var(--muted);cursor:pointer}
.tabs .on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(31,42,58,.1)}

/* Moments + posts */
.moments{display:flex;gap:14px;overflow-x:auto;padding:14px 16px}
.moment{display:grid;justify-items:center;gap:6px;font-size:13px;color:var(--muted);flex:none;width:68px}
.ringo{padding:3px;border-radius:50%;background:linear-gradient(135deg,#7FB0F0,#B8A9F0)}.ringo .av{border:3px solid #fff}.ringo.add{background:#DCE5F3}
.composer{display:flex;gap:12px;padding:16px}.composer>div{flex:1}
textarea{width:100%;border:0;resize:none;outline:none;background:transparent;font-size:17px;padding:8px 0}
.crow{display:flex;justify-content:flex-end;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:10px}.count{color:var(--muted);font-size:13px}
.post{padding:16px}.ph{display:flex;gap:12px;align-items:center}.ph>div{flex:1;min-width:0}.ph small{color:var(--muted)}
.post p{margin:12px 0;line-height:1.55;font-size:16px}
.photo{aspect-ratio:16/10;border-radius:14px;margin:4px 0 12px;position:relative;overflow:hidden}
.photo::after{content:"";position:absolute;width:55%;aspect-ratio:1;border-radius:50%;right:-10%;bottom:-28%;background:rgba(255,255,255,.4)}
.acts{display:flex;align-items:center;gap:2px;margin-left:-10px}
.act{display:flex;gap:6px;align-items:center;border:0;background:none;color:var(--muted);padding:8px 10px;border-radius:999px;cursor:pointer;font-weight:600;font-size:14px}
.act:hover{background:var(--soft);color:var(--primary-d)}.act.on{color:var(--primary-d)}.act.on .i{fill:currentColor}.act .i{width:20px;height:20px}
.opt{position:relative;display:block;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 14px;margin-bottom:8px;overflow:hidden;cursor:pointer;font-weight:600}
.opt i{position:absolute;inset:0 auto 0 0;background:var(--soft)}.opt span,.opt b{position:relative}.opt b{float:right}
.soonbox{padding:48px 24px;text-align:center;color:var(--muted)}.soonbox h2{color:var(--ink);margin:0 0 6px}

/* Right rail */
.rail{position:sticky;top:0;height:100dvh;overflow:auto;padding:16px 0}
.search{width:100%;border:1px solid var(--line);background:#fff;border-radius:999px;padding:11px 18px;margin-bottom:14px}
.rail h3{margin:0;padding:14px 16px 4px;font-size:17px}
.row{display:flex;gap:10px;align-items:center;padding:10px 16px}.row>div{flex:1;min-width:0}.row small{display:block;color:var(--muted)}
.pill{border:1px solid var(--line);background:#fff;color:var(--primary-d);font-weight:700;border-radius:999px;padding:6px 14px;cursor:pointer}.pill.on{background:var(--soft)}
.fine{color:var(--muted);font-size:13px;padding:0 6px}

/* Messages */
.app.wide .rail{display:none}.app.wide .center{grid-column:2/4}
.dm{display:grid;grid-template-columns:320px 1fr;height:calc(100dvh - 32px);margin:0}
.list{border-right:1px solid var(--line);overflow:auto}.list h2{margin:0;padding:16px 16px 8px}
.list .tabs{margin:8px 12px}
.conv{display:flex;gap:12px;align-items:center;width:100%;padding:12px 16px;border:0;background:none;text-align:left;cursor:pointer}
.conv:hover,.conv.on{background:var(--soft)}.conv>span:last-child{min-width:0}.conv small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wrap{position:relative}.online{position:absolute;right:0;bottom:0;width:12px;height:12px;border-radius:50%;background:var(--ok);border:2px solid #fff}
.thread{display:flex;flex-direction:column;min-width:0;min-height:0}
.thead{display:flex;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.thead small{display:block;color:var(--ok);font-weight:600}
.bubbles{flex:1;overflow:auto;display:flex;flex-direction:column;gap:6px;padding:16px}
.b{max-width:72%;padding:10px 14px;border-radius:20px 20px 20px 6px;background:#EEF3FA;align-self:flex-start;line-height:1.4}
.b.me{align-self:flex-end;background:var(--primary);color:#fff;border-radius:20px 20px 6px 20px}
.b small{display:block;font-size:11px;opacity:.7;margin-top:2px}
.send{display:flex;gap:10px;padding:12px 16px;border-top:1px solid var(--line)}
.send input{flex:1;border:1px solid var(--line);border-radius:999px;padding:11px 18px;background:var(--bg)}
.empty{margin:auto;color:var(--muted);text-align:center;padding:24px}
.back{display:none;border:0;background:none;cursor:pointer;padding:4px}
.req{padding:14px 16px}.req p{margin:4px 0 10px;color:var(--muted)}.req .btn{padding:7px 16px}.req .pill{margin-left:6px}

@media(max-width:1020px){.app{grid-template-columns:240px minmax(0,1fr)}.rail{display:none}.app.wide .center{grid-column:2}}
@media(max-width:760px){
.app{display:block;padding:0 12px 84px}
.side{position:fixed;inset:auto 0 0 0;height:auto;flex-direction:row;z-index:20;background:#fff;border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));gap:0}
.side .brand,.cta,.chip{display:none}
.nav-i{flex:1;flex-direction:column;gap:2px;font-size:11px;padding:6px 2px;align-items:center}.nav-i .dot{display:none}
.topbar{display:flex}.center{padding-top:0}
.dm{grid-template-columns:1fr;height:calc(100dvh - 150px)}
.dm .thread{display:none}.dm.has .list{display:none}.dm.has .thread{display:flex}.back{display:block}}
@media(prefers-reduced-motion:reduce){.ring-a,.ring-b{animation:none}}

/* Sign up / log in */
.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0%,#E3EDFB,var(--bg) 65%)}
.auth-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:32px;box-shadow:0 12px 40px rgba(31,42,58,.08)}
.auth-card .brand{padding:0 0 20px;color:var(--ink);text-decoration:none}
.auth-card h1{margin:0 0 6px;font-size:26px;letter-spacing:-.02em}.sub{margin:0 0 20px;color:var(--muted);line-height:1.5}
.gbtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px;border:1px solid var(--line);background:#fff;border-radius:999px;font-weight:700;cursor:pointer}
.gbtn:hover{background:var(--bg)}.gbtn svg{width:20px;height:20px}
.or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px;margin:18px 0}.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.field{display:block;font-weight:600;font-size:14px;margin-bottom:14px}
.field input{display:block;width:100%;margin-top:6px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);font-size:16px}
.field input:focus{outline:2px solid var(--primary);background:#fff}
.check{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--muted);margin-bottom:14px}
.wide{width:100%;padding:13px;font-size:16px}
.link{border:0;background:none;color:var(--primary-d);font-weight:700;cursor:pointer;padding:6px 0}
.err,.ok,.note{margin:0 0 14px;padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.4}
.err{background:#FDEDEF;color:#9B2C3B}.ok{background:#E7F6EF;color:#1F6B4A}.note{background:var(--soft);color:var(--primary-d)}
.switch{text-align:center;color:var(--muted);margin:18px 0 0}
.vstack{display:grid;gap:10px;margin-top:18px}.vstack .btn,.vstack .pill{width:100%;padding:12px}
.mailmark{width:56px;height:56px;border-radius:50%;background:var(--soft);display:grid;place-items:center;color:var(--primary-d);margin-bottom:14px}.mailmark .i{width:28px;height:28px}
