: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}

.soon-actions{display:flex;align-items:center;gap:20px;margin-top:28px}.soon-actions .btn{text-decoration:none;padding:13px 32px;font-size:16px}.soon-actions .link{text-decoration:none}
.gate{min-height:100dvh}

.update-toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:14px;background:#1F2A3A;color:#fff;padding:10px 12px 10px 18px;border-radius:999px;box-shadow:0 8px 28px rgba(31,42,58,.25);font-size:14px;max-width:calc(100% - 24px)}
.update-toast button{border:0;background:#fff;color:#1F2A3A;font-weight:700;padding:8px 16px;border-radius:999px;cursor:pointer}
@media(min-width:761px){.update-toast{bottom:24px}}
.why{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:12px}.why li{display:flex;gap:12px;line-height:1.45}.why b{display:block}
.why .dotb{flex:none;width:32px;height:32px;border-radius:50%;background:var(--soft);color:var(--primary-d);display:grid;place-items:center;font-weight:800}
.steps{margin:0 0 16px;padding-left:22px;display:grid;gap:12px;line-height:1.5}.steps svg{width:18px;height:18px;vertical-align:-3px;color:var(--primary-d)}
.auth-card h2{margin:0 0 10px;font-size:17px}

/* Admin */
.adm-bar{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:#fff;border-bottom:1px solid var(--line)}
.adm-bar .brand{padding:0}.adm-bar a.link{text-decoration:none;margin-right:12px}
.tag{font-size:12px;background:var(--soft);color:var(--primary-d);padding:3px 10px;border-radius:999px;font-weight:700;margin-left:6px;letter-spacing:0}
.adm-body{max-width:900px;margin:0 auto;padding:24px 16px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:14px}
.stat{padding:18px;margin:0}.stat b{display:block;font-size:32px;letter-spacing:-.02em}.stat span{color:var(--muted)}
.item{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;gap:14px;align-items:flex-start}.item:last-child{border:0}
.item>div{flex:1;min-width:0;overflow-wrap:anywhere}.item small{display:block;color:var(--muted)}
.danger{border:1px solid #F0C4CB;color:#9B2C3B;background:#fff;border-radius:999px;padding:6px 14px;font-weight:700;cursor:pointer}
.pad{padding:18px}.pad h3{margin:0 0 8px}.pad ol{margin:8px 0;padding-left:20px;line-height:1.6}.pad a{color:var(--primary-d);font-weight:600}

/* Support line */
.support{margin:20px 0 0;text-align:center;font-size:13px;color:var(--muted);line-height:1.5}
.support a{color:var(--primary-d);font-weight:700}
.auth-card .support{border-top:1px solid var(--line);padding-top:16px;margin-top:22px;font-size:14px}
.soon .support{margin-top:36px;max-width:34ch}
.main .support{padding:0 16px 24px}

/* Legal pages */
.doc-wrap{align-items:start}
.auth-card.doc{max-width:720px;margin:24px 0}
.doc h1{font-size:30px}.doc .meta{color:var(--muted);margin:0 0 12px}
.doc h2{margin:26px 0 8px;font-size:18px}
.doc p,.doc li{line-height:1.65}.doc ul{padding-left:20px;margin:8px 0}.doc li{margin-bottom:6px}
.doc a{color:var(--primary-d)}
.check a{color:var(--primary-d);font-weight:600}
