:root{--color-bg:#f4f6fa;--color-surface:#fafbfd;--color-surface-2:#edf0f7;--color-border:#dde3ee;--color-border-strong:#bcc6da;--color-divider:color-mix(in oklch, var(--color-border) 55%, var(--color-bg));--color-text:#0f1520;--color-text-2:#3a4560;--color-text-muted:#7a8ba0;--color-text-subtle:#bcc6da;--color-brand:#2563eb;--color-brand-ink:#fff;--color-brand-subtle:#eef3ff;--color-brand-line:color-mix(in oklch, var(--color-brand) 32%, var(--color-bg));--t-1:oklch(95% .025 70);--t-2:oklch(94% .028 35);--t-3:oklch(94% .022 350);--t-4:oklch(94% .022 285);--t-5:oklch(95% .02 225);--t-6:oklch(95% .022 175);--t-7:oklch(95% .025 115);--t-8:oklch(94% .018 60);--radius:10px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 3px #1e326414, 0 0 0 1px #1e32640a;--shadow-md:0 4px 16px #1e32641a, 0 1px 4px #1e32640f;--shadow-lg:0 12px 40px #1e32641f, 0 2px 8px #1e32640f}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-feature-settings:"ss01", "cv11";letter-spacing:.005em;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Inter Tight,Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:14.5px}h1,h2,h3{letter-spacing:-.017em;font-family:Inter Tight,Inter,sans-serif;font-weight:600}.mono{font-family:Chivo Mono,JetBrains Mono,ui-monospace,Menlo,monospace}button,input,textarea{font:inherit;color:inherit}.btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);height:30px;color:var(--color-text);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:13.5px;transition:background .12s,border-color .12s,transform 60ms;display:inline-flex}.btn:hover{background:var(--color-surface-2);border-color:var(--color-border-strong)}.btn:active{transform:translateY(.5px)}.btn.primary{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.btn.primary:hover{background:color-mix(in oklch, var(--color-text) 88%, var(--color-brand))}.btn.accent{background:var(--color-brand);color:var(--color-brand-ink);border-color:var(--color-brand);font-weight:600}.btn.accent:hover{filter:brightness(.96)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--color-surface-2)}.btn.icon{justify-content:center;width:30px;padding:0}.btn.sm{height:26px;padding:0 10px;font-size:12.5px}.btn.lg{border-radius:var(--radius-pill);height:42px;padding:0 18px;font-size:15.5px}.input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);outline:none;width:100%;height:36px;padding:0 14px;transition:border-color .12s,box-shadow .12s}.input:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-subtle)}.input.lg{height:44px;font-size:15px}.field-label{color:var(--color-text-2);letter-spacing:.015em;margin-bottom:6px;font-size:12.5px;font-weight:500;display:block}.avatar{color:#fff;border:2px solid var(--color-bg);letter-spacing:-.015em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:600;display:inline-flex}.avatar.sm{border-width:1.5px;width:22px;height:22px;font-size:10px}.avatar.lg{width:40px;height:40px;font-size:14px}.avatar-stack{display:inline-flex}.avatar-stack>*+*{margin-left:-6px}.app-shell{flex-direction:column;height:100%;display:flex}.topbar{border-bottom:1px solid var(--color-divider);background:var(--color-bg);z-index:5;justify-content:space-between;align-items:center;height:56px;padding:0 18px;display:flex;position:relative}.topbar .brand{letter-spacing:-.01em;align-items:center;gap:8px;font-weight:600;display:flex}.crumbs{color:var(--color-text-muted);align-items:center;gap:8px;display:flex}.crumbs .sep{color:var(--color-text-subtle)}.crumbs .here{color:var(--color-text);font-weight:500}.surface{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.muted{color:var(--color-text-muted)}.tiny{letter-spacing:.03em;font-size:12px}.kbd{background:var(--color-surface-2);border:1px solid var(--color-border);min-width:18px;height:18px;color:var(--color-text-2);border-bottom-width:2px;border-radius:4px;place-items:center;padding:0 5px;font:11px/1 Chivo Mono,JetBrains Mono,ui-monospace,monospace;display:inline-grid}.sticky{background:var(--sticky-tint,var(--t-1));letter-spacing:.035em;color:var(--color-text);cursor:grab;border:1px solid color-mix(in oklch, var(--sticky-tint,var(--t-1)) 60%, var(--color-text) 8%);border-radius:8px;padding:10px 12px 8px;font-size:15px;line-height:1.5;transition:border-color .14s,transform .14s;position:relative}.sticky:hover{border-color:color-mix(in oklch, var(--sticky-tint,var(--t-1)) 40%, var(--color-text) 14%);transform:translateY(-1px)}.sticky.dragging{opacity:.4;cursor:grabbing}.sticky.drop-target{outline:2px dashed var(--color-brand);outline-offset:3px}.sticky-text{white-space:pre-wrap;word-wrap:break-word}.sticky-text[contenteditable=true]{outline:none}.sticky-foot{color:color-mix(in oklch, var(--color-text) 60%, transparent);justify-content:space-between;align-items:center;margin-top:8px;font-size:12px;display:flex}.sticky-author{align-items:center;gap:5px;min-width:0;display:flex}.sticky-author span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sticky-vote{cursor:pointer;font-variant-numeric:tabular-nums;background:#ffffff8c;border:1px solid #0000000f;border-radius:999px;align-items:center;gap:4px;height:22px;padding:0 8px;font-size:12px;font-weight:600;transition:background .12s;display:inline-flex}.sticky-vote:hover{background:#ffffffd9}.sticky-vote.voted{background:var(--color-brand);border-color:var(--color-brand);color:var(--color-brand-ink)}.sticky-actions{opacity:0;gap:2px;transition:opacity .12s;display:flex;position:absolute;top:6px;right:6px}.sticky:hover .sticky-actions{opacity:1}.sticky-actions button{appearance:none;cursor:pointer;width:22px;height:22px;color:var(--color-text-2);background:#ffffffb3;border:0;border-radius:999px;place-items:center;display:grid}.sticky-actions button:hover{color:var(--color-text);background:#fffffff2}.sticky.hidden-anon .sticky-text{filter:blur(6px);-webkit-user-select:none;user-select:none}.sticky.hidden-anon:after{content:"Hidden until reveal";letter-spacing:.04em;color:color-mix(in oklch, var(--color-text) 70%, transparent);pointer-events:none;text-transform:uppercase;background:color-mix(in oklch, var(--sticky-tint) 55%, transparent);border-radius:8px;place-items:center;font-size:11px;display:grid;position:absolute;inset:0}.composer{background:color-mix(in oklch, var(--sticky-tint,var(--t-1)) 55%, var(--color-bg));border:1px dashed color-mix(in oklch, var(--sticky-tint,var(--t-1)) 35%, var(--color-text-subtle));border-radius:8px;flex-direction:column;gap:6px;padding:10px;display:flex}.composer textarea{resize:none;width:100%;min-height:56px;font:inherit;color:inherit;background:0 0;border:0;outline:0}.composer-actions{justify-content:space-between;align-items:center;display:flex}.add-card-trigger{border:1px dashed var(--color-border);border-radius:var(--radius-pill);width:100%;color:var(--color-text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:8px 12px;font-size:13px;transition:background .12s,border-color .12s,color .12s;display:flex}.add-card-trigger:hover{background:var(--color-surface);border-color:var(--color-brand-line);color:var(--color-text-2)}.live-cursor{pointer-events:none;z-index:9999;will-change:transform;transition:transform .14s cubic-bezier(.3,.7,.4,1);position:absolute;top:0;left:0}.live-cursor svg{filter:drop-shadow(0 1px 2px #0000002e);display:block}.live-cursor .label{color:#fff;white-space:nowrap;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:500;position:absolute;top:14px;left:14px;box-shadow:0 2px 6px #00000024}.toast{background:var(--color-text);color:var(--color-bg);box-shadow:var(--shadow-lg);z-index:1000;border-radius:8px;padding:9px 14px;font-size:13px;animation:.18s ease-out toast-in;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@keyframes fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}.fade-in{animation:.18s ease-out both fade-in}.retro-wordmark{letter-spacing:-.02em;color:var(--color-text);align-items:baseline;gap:1px;font-size:17px;font-weight:600;display:inline-flex}.retro-wordmark .retro-dot{background:var(--color-brand);border-radius:50%;align-self:flex-end;width:6px;height:6px;margin-bottom:3px}.retro-wordmark--lg{letter-spacing:-.025em;font-size:26px}.retro-wordmark--lg .retro-dot{transform-origin:50%;width:9px;height:9px;margin-bottom:5px;animation:1.6s ease-in-out infinite retro-dot-bounce}@keyframes retro-dot-bounce{0%,55%,to{transform:translateY(0)scale(1)}25%{transform:translateY(-5px)scale(1.45)}}@media (prefers-reduced-motion:reduce){.retro-wordmark--lg .retro-dot{animation:none}}.join-screen .join-card{border-radius:14px;flex-direction:column;gap:18px;display:flex}.field-group{flex-direction:column;display:flex}.field-label-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.field-label-row .field-label{margin-bottom:0}.field-aux{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-pill);background:0 0;border:0;align-items:center;gap:5px;padding:2px 6px;font-family:inherit;font-size:11.5px;transition:color .12s,background .12s;display:inline-flex}.field-aux:hover{color:var(--color-text);background:var(--color-surface-2)}.field-frame{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;transition:border-color .14s,box-shadow .14s;position:relative}.field-frame:focus-within{border-color:color-mix(in oklch, var(--color-brand) 70%, var(--color-text-muted));box-shadow:0 0 0 3px color-mix(in oklch, var(--color-brand) 18%, transparent)}.field-input{width:100%;height:44px;font:inherit;color:var(--color-text);border-radius:inherit;background:0 0;border:0;outline:0;padding:0 14px;font-size:15px}.field-input::placeholder{color:var(--color-text-subtle)}.field-input.code-input{letter-spacing:.18em;text-transform:uppercase;font-feature-settings:"tnum" 1;font-size:16px}.field-input.code-input::placeholder{letter-spacing:.18em}.avatar-picker{background:var(--color-surface-2);border:1px solid var(--color-divider);border-radius:12px;align-items:center;gap:14px;padding:8px 6px 8px 8px;display:flex}.avatar-preview{color:#fff;letter-spacing:-.015em;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:15px;font-weight:600;transition:background .18s;display:grid;box-shadow:inset 0 1px #ffffff80,0 1px 2px #0000000f}.swatches{flex-wrap:wrap;flex:1;gap:6px;display:flex}.swatch{background:var(--swatch-color);cursor:pointer;border:0;border-radius:50%;place-items:center;width:22px;height:22px;padding:0;transition:transform .14s;display:grid;position:relative}.swatch:before{content:"";border:1.5px solid #0000;border-radius:50%;transition:border-color .14s;position:absolute;inset:-3px}.swatch:hover{transform:scale(1.08)}.swatch.is-selected:before{border-color:var(--color-text)}.code-preview{background:var(--color-surface-2);border:1px solid var(--color-divider);border-radius:8px;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;font-size:13px;animation:.16s ease-out both fade-in;display:flex}.code-preview .dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.code-preview-name{color:var(--color-text);font-weight:500}.code-preview .muted{font-size:12.5px}.quiet-link{color:var(--color-text-2);cursor:pointer;font:inherit;font-size:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--color-border);text-decoration-color:var(--color-border);text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration-thickness:1px;transition:color .12s,text-decoration-color .12s}.quiet-link:hover{color:var(--color-text);-webkit-text-decoration-color:var(--color-text-muted);text-decoration-color:var(--color-text-muted)}.join-submit{justify-content:center;width:100%;height:46px;margin-top:4px;font-size:15px}.join-submit:disabled{opacity:.5;cursor:not-allowed;filter:none}
