: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));--color-danger:#c43d2a;--color-danger-strong:#a8331f;--color-danger-ink:#fff;--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-sm:6px;--radius:8px;--radius-lg:12px;--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;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13.5px;transition:background .12s,border-color .12s,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:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn:disabled:hover{filter:none;transform:none}.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));border-color:var(--color-text)}.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.danger{background:var(--color-danger);color:var(--color-danger-ink);border-color:var(--color-danger);font-weight:600}.btn.danger:hover{background:var(--color-danger-strong);border-color:var(--color-danger-strong)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--color-surface-2);border-color:#0000}.btn.ghost.danger{color:var(--color-danger);background:0 0;border-color:#0000}.btn.ghost.danger:hover{background:color-mix(in oklch, var(--color-danger) 9%, var(--color-surface))}.btn.icon{width:30px;padding:0}.btn.sm{height:26px;padding:0 10px;font-size:12.5px}.btn.sm.icon{width:26px;padding:0}.btn.lg{height:42px;padding:0 18px;font-size:15.5px}.btn.block{width:100%}.menu-item{cursor:pointer;border-radius:var(--radius-sm);width:100%;height:32px;font:inherit;color:var(--color-text);text-align:left;white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;padding:0 10px;font-size:13px;transition:background .12s;display:flex}.menu-item:hover{background:var(--color-surface-2)}.menu-item:focus-visible{outline:2px solid var(--color-brand);outline-offset:-2px}.menu-item.danger{color:var(--color-danger)}.menu-item.danger:hover{background:color-mix(in oklch, var(--color-danger) 9%, var(--color-surface))}.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.xs{letter-spacing:0;border-width:0;width:18px;height:18px;font-size:9px;font-weight:700;line-height:1;box-shadow:inset 0 0 0 1px #00000014}.avatar-stack{cursor:pointer;border-radius:var(--radius-pill);background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.avatar-stack>*+*{margin-left:-6px}.avatar-stack:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}.avatar-stack:hover>.avatar{border-color:var(--color-surface-2)}.roster-pop{z-index:20;width:252px;max-height:min(60vh,360px);box-shadow:var(--shadow-lg);transform-origin:100% 0;padding:6px;animation:.15s cubic-bezier(.4,0,.2,1) both usermenu-in;position:absolute;top:40px;right:0;overflow-y:auto}.roster-head{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);justify-content:space-between;align-items:center;padding:6px 8px 8px;font-size:11px;font-weight:600;display:flex}.roster-count{border-radius:var(--radius-pill);background:var(--color-surface-2);min-width:18px;height:18px;color:var(--color-text-2);letter-spacing:0;justify-content:center;align-items:center;padding:0 6px;font-size:11px;display:inline-flex}.roster-list{margin:0;padding:0;list-style:none}.roster-row{border-radius:var(--radius-sm);align-items:center;gap:9px;padding:5px 8px;display:flex}.roster-row:hover{background:var(--color-surface-2)}.roster-name{min-width:0;color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.roster-you{color:var(--color-text-muted);flex-shrink:0;font-size:12px}.roster-badge{border-radius:var(--radius-pill);background:var(--color-surface-2);color:var(--color-text-2);letter-spacing:.04em;text-transform:uppercase;flex-shrink:0;padding:1px 7px;font-size:10px;font-weight:600}@media (prefers-reduced-motion:reduce){.roster-pop{animation:none}}.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));border-radius:var(--radius);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%);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}.vote-wrap{display:inline-flex;position:relative}.vote-ping{pointer-events:none;color:var(--color-brand);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;position:absolute;top:-4px;left:50%;transform:translate(-50%)}.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}.composer{background:var(--color-surface-2);border:1px dashed var(--color-border-strong);border-radius:var(--radius);padding:10px}.column-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:40px 24px;display:flex}.column-empty-icon{color:var(--color-text-subtle);opacity:.7;margin-bottom:4px}.column-empty-title{letter-spacing:-.005em;color:var(--color-text-2);font-size:14px;font-weight:600}.column-empty-body{color:var(--color-text-muted);max-width:220px;margin:0;font-size:13px;line-height:1.5}.column-empty-cta{color:var(--color-text-2);background:var(--color-surface-2);border:1px dashed var(--color-border-strong);cursor:pointer;border-radius:999px;margin-top:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s,transform 80ms}.column-empty-cta:hover{background:color-mix(in oklch, var(--color-text) 6%, var(--color-bg));color:var(--color-text);border-color:var(--color-text-muted);border-style:solid}.column-empty-cta:active{transform:scale(.97)}.column-empty-cta:disabled{opacity:.4;cursor:not-allowed}.add-note-btn{border-radius:var(--radius-pill);background:var(--color-surface-2);height:28px;color:var(--color-text-2);border:1px solid var(--color-border);cursor:pointer;align-items:center;gap:4px;padding:0 10px 0 8px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s,transform 80ms;display:inline-flex}.add-note-btn:hover{background:color-mix(in oklch, var(--color-text) 6%, var(--color-bg));border-color:var(--color-border-strong);color:var(--color-text)}.add-note-btn:active{transform:scale(.97)}.add-note-btn:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.add-note-btn:disabled{opacity:.45;cursor:not-allowed}.add-note-btn:disabled:hover{background:var(--color-surface-2);border-color:var(--color-border);color:var(--color-text-2)}.note-editor{flex-direction:column;gap:6px;display:flex;position:relative}.note-editor-input{resize:none;width:100%;font:inherit;color:inherit;background:0 0;border:0;outline:0;padding-right:28px;line-height:1.5;overflow-y:auto}.note-editor-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.note-editor-expand{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex;position:absolute;top:0;right:0}.note-editor-expand:hover{background:color-mix(in oklch, var(--color-text) 6%, transparent);color:var(--color-text)}.note-editor-expand:focus-visible{outline:2px solid var(--color-brand);outline-offset:1px}.composer-modal-textarea{resize:none;width:100%;font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);outline:none;padding:12px 14px;font-size:14.5px;line-height:1.55;transition:border-color .12s,box-shadow .12s;overflow-y:auto}.composer-modal-textarea:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-subtle)}.composer-modal-textarea::placeholder{color:var(--color-text-muted)}.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;align-items:center;gap:6px;padding:2px 7px;font-size:11px;font-weight:500;display:inline-flex;position:absolute;top:14px;left:14px;box-shadow:0 2px 6px #00000024}.live-cursor .label-host{color:#fff;text-transform:uppercase;letter-spacing:.04em;background:#ffffff38;border-radius:3px;padding:0 5px;font-size:9.5px;font-weight:600;line-height:1.5;display:inline-block}.toast{background:var(--color-text);color:var(--color-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:1000;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:var(--radius-lg);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:var(--radius);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:var(--radius-lg);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:var(--radius);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{margin-top:4px}.landing-stage{background:var(--color-bg);width:100%;height:100vh;position:relative;overflow:hidden}.landing-stage-mark{z-index:2;color:inherit;border-radius:var(--radius-pill);cursor:pointer;font:inherit;transform-origin:top;background:0 0;border:0;padding:18px 28px;text-decoration:none;transition:background .14s;display:inline-flex;position:absolute;left:50%}.landing-stage-mark:hover{background:var(--color-surface)}.landing-stage-mark:disabled{cursor:default}.landing-stage-mark:disabled:hover{background:0 0}.landing-stage .retro-wordmark--lg{letter-spacing:-.035em;font-size:clamp(56px,9.5vw,124px)}.landing-stage .retro-wordmark--lg .retro-dot{width:clamp(20px,3.2vw,38px);height:clamp(20px,3.2vw,38px);margin-bottom:clamp(10px,1.6vw,22px);animation:1.6s ease-in-out infinite retro-stage-dot-bounce}@keyframes retro-stage-dot-bounce{0%,55%,to{transform:translateY(0)scale(1)}25%{transform:translateY(-14px)scale(1.5)}}@media (prefers-reduced-motion:reduce){.landing-stage .retro-wordmark--lg .retro-dot{animation:none}}.landing-stage-card{z-index:3;flex-direction:column;gap:14px;width:440px;max-width:calc(100vw - 32px);display:flex;position:absolute;top:28vh;left:50%;translate:-50%}.landing-modetabs{border-radius:var(--radius-pill);background:var(--color-surface-2);align-items:center;gap:4px;width:100%;padding:4px;display:flex}.landing-modetab{border-radius:var(--radius-pill);cursor:pointer;height:36px;font:inherit;color:var(--color-text-muted);background:0 0;border:0;flex:1;padding:0 12px;font-size:13px;font-weight:500;transition:background .15s,color .15s,box-shadow .15s}.landing-modetab.is-active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.landing-card{flex-direction:column;gap:14px;width:100%;padding:24px;display:flex}.cursor-swarm{z-index:5;pointer-events:none;transition:opacity .8s 1s;position:absolute;inset:0;overflow:hidden}.cursor-swarm.is-dismissed{opacity:0}.landing-cursor{will-change:left, top;transition-property:left,top;transition-timing-function:cubic-bezier(.34,.12,.26,1);position:absolute}.landing-cursor-label{color:#fff;white-space:nowrap;letter-spacing:.01em;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500;position:absolute;top:14px;left:14px;box-shadow:0 2px 6px #00000024}.landing-cursor svg{filter:drop-shadow(0 1px 2px #0000002e)}@media (width<=720px){.cursor-swarm{display:none}}@media (prefers-reduced-motion:reduce){.cursor-swarm{display:none}}.error-fallback{background:var(--color-bg);place-items:center;width:100%;height:100vh;padding:24px;display:grid}.error-fallback-inner{text-align:center;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:460px;display:flex}.error-fallback-title{letter-spacing:-.022em;margin:14px 0 0;font-size:28px;font-weight:600;line-height:1.2}.error-fallback-body{color:var(--color-text-2);margin:0;font-size:15px;line-height:1.55}.error-fallback-actions{gap:10px;margin-top:4px;display:flex}.error-fallback-details{width:100%;color:var(--color-text-muted);text-align:left;margin-top:12px;font-size:12px}.error-fallback-details summary{cursor:pointer;padding:4px 0}.error-fallback-details pre{background:var(--color-surface-2);border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;margin:8px 0 0;padding:10px 12px;font-size:11.5px;line-height:1.5;overflow-x:auto}.lobby-shell{background:var(--color-bg);flex-direction:column;min-height:100vh;display:flex}.lobby-topbar{justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.lobby-topbar-actions{align-items:center;gap:8px;display:flex}.lobby-main{flex:1;place-items:center;padding:24px 24px 64px;display:grid}.lobby-card{flex-direction:column;width:100%;max-width:440px;padding:28px;display:flex}.lobby-header{flex-direction:column;gap:6px;display:flex}.lobby-title{letter-spacing:-.011em;color:var(--color-text);margin:0;font-size:18px;font-weight:600;line-height:1.3}.lobby-subtitle{color:var(--color-text-muted);font-size:13px;line-height:1.5}.lobby-subtitle .mono{color:var(--color-text-2)}.lobby-rule{background:var(--color-divider);height:1px;margin:22px 0}.lobby-section{flex-direction:column;gap:12px;display:flex}.lobby-section-label{color:var(--color-text-2);font-size:13px;font-weight:500}.lobby-chips{flex-wrap:wrap;gap:6px;display:flex}.lobby-chip{background:var(--color-surface-2);color:var(--color-text);border-radius:999px;align-items:center;gap:7px;max-width:100%;padding:5px 11px 5px 9px;font-size:13px;display:inline-flex}.lobby-chip-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.lobby-chip-name{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.lobby-chip-host{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);background:var(--color-bg);border-radius:3px;padding:1px 5px;font-size:10px;font-weight:500}.lobby-empty{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.55}.lobby-actions{flex-direction:column;align-items:stretch;gap:10px;display:flex}.lobby-title-edit{cursor:text;border-radius:var(--radius-sm);text-align:left;background:0 0;border:0;align-self:flex-start;align-items:center;gap:8px;max-width:100%;margin:-4px -8px;padding:4px 8px;transition:background .12s;display:inline-flex}.lobby-title-edit:hover{background:var(--color-surface-2)}.lobby-title-edit .lobby-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lobby-title-pencil{color:var(--color-text-muted);opacity:0;flex-shrink:0;transition:opacity .12s}.lobby-title-edit:hover .lobby-title-pencil{opacity:1}.lobby-title-input{letter-spacing:-.011em;width:100%;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-brand-line);border-radius:var(--radius-sm);outline:none;margin:-5px -9px;padding:4px 8px;font-size:18px;font-weight:600;line-height:1.3;transition:border-color .12s,box-shadow .12s}.lobby-title-input:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-subtle)}.lobby-waiting{color:var(--color-text-2);background:var(--color-surface-2);border-radius:999px;align-self:center;align-items:center;gap:10px;padding:8px 14px;font-size:14px;line-height:1.4;display:inline-flex}.lobby-waiting-dot{background:var(--color-brand);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.6s ease-in-out infinite lobby-waiting-pulse}@keyframes lobby-waiting-pulse{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.05)}}@media (prefers-reduced-motion:reduce){.lobby-waiting-dot{opacity:.85;animation:none}}@media (width<=480px){.lobby-main{padding:16px 16px 48px}.lobby-card{border-radius:var(--radius-lg);padding:22px 20px}.lobby-rule{margin:18px 0}}.timer-band{--timer-accent:var(--color-brand);z-index:4;background:var(--color-bg);border-bottom:1px solid var(--color-divider);position:relative;overflow:hidden}.timer-band--warning{--timer-accent:#d97706}.timer-band--critical,.timer-band--expired{--timer-accent:#dc2626}.timer-band-inner{align-items:center;gap:10px;height:44px;padding:0 18px;display:flex}.timer-clock{color:var(--timer-accent);align-items:center;transition:color .25s;display:inline-flex}.timer-band[data-pulse] .timer-clock{animation:1.4s ease-in-out infinite timer-pulse}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.4}}.timer-time{font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--color-text);min-width:52px;font-size:17px;font-weight:600;transition:color .25s}.timer-band--warning .timer-time,.timer-band--critical .timer-time{color:var(--timer-accent)}.timer-band[data-paused] .timer-time{opacity:.55}.timer-msg{color:var(--timer-accent);font-size:15px;font-weight:600}.timer-note{color:var(--color-text-muted);font-size:13px}.timer-grow{flex:1}.timer-start-cta{cursor:pointer;height:30px;font:inherit;color:var(--color-text-muted);border-radius:var(--radius-pill);background:0 0;border:0;align-items:center;gap:7px;padding:0 12px 0 4px;font-size:13.5px;font-weight:500;transition:color .15s;display:inline-flex}.timer-start-cta:hover{color:var(--color-text-2)}.timer-controls{align-items:center;gap:6px;display:flex}.timer-btn{background:var(--color-surface);min-width:28px;height:28px;color:var(--color-text-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);font:inherit;cursor:pointer;justify-content:center;align-items:center;padding:0 10px;font-size:12.5px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.timer-btn:hover{background:var(--color-surface-2);border-color:var(--color-border-strong);color:var(--color-text)}.timer-btn:active{transform:translateY(.5px)}.timer-btn--icon{padding:0}.timer-btn--go{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.timer-btn--go:hover{background:color-mix(in oklch, var(--color-text) 88%, var(--color-brand));border-color:var(--color-text);color:var(--color-bg)}.timer-btn--go:disabled{opacity:.45;cursor:not-allowed}.timer-mute{color:var(--color-text-muted)}.timer-presets{align-items:center;gap:6px;display:flex}.timer-preset{background:var(--color-surface);min-width:38px;height:28px;color:var(--color-text-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);font:inherit;cursor:pointer;padding:0 10px;font-size:12.5px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.timer-preset:hover{background:var(--color-brand-subtle);border-color:var(--color-brand-line);color:var(--color-brand)}.timer-custom{align-items:center;gap:6px;display:flex}.timer-custom-input{background:var(--color-surface);width:64px;height:28px;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-pill);font:inherit;padding:0 10px;font-size:12.5px}.timer-custom-input:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-subtle);outline:none}.timer-custom-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.timer-custom-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.timer-custom-input[type=number]{appearance:textfield}.timer-progress{background:color-mix(in oklch, var(--timer-accent) 14%, transparent);height:2.5px;position:absolute;bottom:0;left:0;right:0}.timer-progress-fill{background:var(--timer-accent);height:100%;transition:width .24s linear,background .25s}@media (prefers-reduced-motion:reduce){.timer-band[data-pulse] .timer-clock{animation:none}}@media (width<=560px){.timer-band-inner{gap:8px;padding:0 12px}.timer-note{display:none}.timer-progress{height:3px}}@property --timer-elapsed-deg{syntax:"<angle>";inherits:false;initial-value:0deg}.timer-dial-wrap{--timer-accent:var(--color-brand);align-items:center;gap:16px;display:flex}.timer-dial-wrap.timer-dial--warning{--timer-accent:#d97706}.timer-dial-wrap.timer-dial--critical,.timer-dial-wrap.timer-dial--expired{--timer-accent:#dc2626}.timer-dial{border-radius:50%;flex-shrink:0;position:relative}.timer-dial-pie{background:conic-gradient(color-mix(in oklch, var(--timer-accent) 14%, var(--color-surface-2)) var(--timer-elapsed-deg), var(--timer-accent) var(--timer-elapsed-deg));box-shadow:inset 0 0 0 1px var(--color-border);transition:--timer-elapsed-deg var(--timer-sweep-transition,.24s linear), background .25s ease;border-radius:50%;position:absolute;inset:0}.timer-dial[data-state=idle] .timer-dial-pie{background:var(--color-surface);box-shadow:inset 0 0 0 1.5px var(--color-border-strong)}.timer-dial-hand{background:color-mix(in oklch, var(--color-text) 65%, transparent);transform-origin:bottom;width:2px;height:43%;transform:translateX(-50%) rotate(var(--timer-elapsed-deg));transition:transform var(--timer-sweep-transition,.24s linear);border-radius:2px;position:absolute;top:7%;left:50%}.timer-dial-face{background:var(--color-surface);border-radius:50%;place-items:center;display:grid;position:absolute;inset:23%;box-shadow:0 1px 2px #1e326412}.timer-dial-glyph{color:var(--color-text-muted);display:inline-flex}.timer-dial-time{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--color-text);font-weight:600;transition:color .25s}.timer-dial-wrap.timer-dial--warning .timer-dial-time,.timer-dial-wrap.timer-dial--critical .timer-dial-time{color:var(--timer-accent)}.timer-dial-wrap[data-paused] .timer-dial-time{opacity:.5}.timer-dial-wrap.timer-dial--critical .timer-dial{animation:1.4s ease-in-out infinite timer-dial-pulse}@keyframes timer-dial-pulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 4px color-mix(in oklch, var(--timer-accent) 22%, transparent)}}.timer-dial-side{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.timer-dial-label{color:var(--color-text);font-size:14px;font-weight:600}.timer-dial-setup{flex-direction:column;gap:8px;display:flex}@media (prefers-reduced-motion:reduce){.timer-dial-wrap.timer-dial--critical .timer-dial{animation:none}.timer-dial-pie,.timer-dial-hand{transition:background .25s}}:root{--lcd-green-ink:#15803d;--lcd-green-tint:#c7eccf;--lcd-amber-ink:#a8540a;--lcd-amber-tint:#fbe1ad;--lcd-red-ink:#c1121f;--lcd-red-tint:#f9c9c9;--lcd-idle-ink:#64748b;--lcd-idle-tint:#eaeef5}.timer-lcd-card{--timer-accent:var(--lcd-green-ink);--timer-tint:var(--lcd-green-tint);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:560px;box-shadow:var(--shadow-sm);padding:14px}.timer-lcd-card.timer-lcd--idle,.timer-lcd-card.timer-lcd--ready{--timer-accent:var(--lcd-idle-ink);--timer-tint:var(--lcd-idle-tint)}.timer-lcd-card.timer-lcd--warning{--timer-accent:var(--lcd-amber-ink);--timer-tint:var(--lcd-amber-tint)}.timer-lcd-card.timer-lcd--critical,.timer-lcd-card.timer-lcd--expired{--timer-accent:var(--lcd-red-ink);--timer-tint:var(--lcd-red-tint)}.timer-lcd-head{align-items:flex-start;gap:12px;padding:4px 4px 14px;display:flex}.timer-lcd-goal{color:var(--color-text-muted);margin-top:2px}.timer-lcd-titles{flex:1;min-width:0}.timer-lcd-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.timer-lcd-title{letter-spacing:-.01em;color:var(--color-text);font-size:16px;font-weight:600}.timer-lcd-status{color:var(--color-brand);background:var(--color-brand-subtle);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:2px 9px;font-size:12.5px;font-weight:600;display:inline-flex}.timer-lcd-status-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.timer-lcd-card.timer-lcd--warning .timer-lcd-status,.timer-lcd-card.timer-lcd--critical .timer-lcd-status,.timer-lcd-card.timer-lcd--expired .timer-lcd-status{color:var(--timer-accent);background:var(--timer-tint)}.timer-lcd-card[data-paused] .timer-lcd-status{color:var(--color-text-muted);background:var(--color-surface-2)}.timer-lcd-sub{color:var(--color-text-muted);margin-top:3px;font-size:13px}.timer-lcd-menu-wrap{flex-shrink:0;position:relative}.timer-lcd-kebab{border-radius:var(--radius-pill);cursor:pointer;width:30px;height:30px;color:var(--color-text-muted);background:0 0;border:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.timer-lcd-kebab:hover{background:var(--color-surface-2);color:var(--color-text-2)}.timer-lcd-menu{z-index:10;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);min-width:140px;padding:4px;position:absolute;top:calc(100% + 4px);right:0}.timer-lcd-panel{background:var(--timer-tint);border-radius:var(--radius);justify-content:center;align-items:center;gap:16px;padding:18px 16px;transition:background .3s;display:flex}.timer-lcd-card.timer-lcd--critical .timer-lcd-panel{animation:1.1s ease-in-out infinite lcd-pulse}.timer-lcd-clock{color:var(--timer-accent);display:inline-flex}.timer-lcd-digits{display:inline-grid;position:relative}.timer-lcd-ghost,.timer-lcd-value{letter-spacing:1px;grid-area:1/1;font-family:DSEG7 Classic,ui-monospace,monospace;font-size:38px;line-height:1;transition:color .3s}.timer-lcd-ghost{color:var(--timer-accent);opacity:.1}.timer-lcd-value{color:var(--timer-accent)}.timer-lcd-card[data-paused] .timer-lcd-value{opacity:.55}.timer-lcd-controls{justify-content:center;align-items:center;gap:16px;padding-top:14px;display:flex}.timer-lcd-ctrl{cursor:pointer;width:38px;height:38px;color:var(--color-text-2);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.timer-lcd-ctrl:hover{background:var(--color-surface-2);color:var(--color-text)}.timer-lcd-ctrl:disabled{opacity:.4;cursor:not-allowed}.timer-lcd-setup{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding-top:14px;display:flex}.timer-ring-pill{--timer-accent:var(--color-brand);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);align-items:center;gap:14px;max-width:440px;padding:10px 14px;display:flex}.timer-ring-pill.timer-ring--warning{--timer-accent:#d97706}.timer-ring-pill.timer-ring--critical,.timer-ring-pill.timer-ring--expired{--timer-accent:#dc2626}.timer-ring-svg{flex-shrink:0}.timer-ring-track{stroke:var(--color-surface-2)}.timer-ring-progress{stroke:var(--timer-accent)}.timer-ring-pill[data-paused] .timer-ring-progress{opacity:.5}.timer-ring-text{flex-direction:column;gap:1px;min-width:0;display:flex}.timer-ring-label{letter-spacing:-.01em;color:var(--color-text);font-size:14px;font-weight:600}.timer-ring-time{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:13px}.timer-ring-extend{background:var(--color-surface-2);height:32px;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-pill);font:inherit;cursor:pointer;flex-shrink:0;align-items:center;gap:5px;padding:0 13px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.timer-ring-extend:hover{background:color-mix(in oklch, var(--color-text) 6%, var(--color-bg));border-color:var(--color-text-muted)}.timer-ring-setup{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.timer-ext{flex-shrink:0;position:relative}.timer-ext-caret{color:var(--color-text-muted);margin-left:-1px;transition:transform .18s;display:inline-flex}.timer-ext-caret.is-open{transform:rotate(180deg)}.timer-ext-menu{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);transform-origin:100% 0;min-width:148px;padding:4px;animation:.14s ease-out both timer-ext-in;position:absolute;top:calc(100% + 6px);right:0}@keyframes timer-ext-in{0%{opacity:0;transform:scale(.96)translateY(-2px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.timer-ext-menu{animation:none}.timer-ext-caret{transition:none}}.timer-mini{align-items:center;display:inline-flex}.timer-mini-box{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);align-items:center;gap:2px;padding:3px;display:inline-flex}.timer-mini-sep{background:var(--color-border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.timer-mini-lcd{--timer-accent:var(--lcd-green-ink);--timer-tint:var(--lcd-green-tint);background:var(--timer-tint);border-radius:var(--radius-pill);align-items:center;gap:7px;height:28px;padding:0 10px;transition:background .3s;display:inline-flex}.timer-mini-lcd.timer-lcd--idle,.timer-mini-lcd.timer-lcd--ready{--timer-accent:var(--lcd-idle-ink);--timer-tint:var(--lcd-idle-tint)}.timer-mini-lcd.timer-lcd--warning{--timer-accent:var(--lcd-amber-ink);--timer-tint:var(--lcd-amber-tint)}.timer-mini-lcd.timer-lcd--critical,.timer-mini-lcd.timer-lcd--expired{--timer-accent:var(--lcd-red-ink);--timer-tint:var(--lcd-red-tint)}.timer-mini-lcd.timer-lcd--critical{animation:1.1s ease-in-out infinite lcd-pulse}@keyframes lcd-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in oklch, var(--timer-accent) 0%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in oklch, var(--timer-accent) 20%, transparent)}}@media (prefers-reduced-motion:reduce){.timer-lcd-card.timer-lcd--critical .timer-lcd-panel,.timer-mini-lcd.timer-lcd--critical{animation:none}}.timer-mini-clock{color:var(--timer-accent);display:inline-flex}.timer-mini-digits{display:inline-grid;position:relative}.timer-mini-ghost,.timer-mini-value{letter-spacing:.5px;grid-area:1/1;font-family:DSEG7 Classic,ui-monospace,monospace;font-size:14.5px;line-height:1;transition:color .3s}.timer-mini-ghost{color:var(--timer-accent);opacity:.1}.timer-mini-value{color:var(--timer-accent)}.timer-mini-lcd[data-paused] .timer-mini-value{opacity:.5}.timer-mini-ctrls{align-items:center;gap:1px;display:inline-flex}.timer-mini-btn{cursor:pointer;width:28px;height:28px;color:var(--color-text-2);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.timer-mini-btn:hover{background:var(--color-surface-2);color:var(--color-text)}.timer-mini-btn:disabled{opacity:.4;cursor:not-allowed}.timer-mini-set{position:relative}.timer-mini-set-btn{background:var(--color-surface);height:30px;color:var(--color-text-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.timer-mini-set-btn:hover{background:var(--color-surface-2);border-color:var(--color-border-strong);color:var(--color-text)}.timer-mini-pop{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);transform-origin:0 0;flex-direction:column;gap:8px;padding:10px;animation:.14s ease-out both timer-ext-in;display:flex;position:absolute;top:calc(100% + 6px);left:0}@media (prefers-reduced-motion:reduce){.timer-mini-pop{animation:none}}.timer-band--ready{--timer-accent:#94a3b8}.timer-band--ready .timer-time{color:var(--color-text-2)}.timer-dial-wrap.timer-dial--idle,.timer-dial-wrap.timer-dial--ready,.timer-ring-pill.timer-ring--idle,.timer-ring-pill.timer-ring--ready{--timer-accent:#94a3b8}.timer-lcd-card.timer-lcd--ready .timer-lcd-status{color:var(--color-text-muted);background:var(--color-surface-2)}.timer-lcd-start,.timer-ring-start,.timer-mini-start{background:var(--color-brand);color:var(--color-brand-ink);border:1px solid var(--color-brand);border-radius:var(--radius-pill);font:inherit;cursor:pointer;align-items:center;gap:6px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.timer-lcd-start:hover,.timer-ring-start:hover,.timer-mini-start:hover{background:color-mix(in oklch, var(--color-brand) 90%, #000);border-color:color-mix(in oklch, var(--color-brand) 90%, #000)}.timer-lcd-start{height:36px;padding:0 20px;font-size:14px}.timer-ring-start{height:32px;padding:0 16px;font-size:13px}.timer-mini-start{height:28px;padding:0 13px;font-size:12.5px}.timer-lcd-launch{justify-content:center;align-items:center;gap:10px;padding-top:14px;display:flex}.timer-lcd-change{height:36px;color:var(--color-text-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer;background:0 0;padding:0 16px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s}.timer-lcd-change:hover{background:var(--color-surface-2);border-color:var(--color-border-strong)}.timer-ring-launch{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.timer-ring-clear{width:30px;height:30px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.timer-ring-clear:hover{background:var(--color-surface-2);color:var(--color-text-2)}.usermenu-trigger{cursor:pointer;border-radius:var(--radius-pill);background:0 0;border:0;align-items:center;gap:8px;height:36px;padding:0 8px 0 4px;transition:background .12s;display:flex}.usermenu-trigger:hover{background:var(--color-surface-2)}.usermenu-trigger-name{color:var(--color-text-2);font-size:13px}.usermenu-pop{z-index:20;width:268px;box-shadow:var(--shadow-lg);transform-origin:100% 0;padding:6px;animation:.15s cubic-bezier(.4,0,.2,1) both usermenu-in;position:absolute;top:44px;right:0}@keyframes usermenu-in{0%{opacity:0;transform:scale(.97)translateY(-4px)}to{opacity:1;transform:none}}.usermenu-section{padding:8px 10px}.usermenu-label{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);font-size:11px;font-weight:600}.usermenu-email{color:var(--color-text-2);word-break:break-all;margin-top:4px;font-size:12.5px;line-height:1.4}.usermenu-divider{background:var(--color-divider);height:1px;margin:2px 6px}.usermenu-name{background:var(--color-surface);width:100%;height:36px;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;outline:none;margin-top:7px;padding:0 12px;font-size:14px;transition:border-color .12s,box-shadow .12s}.usermenu-name:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-subtle)}.usermenu-signout{height:34px}.usermenu-confirm{flex-direction:column;gap:11px;padding:10px;animation:.13s ease-out both usermenu-fade;display:flex}@keyframes usermenu-fade{0%{opacity:0}to{opacity:1}}.usermenu-confirm-text{color:var(--color-text-2);font-size:13px;line-height:1.45}.usermenu-confirm-actions{gap:8px;display:flex}.usermenu-confirm-actions .btn{flex:1}@media (prefers-reduced-motion:reduce){.usermenu-pop,.usermenu-confirm{animation:none}}
