:root{--surface-100:#111316;--surface-200:#181b20;--surface-300:#21252b;--surface-rail:#323841;--surface-side:#1e2229;--line:#2e333b;--line-strong:#434a55;--ink:#ece8e1;--ink-muted:#9aa0a8;--brand:#f2a93b;--brand-soft:#3a2c16;--brand-ink:#f2a93b;--on-brand:#1a1c20;--accent:#4cc3b5;--accent-hover:#8fdcd2;--online:#5bc46e;--away:#f2a93b;--danger:#f0676b;--font-display:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--font-sans:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-16:64px;--space-24:96px;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--page-width:1200px;--page-gutter:24px}[data-theme=light]{--surface-100:#f6f4ef;--surface-200:#ece9e2;--surface-300:#e1ddd4;--surface-rail:#cac5b8;--surface-side:#e8e4da;--line:#cfcac0;--line-strong:#aaa498;--ink:#1a1c20;--ink-muted:#5b6068;--brand:#c47b0c;--brand-soft:#fbe7c4;--brand-ink:#7a4a00;--accent:#0a655c;--accent-hover:#084f48;--online:#2e8b45;--away:#c47b0c;--danger:#a82328}*,:before,:after{box-sizing:border-box}body{background:var(--surface-100);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:22px}h1,h2,h3,p{margin:0}a{color:var(--accent)}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.container{width:100%;max-width:calc(var(--page-width) + 2 * var(--page-gutter));padding:0 var(--page-gutter);margin:0 auto}.display{font-family:var(--font-display);letter-spacing:-.03em;font-weight:700;line-height:.95}.display-md{letter-spacing:-.02em;font-size:clamp(30px,4vw,40px);line-height:1.1}.lede{color:var(--ink-muted);font-size:19px;line-height:30px}.muted{color:var(--ink-muted)}.mono{font-family:var(--font-mono);font-size:13px;line-height:20px}.hl{color:var(--brand)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.section{padding-block:var(--space-16);gap:var(--space-8);flex-direction:column;display:flex}.stack{gap:var(--space-6);flex-direction:column;align-items:flex-start;display:flex}.row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.grid-3{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.wordmark{color:var(--ink);align-items:flex-start;gap:2.5px;text-decoration:none;display:flex}.wordmark:hover{color:var(--ink)}.wordmark-text{font-family:var(--font-display);letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1}.mark-ring{fill:none;stroke:var(--ink);stroke-width:4px}.mark-chord{stroke:var(--brand);stroke-width:4px;stroke-linecap:round}.mark-node{fill:var(--brand)}.topbar{border-bottom:1px solid var(--line)}.topbar-inner{align-items:center;gap:var(--space-4) 48px;min-height:72px;padding-block:var(--space-3);flex-wrap:wrap;display:flex}.topbar-links{gap:var(--space-2) var(--space-8);flex-wrap:wrap;flex-grow:1;display:flex}.topbar-links a{color:var(--ink-muted);font-size:15px;font-weight:500;text-decoration:none}.topbar-links a:hover{color:var(--ink)}.btn{border-radius:var(--radius-md);border:1px solid var(--line);min-height:44px;color:var(--ink);font:600 15px/1 var(--font-sans);cursor:pointer;background:0 0;align-items:center;padding:0 18px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-300);color:var(--ink)}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.btn-primary:hover{background:var(--brand);color:var(--on-brand);filter:brightness(1.08)}.btn-lg{min-height:52px;padding:0 var(--space-6);font-size:16px}.card{background:var(--surface-200);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-8);flex-direction:column;gap:14px;display:flex}.card h3{font-size:18px;font-weight:600;line-height:24px}.card p{color:var(--ink-muted)}.card-icon{fill:none;width:28px;height:28px;stroke:var(--accent);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.panel{padding:56px var(--space-16);background:var(--surface-200);border:1px solid var(--line);border-radius:var(--radius-lg);gap:var(--space-16);flex-wrap:wrap;align-items:center;display:flex}@media (width<=720px){.panel{padding:var(--space-8) var(--space-6)}}.dot-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.dot-list li{gap:var(--space-3);align-items:baseline;display:flex}.dot-list li:before{content:"";background:var(--brand);border-radius:50%;flex-shrink:0;width:8px;height:8px;transform:translateY(-1px)}.site-footer{margin-top:var(--space-16);border-top:1px solid var(--line);font-size:13px}.site-footer-inner{padding-block:var(--space-8);align-items:center;gap:var(--space-4) var(--space-8);flex-wrap:wrap;display:flex}.site-footer a{color:var(--ink-muted);text-decoration:none}.site-footer a:hover{color:var(--ink)}.site-footer .grow{align-items:center;gap:var(--space-2);color:var(--ink-muted);flex-grow:1;display:flex}@media (width<=720px){:root{--page-gutter:20px}.topbar-inner{gap:var(--space-4);flex-wrap:nowrap;min-height:64px}.topbar-links{gap:var(--space-4);flex-wrap:nowrap;flex-grow:1}.topbar .row{flex-wrap:nowrap;margin-left:auto}.topbar .btn{min-height:40px;padding:0 14px}.section{padding-block:var(--space-8)}.lede{font-size:17px;line-height:26px}.card{padding:var(--space-6)}.site-footer{margin-top:var(--space-8)}}@media (width<=400px){.wordmark-text{font-size:24px}}:root{--ease-out:cubic-bezier(.2, 0, 0, 1);--dur-fast:.12s;--dur-med:.24s;--dur-slow:.42s}.btn,.topbar-links a,.site-footer a,.xep a,.card,.mock-item,.vis-row{transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), filter var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out)}.btn:active{transform:translateY(1px)}.card:hover{border-color:var(--ink-muted)}.wordmark .mark-chord{stroke-dasharray:40;stroke-dashoffset:0;transition:stroke-dashoffset var(--dur-slow) var(--ease-out)}.wordmark:hover .mark-chord{animation:chord-redraw var(--dur-slow) var(--ease-out)}@keyframes chord-redraw{0%{stroke-dashoffset:40px}to{stroke-dashoffset:0}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.hero-copy>*,.page-head>*{animation:rise var(--dur-slow) var(--ease-out) both}.hero-copy>:nth-child(2),.page-head>:nth-child(2){animation-delay:60ms}.hero-copy>:nth-child(3),.page-head>:nth-child(3){animation-delay:.12s}.hero-copy>:nth-child(4){animation-delay:.18s}.hero .mock{animation:fade var(--dur-slow) var(--ease-out) .15s both}.mock.is-live .msg-slot.is-new{animation:slot-open .32s var(--ease-out) var(--at) both}.mock.is-live .msg-slot.is-new .msg{animation:fade .26s var(--ease-out) calc(var(--at) + 80ms) both}@keyframes slot-open{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.mock.is-live .typing{animation:typing-show var(--for) linear var(--from) both}@keyframes typing-show{0%{opacity:0}15%,85%{opacity:1}to{opacity:0}}.mock.is-live .typing-dots i{animation:.9s ease-in-out infinite typing-dot}.mock.is-live .typing-dots i:nth-child(2){animation-delay:.15s}.mock.is-live .typing-dots i:nth-child(3){animation-delay:.3s}@keyframes typing-dot{0%,60%,to{opacity:.35;transform:none}30%{opacity:1;transform:translateY(-2px)}}@supports (animation-timeline:view()){.feature-copy,.feature-visual,.familiar-head,.familiar-body,.grid-3>.card,.panel,.compare tbody tr,.cta{animation:linear both rise;animation-range:entry entry 60%}html :is(.feature-copy,.feature-visual,.familiar-head,.familiar-body,.grid-3>.card,.panel,.compare tbody tr,.cta){animation-timeline:view()}.feature-visual{animation-range:entry 10% entry 70%}.grid-3>.card:nth-child(2){animation-range:entry 8% entry 68%}.grid-3>.card:nth-child(3){animation-range:entry 16% entry 76%}.fed{view-timeline:--fed block}.fed .fed-link{stroke-dasharray:1;animation:linear both draw;animation-range:entry 15% entry 85%}.fed .fed-link-you,.fed .fed-link-remote{animation-range:entry 35%}.fed .fed-node{animation:linear both fade;animation-range:entry 20% entry 50%}html :is(.fed .fed-link,.fed .fed-node){animation-timeline:--fed}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.hero{padding-block:var(--space-24) 88px;gap:var(--space-16);flex-wrap:wrap;align-items:center;display:flex}.hero-copy{flex:440px;gap:28px;max-width:520px}.hero-title{font-size:clamp(52px,7vw,88px)}.hero-copy .lede{max-width:480px}.mock{background:var(--surface-100);border:1px solid var(--line);border-radius:var(--radius-lg);flex:560px;max-width:640px;height:470px;font-size:14px;line-height:20px;display:flex;overflow:hidden}.mock-rail{background:var(--surface-rail);width:60px;padding:var(--space-3) 0;flex-direction:column;flex-shrink:0;align-items:center;gap:10px;display:flex}.mock-space{background:var(--surface-300);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:13px;font-weight:600;display:flex;position:relative}.mock-space.is-home{background:var(--surface-300);color:var(--ink)}.mock-space.is-home svg{stroke:var(--ink)}.mock-space.is-brown{background:#70491f}.mock-space.is-navy{background:#23407a}.mock-space.is-maroon{background:#7a3a2e}.mock-space.is-active:before{content:"";background:var(--ink);border-radius:0 3px 3px 0;width:4px;position:absolute;top:6px;bottom:6px;left:-10px}.mock-space.is-add{border:1px dashed var(--ink-muted);color:var(--ink-muted);background:0 0;font-size:18px;font-weight:400}.mock-divider{background:var(--line-strong);width:22px;height:1px}.mock-channels{background:var(--surface-side);border-right:1px solid var(--line-strong);flex-direction:column;flex-shrink:0;width:188px;padding-top:0;display:flex}.mock-space-name{border-bottom:1px solid var(--line-strong);height:48px;font-family:var(--font-display);letter-spacing:-.01em;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 14px;font-size:16px;font-weight:700;display:flex}.mock-space-name svg{fill:none;stroke:var(--ink);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.mock-label{letter-spacing:.08em;color:var(--ink-muted);justify-content:space-between;padding:16px 14px 6px;font-size:11px;font-weight:500;display:flex}.mock-plus{letter-spacing:0;font-size:15px;line-height:11px}.mock-item{color:var(--ink-muted);border-radius:6px;align-items:center;gap:8px;margin:0 8px;padding:6px 8px;font-size:15px;display:flex;position:relative}.mock-hash{color:var(--ink-muted);opacity:.8;font-size:16px}.mock-item.is-unread{color:var(--ink);font-weight:600}.mock-item.is-unread:before{content:"";background:var(--ink);border-radius:0 3px 3px 0;width:4px;height:12px;position:absolute;top:9px;left:-8px}.mock-item.is-active{color:var(--ink);background:var(--surface-300);font-weight:600}.mock-item.is-muted{opacity:.55}.mock-user{background:var(--surface-300);border-top:1px solid var(--line-strong);align-items:center;gap:10px;margin-top:auto;padding:10px 12px;display:flex}.mock-user-avatar{flex-shrink:0;width:32px;height:32px;position:relative}.mock-user-avatar img{border-radius:50%;width:100%;height:100%;display:block}.presence-dot{background:var(--online);border:2px solid var(--surface-300);border-radius:50%;width:11px;height:11px;position:absolute;bottom:-2px;right:-2px}.mock-user-text{flex-direction:column;min-width:0;line-height:16px;display:flex}.mock-user-text strong{color:var(--brand-ink,var(--brand));font-size:13px}.mock-user-text span{font-family:var(--font-mono);color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.mock-main{flex-direction:column;flex-grow:1;min-width:0;min-height:0;display:flex}.mock-header{height:48px;padding:0 var(--space-4);border-bottom:1px solid var(--line-strong);flex-shrink:0;align-items:center;gap:8px;font-size:15px;display:flex}.mock-header strong{font-family:var(--font-display);font-size:17px;font-weight:700}.mock-topic{border-left:1px solid var(--line-strong);color:var(--ink-muted);white-space:nowrap;margin-left:2px;padding-left:10px;font-size:13px}.mock-search{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-300);width:104px;height:28px;color:var(--ink-muted);align-items:center;padding:0 10px;font-size:12px;display:flex}.mock-messages{min-height:0;padding:var(--space-4) 0 var(--space-3);flex-direction:column;flex-grow:1;justify-content:flex-end;gap:14px;display:flex;overflow:hidden}.msg-slot{flex-shrink:0;grid-template-rows:1fr;display:grid}.msg-slot-inner{min-height:0;overflow:hidden}.mock.is-live .mock-messages{gap:0}.mock.is-live .msg-slot-inner>.msg,.mock.is-live .msg-slot-inner>.mock-new{margin-top:12px}.mock.is-live .msg-slot-inner>.mock-new+.msg{margin-top:8px}.msg{padding:0 var(--space-4);gap:10px;display:flex}.msg.is-mention{background:var(--brand-soft);padding-block:6px}.msg-body{min-width:0}.msg-reply{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:16px;overflow:hidden}.msg-reply strong{font-weight:600}.mock-new{padding:0 var(--space-4);color:var(--danger);letter-spacing:.04em;align-items:center;gap:8px;font-size:11px;font-weight:600;display:flex}.mock-new i{background:var(--danger);flex-grow:1;height:1px}.mock-typing{height:20px;margin:2px var(--space-4) 4px;color:var(--ink-muted);font-size:11px;line-height:20px;position:relative}.typing{opacity:0;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.typing strong{color:var(--ink);font-weight:600}.typing-dots{gap:3px;display:inline-flex}.typing-dots i{background:var(--ink-muted);border-radius:50%;width:5px;height:5px}.msg-avatar{background:var(--surface-300);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-weight:600;display:flex}.is-nina{background:#7a4f86}.is-marco{background:#1f7a6d}.is-jess{background:#c0661f}.is-theo{background:#5a4aa0}.is-sam{background:#7a6a58}.is-kai{background:#2f6fb0}.msg-avatar.is-accent{background:var(--accent)}.msg-avatar.is-danger{background:var(--danger)}.msg-avatar.is-ink{background:var(--ink)}.msg-avatar.is-brand{background:var(--brand)}.msg-meta{align-items:center;gap:6px;display:flex}.msg-author{font-weight:600}.msg-author.is-self{color:var(--brand-ink,var(--brand))}.msg-server{font-family:var(--font-mono);color:var(--accent);font-size:11px}.msg-time{color:var(--ink-muted);font-size:11px}.mention{color:var(--brand);font-weight:500}.mock-composer{margin:0 var(--space-4) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-300);height:46px;color:var(--ink-muted);align-items:center;display:flex;overflow:hidden}.mock.is-live .mock-composer{margin-bottom:0}.mock-attach{border-right:1px solid var(--line-strong);justify-content:center;align-self:stretch;align-items:center;width:40px;font-size:18px;display:flex}.mock-composer-text{padding-left:var(--space-3);flex-grow:1}.mock-gif{margin-right:var(--space-3);border:1.5px solid;border-radius:4px;padding:0 4px;font-size:10px;font-weight:600;line-height:14px}@media (width<=720px){.mock-channels{display:none}}.protocols-copy{flex:360px;gap:20px}.protocols-copy .lede{max-width:560px;font-size:17px;line-height:26px}.protocols-link{font-weight:600}.fed{flex:0 360px;max-width:100%;height:auto}.fed-ring{fill:none;stroke:var(--line);stroke-width:4px}.fed-link{stroke:var(--ink-muted);stroke-width:2px;stroke-linecap:round}.fed-link-you{stroke:var(--brand);stroke-width:3px}.fed-link-remote{stroke:var(--accent);stroke-width:3px}.fed-node{fill:var(--ink)}.fed-node-you{fill:var(--brand)}.fed-node-remote{fill:var(--accent)}.fed-label{fill:var(--ink-muted);font-family:var(--font-mono);font-size:12px}.fed-label-you{fill:var(--ink)}.themes-panel .shot-cap{flex:380px}.mock .ico{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.mock-hicon{color:var(--ink-muted)}.mock-hicon:first-of-type,.mock-bell{margin-left:auto}.mock-gear{color:var(--ink-muted);margin-left:auto}.mock-smile{margin-right:var(--space-3)}.mock-search{gap:6px;margin-left:4px}.mock-topic{display:none}@media (width<=720px){.hero{padding-block:var(--space-8) var(--space-8);gap:var(--space-8)}.hero-copy{gap:var(--space-4)}.mock{height:420px}.mock-composer-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mock-search{display:none}.themes-panel .shot-cap{flex-basis:100%}}
