:root{--bg:#24364b;--panel:#243e4fe6;--panel2:#244151;--ink:#31d07b;--faint:#6ca5c8;--rule:#23525a;--primary:#20b48d;--primary-dim:#227b6f;--secondary:#db8e27;--secondary-dim:#896637;--green:#20b48d;--amber:#e7d84b;--red:#e5837e;--well:#172331;--placeholder:#226865;--bg-rgb:36, 54, 75;--primary-rgb:32, 180, 141;--secondary-rgb:219, 142, 39;--amber-rgb:231, 216, 75;--red-rgb:229, 131, 126;--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", "Courier New", monospace;--title-font:var(--mono);--bg-image:none;--bg-dim:0;--glow:0;--text:var(--ink);--muted:var(--faint);--line:var(--rule);--accent:var(--primary);--danger:var(--red);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{background:var(--bg)}body{background:linear-gradient(rgba(var(--bg-rgb), var(--bg-dim)), rgba(var(--bg-rgb), var(--bg-dim))) center / cover fixed, var(--bg-image) center / cover fixed no-repeat, radial-gradient(ellipse 80% 50% at 50% -10%, rgba(var(--secondary-rgb), .096), transparent 60%), radial-gradient(ellipse 60% 40% at 50% 110%, rgba(var(--primary-rgb), .072), transparent 60%), var(--bg);color:var(--ink);font-family:var(--mono);font-size:14px;line-height:1.55;position:relative;overflow:hidden}#root{z-index:1;position:relative}button,input,textarea,select{font:inherit;color:inherit}h1,h2,h3{line-height:1.2;font-family:var(--title-font);margin:0}h1{letter-spacing:.08em;text-transform:uppercase;color:var(--primary);font-size:20px;font-weight:700}h1:after{content:"_";color:var(--green);animation:1.1s step-end infinite blink}h1 .t-hot{color:var(--primary)}h1 .t-sep{color:var(--faint)}h1 .t-hop{color:var(--secondary)}h2{text-transform:uppercase;letter-spacing:.18em;color:var(--primary);font-size:12px;font-weight:700}h2:before{content:"> ";color:var(--secondary)}h3,.label{text-transform:uppercase;letter-spacing:.16em;color:var(--secondary);margin-top:6px;font-size:10px;font-weight:700}.field-label{color:var(--faint);margin:2px 0 6px;font-size:11px}.muted{color:var(--faint)}.small{font-size:12px}.mono{font-family:var(--mono)}.break{word-break:break-all}.error{color:var(--red);margin:0}.hidden{display:none}.grow{flex:1;min-width:0}.row{align-items:center;display:flex}.gap{gap:8px}.wrap{flex-wrap:wrap}.stack{flex-direction:column;gap:10px;display:flex}a{color:var(--primary)}input,textarea,select{width:100%;font-family:var(--mono);background:var(--well);color:var(--ink);border:1px solid var(--rule);caret-color:var(--green);border-radius:0;outline:none;padding:9px 11px;font-size:13px}input::placeholder,textarea::placeholder{color:var(--placeholder)}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 1px rgba(var(--primary-rgb), .21)}input[type=range]{box-shadow:none;accent-color:var(--secondary);background:0 0;border:none;padding:0}.btn{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--primary);border:1px solid var(--primary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:0;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:11px;font-weight:700;transition:box-shadow .12s,background .12s,color .12s,transform 60ms;display:inline-flex}.btn:hover:not(:disabled){background:var(--primary);color:#000}.btn:active:not(:disabled){transform:translate(1px,1px)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn.primary{color:var(--secondary);border-color:var(--secondary);background:rgba(var(--secondary-rgb), .06)}.btn.primary:hover:not(:disabled){background:var(--secondary);color:#000}.btn.ghost{color:var(--faint);border-color:#0000}.btn.ghost:hover:not(:disabled){color:var(--secondary);box-shadow:none;background:0 0}.btn.danger{color:var(--red);border-color:var(--red)}.btn.danger:hover:not(:disabled){background:var(--red);color:#000}.btn.small{padding:5px 10px;font-size:10px}.icon-btn{border:1px solid var(--rule);width:32px;height:32px;color:var(--primary);cursor:pointer;background:0 0;border-radius:0;flex:none;place-items:center;padding:0;transition:box-shadow .12s,background .12s,color .12s;display:inline-grid}.icon-btn:hover:not(:disabled){border-color:var(--primary);background:var(--primary);color:var(--bg)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.modal header .icon-btn{color:var(--faint);border-color:#0000}.modal header .icon-btn:hover{color:var(--secondary);box-shadow:none;background:0 0;border-color:#0000}.pill{text-transform:uppercase;letter-spacing:.12em;color:var(--secondary);border:1px solid var(--secondary-dim);padding:1px 6px;font-size:10px;font-weight:700}.avatar{background:var(--well);border:1px solid var(--primary-dim);color:var(--primary);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.card,.modal,.onboarding-card,.pv-win{background:var(--panel);border:1px solid var(--primary-dim);--win-shadow:4px 4px 0 var(--secondary-dim);box-shadow:var(--win-shadow), 0 0 calc(var(--glow) * 28px) rgba(var(--primary-rgb), calc(var(--glow) * .55)), inset 0 0 calc(var(--glow) * 14px) rgba(var(--primary-rgb), calc(var(--glow) * .12));position:relative}.card:before,.card:after,.modal:before,.modal:after,.onboarding-card:before,.onboarding-card:after,.pv-win:before,.pv-win:after{content:"";border:2px solid var(--primary);pointer-events:none;width:10px;height:10px;position:absolute}.card:before,.modal:before,.onboarding-card:before,.pv-win:before{border-bottom:0;border-right:0;top:-2px;left:-2px}.card:after,.modal:after,.onboarding-card:after,.pv-win:after{border-top:0;border-left:0;border-color:var(--secondary);bottom:-2px;right:-2px}.onboarding{place-items:center;min-height:100%;padding:24px 16px;display:grid;overflow-y:auto}.onboarding-card{flex-direction:column;gap:16px;width:100%;max-width:440px;padding:24px 20px;display:flex}h1.brand{text-transform:none}.onboarding-card h1{text-align:center;font-size:26px}.onboarding-card>p{text-align:center;margin:0}.field{text-align:left;flex-direction:column;gap:6px;display:flex}.field>span{text-transform:uppercase;letter-spacing:.16em;color:var(--faint);font-size:10px}.layout{grid-template-columns:340px minmax(0,1fr);height:100%;display:grid}.sidebar{border-right:1px solid var(--rule);background:rgba(var(--bg-rgb), .6);flex-direction:column;min-height:0;display:flex}.sidebar-head{align-items:center;gap:10px;padding:14px 14px 10px;display:flex}.sidebar-head h1{flex:1}.me{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:0}.banner{border:1px dashed var(--rule);color:var(--faint);margin:0 14px 8px;padding:6px 10px;font-size:12px}.banner:before{content:"» ";color:var(--secondary)}.banner.error{color:var(--red);border-color:var(--red)}.chat-banner{margin-top:8px}.chat-list{flex:1;padding:0 8px 16px;overflow-y:auto}.chat-row{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;align-items:flex-start;gap:12px;padding:10px;display:flex}.swipe-row{touch-action:pan-y;position:relative;overflow:hidden}.swipe-row.invite-swipe{margin-bottom:6px}.swipe-row .chat-row.invite{margin-bottom:0}.swipe-body{transition:transform .2s;position:relative}.swipe-body.dragging{transition:none}.swipe-body[style]>.chat-row{background:var(--panel2)}.swipe-delete{white-space:nowrap;background:var(--red);color:#000;cursor:pointer;font:inherit;text-transform:uppercase;letter-spacing:.1em;border:none;justify-content:center;align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden}.hover-delete{z-index:1;border:1px solid var(--red);background:var(--panel2);width:22px;height:22px;color:var(--red);cursor:pointer;place-items:center;padding:0;display:none;position:absolute;bottom:10px;right:10px}.hover-delete:hover:not(:disabled){background:var(--red);color:#000}@media (hover:hover){.swipe-row:hover>.hover-delete{display:grid}}.swipe-row:has(:focus-visible)>.hover-delete{display:grid}.chat-row:hover{background:var(--well);border-color:var(--rule)}.chat-row.active{background:var(--panel2);border-color:var(--primary-dim);box-shadow:inset 2px 0 0 var(--primary)}.chat-row.invite{cursor:default;background:var(--panel);border-color:var(--secondary-dim);margin-bottom:6px}.chat-row-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.chat-row-top,.chat-row-bottom{align-items:center;gap:8px;display:flex}.chat-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:700;overflow:hidden}.time{color:var(--faint);font-size:11px}.preview{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.badge{background:var(--secondary);color:#000;border-radius:9px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:grid}.empty{text-align:center;color:var(--faint);padding:48px 16px}.chat-view{flex-direction:column;min-width:0;min-height:0;display:flex}.chat-view.placeholder{place-items:center;display:grid}.chat-head{border-bottom:1px solid var(--rule);background:rgba(var(--bg-rgb), .6);align-items:center;gap:10px;padding:10px 12px;display:flex}.chat-head-title{flex-direction:column;flex:1;min-width:0;display:flex}.chat-head-title strong{font-family:var(--title-font);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-head-title .small{white-space:nowrap;color:var(--green);align-items:center;gap:4px;display:inline-flex;overflow:hidden}.mobile-only{display:none}.messages{flex-direction:column;flex:1;gap:6px;padding:16px;display:flex;overflow-y:auto}.e2ee-note{text-align:center;max-width:440px;color:var(--faint);border:1px dashed var(--rule);align-self:center;margin-bottom:12px;padding:6px 10px;font-size:11px}.bubble-row{display:flex}.bubble-row.mine{justify-content:flex-end}.bubble,.pv-bubble{--bubble-pad:11px;--bubble-top:7px;--bubble-bottom:5px;--bubble-radius:0px;--bubble-photo-top:var(--bubble-pad);background:var(--panel2);border:1px solid var(--rule);max-width:min(75%,520px);padding:var(--photo-top,var(--bubble-top)) var(--bubble-pad) var(--bubble-bottom);overflow-wrap:anywhere;flex-direction:column;gap:4px;display:flex}.mine .bubble,.mine .pv-bubble{background:rgba(var(--primary-rgb), .08);border-color:var(--primary-dim);box-shadow:3px 3px 0 var(--secondary-dim)}.author{text-transform:uppercase;letter-spacing:.12em;color:var(--secondary);font-size:10px;font-weight:700}.text{white-space:pre-wrap}.meta{color:var(--faint);align-self:flex-end;font-size:10px}.att-img{border:1px solid var(--rule);max-width:100%;max-height:360px;display:block}.bubble:has(.att-img){min-width:min(160px,100%)}.bubble:has(.att-img)>:is(.text,.author){contain:inline-size}:is(.bubble:has(>.att-img:first-child),.bubble:has(>a:first-child>.att-img)){--photo-top:var(--bubble-photo-top)}.bubble>.att-img:first-child,.bubble>a:first-child>.att-img{--r:max(0px, calc(var(--bubble-radius) - var(--bubble-pad)));border-radius:var(--r) var(--r) 0 0}.att-placeholder{color:var(--faint);border:1px dashed var(--rule);padding:24px 12px;font-size:12px}.att-placeholder.error{color:var(--red);border-color:var(--red)}.att-file{color:var(--primary)}.game-bubble{min-width:min(280px,100%)}.cb{flex-direction:column;gap:8px;display:flex}.cb-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.cb-head .label{color:var(--secondary);margin:0}.cb-mask{letter-spacing:.12em;color:var(--ink);white-space:nowrap;font-size:20px;overflow-x:auto}.cb-mask.small{color:var(--faint);font-size:13px}.cb-number{color:var(--green);text-decoration:none}.cb-guesses{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.cb-row{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.cb-who{text-transform:uppercase;letter-spacing:.1em;color:var(--faint);flex-basis:100%;font-size:10px}.cb-tiles{flex-wrap:wrap;gap:2px;display:inline-flex}.cb-tile{border:1px solid var(--rule);background:var(--well);width:20px;height:24px;color:var(--ink);place-items:center;font-size:13px;font-weight:700;display:inline-grid}.cb-tile.exact{background:var(--green);border-color:var(--green);color:var(--bg)}.cb-tile.near{background:var(--amber);border-color:var(--amber);color:var(--bg)}.cb-tile.miss{color:var(--faint);opacity:.6}.cb-tile.pending{color:var(--faint);border-style:dashed}.cb-score{color:var(--faint);white-space:nowrap}.cb-form{flex-direction:column;gap:4px;display:flex}.cb-form input{letter-spacing:.2em}.cb-ok{color:var(--green)}.cb-legend{color:var(--faint);flex-wrap:wrap;gap:4px 12px;font-size:11px;display:flex}.cb-legend>span{align-items:center;gap:5px;display:inline-flex}.cb-swatch{width:12px;height:12px}.cb-swatch.miss{opacity:1;background:var(--well)}.jumper-icon .px-t{fill:#1d6b73}.jumper-icon .px-b{fill:#29adff}.jumper-icon .px-s{fill:#ffc07c}.jumper-icon .px-k{fill:#1b1a28}.jumper-icon .px-h{fill:#9e8318}button:disabled .jumper-icon{filter:grayscale()}.space-run{z-index:20;color:#e9f1f7;-webkit-user-select:none;user-select:none;background:#0b0f1a;position:fixed;inset:0}.space-run canvas{touch-action:none;display:block}.sr-hud{padding:calc(8px + env(safe-area-inset-top)) 12px 8px;letter-spacing:.12em;pointer-events:none;align-items:center;gap:16px;font-size:12px;font-weight:700;display:flex;position:absolute;top:0;left:0;right:0}.sr-hud>:first-child{color:#ffb000}.sr-tilt{pointer-events:auto;font:inherit;letter-spacing:.12em;color:#8fa3b8;background:#0b0f1a99;border:2px solid #3a4a60;margin-left:auto;padding:5px 8px;font-size:10px;font-weight:700}.sr-tilt.active{color:#7bdc5a;border-color:#7bdc5a}.sr-tilt+.icon-btn{margin-left:0!important}.sr-hud .icon-btn{pointer-events:auto;color:#e9f1f7;background:#0b0f1a99;border-color:#5a6b80;margin-left:auto}.sr-fire{right:16px;bottom:calc(24px + env(safe-area-inset-bottom));color:#ffb3a3;width:76px;height:76px;font:inherit;letter-spacing:.1em;touch-action:none;background:#ff6b4a2e;border:3px solid #ff6b4a;border-radius:50%;font-weight:700;position:absolute}.sr-fire:active{background:#ff6b4a73}.sr-weapons{left:12px;bottom:calc(24px + env(safe-area-inset-bottom));flex-direction:column;gap:6px;display:flex;position:absolute}.sr-weapon{color:#8fa3b8;min-width:92px;font:inherit;letter-spacing:.1em;text-transform:uppercase;text-align:left;touch-action:none;background:#0b0f1abf;border:2px solid #3a4a60;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 9px;font-size:11px;font-weight:700;display:flex}.sr-weapon.active{color:#ffb000;border-color:#ffb000;box-shadow:2px 2px #ff6b4a}.sr-weapon:disabled{opacity:.4}.sr-ammo{color:#e9f1f7;letter-spacing:.2em;font-size:10px}.sr-refill{color:#7bdc5a;letter-spacing:.15em;font-size:9px}.sr-reward{pointer-events:none;color:#ffb000;letter-spacing:.16em;text-shadow:2px 2px #ff6b4a;font-size:16px;font-weight:700;animation:1.2s ease-out forwards sr-reward;position:absolute;top:30%;left:50%;transform:translate(-50%)}@keyframes sr-reward{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-40px)}}.sr-panel{text-align:center;background:#0b0f1ae0;border:2px solid #ffb000;flex-direction:column;align-items:center;gap:10px;width:min(340px,100% - 32px);padding:20px 16px;display:flex;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);box-shadow:4px 4px #ff6b4a}.sr-panel strong{letter-spacing:.14em;color:#ffb000;font-size:18px}.sr-panel.sr-passive{pointer-events:none}.sr-hint{color:#8fa3b8;font-size:11px}.mr-lives{color:#29adff;letter-spacing:.2em}.mr-recenter{pointer-events:auto;color:#8fa3b8;font:inherit;letter-spacing:.1em;background:#0b0f1abf;border:2px solid #3a4a60;margin-left:auto;padding:4px 8px;font-size:10px;font-weight:700}.mr-recenter+.icon-btn{margin-left:0}.mr-jump{color:#a9dcff;background:#29adff2e;border-color:#29adff}.mr-jump:active{background:#29adff73}.sr-blink{color:#7bdc5a;letter-spacing:.16em;font-weight:700;animation:1.1s step-end infinite blink}.game-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.game-option{text-align:left;border:1px solid var(--rule);background:var(--well);width:100%;color:var(--ink);font:inherit;cursor:pointer;align-items:center;gap:12px;padding:10px;display:flex}.game-option:hover{border-color:var(--primary)}.game-option .grow{flex-direction:column;gap:2px;display:flex}.game-option-icon{border:1px solid var(--primary-dim);width:40px;height:40px;color:var(--primary);flex:none;place-items:center;display:grid}.lab-pill{color:var(--secondary);border-color:var(--secondary);align-self:center}.chess-bubble{width:min(100%,350px);max-width:100%}.chess-players{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.chess-players>span{align-items:center;gap:5px;display:inline-flex}.chess-dot{border:1px solid var(--faint);border-radius:50%;width:10px;height:10px}.chess-dot.w{background:#f6f1e4}.chess-dot.b{background:#1b1a28}.chess-wrap{position:relative}.chess-board{aspect-ratio:1;border:1px solid var(--rule);background:var(--well);-webkit-user-select:none;user-select:none;grid-template:repeat(8,minmax(0,1fr))/repeat(8,minmax(0,1fr));width:100%;max-width:320px;display:grid;container-type:inline-size}.chess-sq{cursor:pointer;background:rgba(var(--primary-rgb), .08);-webkit-tap-highlight-color:transparent;border:none;border-radius:0;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative;overflow:hidden}.chess-sq.light{background:rgba(var(--primary-rgb), .32)}.chess-sq.last{box-shadow:inset 0 0 0 100cqi rgba(var(--amber-rgb), .28)}.chess-sq.selected{box-shadow:inset 0 0 0 3px var(--secondary)}.chess-sq.check{background:radial-gradient(circle, rgba(var(--red-rgb), .95) 0%, rgba(var(--red-rgb), .35) 60%, transparent 75%)}.chess-sq.target:after{content:"";background:rgba(var(--secondary-rgb), .75);border-radius:50%;width:28%;height:28%}.chess-sq.capture:after{content:"";border:3px solid rgba(var(--secondary-rgb), .85);border-radius:50%;position:absolute;inset:4%}.chess-piece{pointer-events:none;font-family:Segoe UI Symbol,Apple Symbols,DejaVu Sans,sans-serif;font-size:10cqi;line-height:1}.chess-piece.w{color:#f6f1e4;text-shadow:0 0 1px #000,0 0 1px #000,0 1px 1px #000}.chess-piece.b{color:#1b1a28;text-shadow:0 0 1px #f6f1e4,0 0 1px #f6f1e4,0 1px 1px #f6f1e499}.chess-coord{color:var(--faint);pointer-events:none;font-size:2.4cqi;line-height:1;position:absolute}.chess-coord.rank{top:2px;left:2px}.chess-coord.file{bottom:2px;right:2px}.chess-promo{background:var(--panel2);border:1px solid var(--secondary);box-shadow:3px 3px 0 var(--secondary-dim);align-items:center;gap:6px;padding:8px 10px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.chess-promo .btn{padding:2px 8px}.chess-promo .chess-piece{font-size:26px}.chess-status{color:var(--secondary)}.chess-status.done{color:var(--green)}.chess-actions{flex-wrap:wrap}.chess-moves summary{cursor:pointer}.chess-moves ol{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:2px 12px;margin:6px 0 0;padding-left:28px;display:grid}.chess-moves li>span{min-width:56px;display:inline-block}.cb-pin-body .chess-board{max-width:min(280px,36vh)}.messages-wrap{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.cb-pin{z-index:2;border-bottom:1px solid var(--rule);background:var(--bg);position:absolute;top:0;left:0;right:0;box-shadow:0 4px 12px #00000040}.cb-pin-head{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:8px 12px;display:flex}.cb-pin-head .label{color:var(--secondary);white-space:nowrap;margin:0}.cb-pin-sum{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cb-pin-body{max-height:45vh;padding:0 12px 12px;overflow-y:auto}.composer{border-top:1px solid var(--rule);padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(var(--bg-rgb), .7)}.composer-row{align-items:flex-end;gap:6px;display:flex}.composer textarea{resize:none;min-height:0;max-height:140px;padding:7px 11px}.composer .icon-btn{width:36px;height:36px}.composer .send{color:var(--secondary);border-color:var(--secondary);background:rgba(var(--secondary-rgb), .06)}.composer .send:hover:not(:disabled){background:var(--secondary);border-color:var(--secondary);color:#000}.composer-status{color:var(--faint);padding:0 8px 6px;font-size:11px}.composer-status.error{color:var(--red)}.modal-backdrop{background:rgba(var(--bg-rgb), .72);z-index:10;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel2);flex-direction:column;gap:12px;width:100%;max-width:460px;max-height:calc(100% - 32px);padding:18px;display:flex;overflow-y:auto}.modal header{justify-content:space-between;align-items:center;display:flex}.modal p{margin:0}.member-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.member-list li{align-items:center;gap:10px;display:flex}.relay-list{margin:0;padding-left:18px}.relay-list.editable{flex-direction:column;gap:4px;padding:0;list-style:none;display:flex}.relay-list.editable li{align-items:center;gap:8px;display:flex}.relay-list .mono{color:var(--green)}.profile-head{align-items:center;gap:14px;display:flex}.profile-head .mono{color:var(--green);letter-spacing:.04em;font-size:11px}.photo-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:0;position:relative}.photo-badge{text-transform:uppercase;letter-spacing:.1em;background:var(--secondary);color:#000;padding:1px 5px;font-size:9px;font-weight:700;position:absolute;bottom:-2px;right:-6px}.photo-picker .error{max-width:140px}.secret{background:var(--well);border:1px solid var(--rule);color:var(--amber);padding:10px 12px;font-size:12px}.icon-row{gap:6px;display:flex}.sidebar-icons{padding:0 14px 10px}.sidebar-icons .new-chat{height:34px;padding:0 12px}.icon-tile{cursor:pointer;border:1px solid var(--rule);width:34px;height:34px;color:var(--primary);background:0 0;place-items:center;padding:0;transition:box-shadow .12s,background .12s,color .12s;display:grid}.icon-tile:hover{background:var(--primary);color:var(--bg);border-color:var(--primary)}.look-section{flex-direction:column;display:flex}.picker-row{align-items:stretch;gap:6px;display:flex}.picker{flex:auto;min-width:0;position:relative}.picker-btn{border:1px solid var(--rule);background:var(--well);width:100%;height:100%;color:var(--ink);text-align:left;cursor:pointer;border-radius:0;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;font-size:15px;display:flex}.picker-btn:hover,.picker-btn.open{border-color:var(--primary)}.pick-name{white-space:nowrap;flex:auto;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.caret{color:var(--faint);font-size:10px}.picker-menu{z-index:30;overscroll-behavior:contain;background:var(--panel2);border:1px solid var(--rule);max-height:300px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0006}.picker-item{cursor:pointer;border:none;border-bottom:1px solid var(--rule);text-align:left;width:100%;color:var(--ink);background:0 0;align-items:center;gap:8px;padding:9px 11px;font-size:16px;display:flex}.picker-item:last-child{border-bottom:none}.picker-item:hover,.picker-item.active{background:var(--well)}.picker-item.active .picker-label{color:var(--primary)}.picker-item .tick{width:14px;color:var(--secondary);flex:none;font-weight:700}.picker-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.step-btn{flex:none;padding:0 10px;font-size:14px}.step-btn.wide{letter-spacing:.1em;font-size:10px}.theme-swatch{flex:none;gap:2px;margin-left:auto;display:inline-flex}.theme-swatch i{border:1px solid var(--rule);width:12px;height:12px}.colour-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px;display:grid}.colour-field{border:1px solid var(--rule);background:var(--well);cursor:pointer;align-items:center;gap:8px;padding:4px 6px;font-size:11px;display:flex}.colour-field:hover{border-color:var(--primary)}.colour-field input[type=color]{border:1px solid var(--rule);cursor:pointer;width:24px;height:24px;box-shadow:none;background:0 0;flex:none;padding:0}.colour-field input[type=color]::-webkit-color-swatch-wrapper{padding:0}.colour-field input[type=color]::-webkit-color-swatch{border:none}.colour-field input[type=color]::-moz-color-swatch{border:none}.theme-name{margin-bottom:6px}.pv{border:1px dashed var(--rule);background:var(--bg);background:linear-gradient(rgba(var(--bg-rgb), var(--bg-dim)), rgba(var(--bg-rgb), var(--bg-dim))) center / cover, var(--bg-image) center / cover, var(--bg);margin:12px 0 4px;padding:14px 12px}.pv-win{background:var(--panel2);flex-direction:column;gap:6px;padding:10px 10px 8px;display:flex}.pv-title{font-family:var(--title-font);text-transform:uppercase;letter-spacing:.18em;color:var(--primary);font-size:10px;font-weight:700}.pv-title:before{content:"> ";color:var(--secondary)}.pv-bubble{max-width:80%;font-size:12px}.pv-input{color:var(--placeholder);background:var(--well);border:1px solid var(--rule);margin-top:2px;padding:5px 9px;font-size:11px}.photo-thumb{object-fit:cover;border:1px solid var(--rule);width:56px;height:36px}.dim-row{color:var(--faint);align-items:center;gap:10px;margin-top:6px;font-size:11px;display:flex}.dim-row input{flex:1}.dim-row>span:first-child{width:32px}.dim-row>span:last-child{text-align:right;width:32px}.check{color:var(--faint);cursor:pointer;align-items:center;gap:6px;font-size:11px;display:inline-flex}.check input{width:auto;accent-color:var(--primary)}.import-row,.look-section>.muted.small,.look-section>.error.small{margin-top:6px}.theme-preview{border:1px solid;flex-direction:column;gap:8px;padding:18px 14px;display:flex}.theme-preview .theme-swatch{margin-left:0}.copy-theme{align-self:flex-start;margin-top:6px}.look-section>.field-label:not(:first-of-type){margin-top:10px}.segmented{flex-wrap:wrap;gap:4px;display:flex}.seg{text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--rule);color:var(--faint);cursor:pointer;background:0 0;border-radius:0;flex:auto;padding:6px 8px;font-size:10px;font-weight:700}.seg:hover{border-color:var(--primary);color:var(--primary)}.seg.active{border-color:var(--primary);background:var(--primary);color:var(--bg)}.cropper{flex-direction:column;align-items:center;gap:12px;display:flex}.crop-frame{border:1px solid var(--primary-dim);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;background:#000;outline:none;position:relative;overflow:hidden}.crop-frame:active{cursor:grabbing}.crop-frame:focus-visible{box-shadow:0 0 0 2px var(--primary)}.crop-frame img{pointer-events:none;transform-origin:0 0;max-width:none;position:absolute;top:0;left:0}.crop-mask{outline:2px solid var(--primary);outline-offset:-2px;pointer-events:none;border-radius:50%;position:absolute;inset:0;box-shadow:0 0 0 9999px #0000008c}.crop-zoom{align-items:center;gap:10px;width:100%;max-width:280px;display:flex}.crop-zoom input{flex:1}.crop-actions{justify-content:flex-end}.call-overlay{background:var(--bg);color:var(--ink);z-index:20;flex-direction:column;display:flex;position:fixed;inset:0}.call-center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:16px;display:flex}.call-center h2{margin-top:8px;font-size:16px}.call-center p{color:var(--faint);margin:0}.remote-video{object-fit:cover;background:#000;width:100%;height:100%;position:absolute;inset:0}.local-video{aspect-ratio:3/4;object-fit:cover;border:1px solid var(--primary);width:28%;max-width:220px;box-shadow:4px 4px 0 var(--secondary-dim);background:var(--well);z-index:1;position:absolute;top:16px;right:16px;transform:scaleX(-1)}.call-top{background:rgba(var(--bg-rgb), .7);border:1px solid var(--rule);z-index:1;padding:4px 10px;font-size:12px;position:absolute;top:16px;left:16px}.call-controls{z-index:1;padding:24px 16px calc(32px + env(safe-area-inset-bottom));justify-content:center;gap:22px;margin-top:auto;display:flex;position:relative}.round{cursor:pointer;background:rgba(var(--bg-rgb), .6);width:60px;height:60px;color:var(--primary);border:1px solid var(--primary);border-radius:50%;place-items:center;display:grid}.round.on{background:var(--primary);color:#000}.round.danger{color:var(--red);border-color:var(--red)}.round.danger:hover{background:var(--red);color:#000}.round.accept{color:#000;background:var(--primary)}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@media (prefers-reduced-motion:reduce){h1:after{animation:none}.btn,.icon-btn,.icon-tile,.swipe-body{transition:none}}.has-photo :is(.chat-head,.composer,.cb-pin){background:rgba(var(--bg-rgb), .82);-webkit-backdrop-filter:blur(12px)}.has-photo .sidebar{background:rgba(var(--bg-rgb), .72);-webkit-backdrop-filter:blur(14px)}.has-photo :is(.chat-view.placeholder>p,.empty,.e2ee-note,.att-placeholder,.chat-banner){background:rgba(var(--bg-rgb), .82);-webkit-backdrop-filter:blur(10px)}.has-photo :is(.chat-view.placeholder>p,.empty){padding:8px 14px}.has-photo .empty{margin:16px 8px;padding:24px 14px}.has-photo :is(.bubble,.pv-bubble){-webkit-backdrop-filter:blur(8px)}.has-photo :is(.mine .bubble,.mine .pv-bubble){background:linear-gradient(rgba(var(--primary-rgb), .12), rgba(var(--primary-rgb), .12)), rgba(var(--bg-rgb), .88)}.has-photo .modal-backdrop{-webkit-backdrop-filter:blur(4px)}[data-window=plain] :is(.card,.modal,.onboarding-card),.pv[data-window=plain] .pv-win,[data-window=rounded] :is(.card,.modal,.onboarding-card),.pv[data-window=rounded] .pv-win,[data-window=double] :is(.card,.modal,.onboarding-card),.pv[data-window=double] .pv-win{--win-shadow:0 0 0 transparent}[data-window]:not([data-window=brackets]) :is(.card,.modal,.onboarding-card):before,[data-window]:not([data-window=brackets]) :is(.card,.modal,.onboarding-card):after,.pv[data-window]:not([data-window=brackets]) .pv-win:before,.pv[data-window]:not([data-window=brackets]) .pv-win:after{display:none}[data-window=plain] :is(.card,.modal,.onboarding-card),.pv[data-window=plain] .pv-win{border-color:var(--rule)}[data-window=rounded] :is(.card,.modal,.onboarding-card),.pv[data-window=rounded] .pv-win{border-color:var(--rule);--win-shadow:0 12px 32px #00000059;border-radius:14px}[data-window=rounded] :is(.picker-menu,.picker-btn,input,textarea,select,.btn,.icon-btn,.icon-tile,.seg,.colour-field,.chat-row,.swipe-row,.hover-delete),.pv[data-window=rounded] .pv-input{border-radius:8px}[data-window=double] :is(.card,.modal,.onboarding-card),.pv[data-window=double] .pv-win{border:4px double var(--primary)}[data-bubble=rounded] .bubble,.pv[data-bubble=rounded] .pv-bubble{--bubble-radius:16px;border-radius:16px 16px 16px 4px}[data-bubble=rounded] .mine .bubble,.pv[data-bubble=rounded] .mine .pv-bubble{box-shadow:none;border-radius:16px 16px 4px}[data-bubble=solid] .bubble,.pv[data-bubble=solid] .pv-bubble{--bubble-radius:18px;border-color:#0000;border-radius:18px}[data-bubble=solid] .mine .bubble,.pv[data-bubble=solid] .mine .pv-bubble{background:var(--primary);color:var(--bg);box-shadow:none;border-color:#0000}[data-bubble=solid] .mine .bubble :is(.author,.meta,.att-file),.pv[data-bubble=solid] .mine .pv-bubble :is(.author,.meta,.att-file){color:var(--bg);opacity:.8}[data-bubble=outline] .bubble,.pv[data-bubble=outline] .pv-bubble{border-color:var(--faint);--bubble-radius:6px;background:0 0;border-radius:6px}[data-bubble=outline] .mine .bubble,.pv[data-bubble=outline] .mine .pv-bubble{border-color:var(--primary);box-shadow:none;background:0 0}[data-bubble=minimal] .bubble,.pv[data-bubble=minimal] .pv-bubble{border:none;border-left:2px solid var(--secondary);--bubble-pad:10px;--bubble-top:2px;--bubble-bottom:2px;--bubble-photo-top:2px;background:0 0}[data-bubble=minimal] .mine .bubble,.pv[data-bubble=minimal] .mine .pv-bubble{border:none;border-right:2px solid var(--primary);box-shadow:none;text-align:right;background:0 0}.has-photo :is([data-bubble=outline] .bubble,.pv[data-bubble=outline] .pv-bubble),.has-photo :is([data-bubble=outline] .mine .bubble,.pv[data-bubble=outline] .mine .pv-bubble){background:rgba(var(--bg-rgb), .8)}.has-photo :is([data-bubble=minimal] .bubble,.pv[data-bubble=minimal] .pv-bubble){background:rgba(var(--bg-rgb), .75);--bubble-top:4px;--bubble-bottom:4px;--bubble-photo-top:var(--bubble-pad)}.has-photo :is([data-bubble=minimal] .mine .bubble,.pv[data-bubble=minimal] .mine .pv-bubble){background:rgba(var(--bg-rgb), .75)}.light-theme .btn:hover:not(:disabled),.light-theme .icon-btn:hover:not(:disabled),.light-theme .icon-tile:hover{color:var(--bg)}@media (max-width:720px){.layout{grid-template-columns:minmax(0,1fr)}.layout.has-active .sidebar,.layout:not(.has-active) .chat-view{display:none}.sidebar{border-right:none}.mobile-only{display:inline-grid}.bubble{max-width:85%}}@media (pointer:coarse){input,textarea,select{font-size:16px}}
