:root{--bg:#efede6;--surface:#fff;--fg:#111;--muted:#55534d;--rule:#d3d0c6;--dash:#c8c5bb;--missed:#a5a29a;--brand:#d3402f;--brand-fg:#fff;--line:#111;--cell:#fff;--block:#111;--slot:#dbe9f6;--selected:#ffd166;--accent:#111;--accent-fg:#fff;--right:#2a9d8f;--wrong:#e63946;--revealed:#7b2cbf;--key:#e3e0d7;--radius:6px;--font-body:"Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Newsreader", Georgia, "Times New Roman", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--font-body);-webkit-text-size-adjust:100%}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#161513;--surface:#201f1c;--fg:#ece9e1;--muted:#a19d93;--rule:#34322d;--dash:#46433c;--missed:#5c5951;--brand:#ef5a45;--brand-fg:#161513;--line:#0b0b0a;--cell:#f1efe9;--block:#0b0b0a;--slot:#a9c7e8;--selected:#ffd166;--accent:#ece9e1;--accent-fg:#161513;--key:#2c2a26}.cell{color:#111}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;margin:0}button{font:inherit;color:inherit;cursor:pointer}input{font:inherit}h1,h2,p{margin:0}h1,.modal h2,.brand,.ticket-head h2{font-family:var(--font-display);letter-spacing:-.01em;font-weight:500}.muted{color:var(--muted)}.error{color:var(--wrong);text-align:center}.btn{border-radius:var(--radius);background:var(--accent);color:var(--accent-fg);touch-action:manipulation;border:0;min-height:44px;padding:12px 18px;font-weight:600}.btn:disabled{opacity:.5;cursor:default}.btn-ghost{color:var(--fg);background:0 0;box-shadow:inset 0 0 0 1.5px}.btn-small{min-height:36px;padding:6px 12px;font-size:.875rem}.btn-block{width:100%}.icon-btn{background:0 0;border:0;border-radius:50%;width:40px;height:40px;font-size:1.4rem}.link{color:var(--accent);background:0 0;border:0;padding:8px;text-decoration:underline}.progress{background:var(--key);border-radius:3px;height:6px;display:block;overflow:hidden}.progress span{height:100%;transition:width .2s;display:block}.page{max-width:560px;padding:max(16px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:14px;margin:0 auto;display:flex}.text-input{border-radius:var(--radius);border:1.5px solid var(--muted);background:var(--surface);color:var(--fg);padding:12px;font-size:16px}.home{max-width:1120px;min-height:100%;padding:max(16px, env(safe-area-inset-top)) 18px max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:22px;margin:0 auto;display:flex}.home a{color:inherit;text-decoration:none}.home a:hover{text-decoration:underline}.home-bar{align-items:center;gap:16px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:8px;margin-right:auto;font-size:1.25rem;font-style:italic;display:inline-flex}.swords{color:var(--brand);flex-shrink:0}.home-nav{gap:24px;font-size:.95rem;display:none}.name-chip{border:1px solid var(--rule);background:var(--surface);border-radius:22px;flex-shrink:0;align-items:center;gap:10px;max-width:50%;height:44px;padding:0 5px 0 14px;font-size:.875rem;display:inline-flex}.name-chip-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar{background:var(--accent);width:32px;height:32px;color:var(--accent-fg);border-radius:50%;flex-shrink:0;place-items:center;font-weight:600;display:grid}.home-body{flex:1;grid-template-columns:minmax(0,1fr);grid-template-areas:"intro""tickets""join";align-content:start;gap:22px;display:grid}.home-foot{border-top:1px solid var(--rule);justify-content:space-between;gap:16px;padding-top:14px;font-size:.875rem;display:flex}.home-foot a{min-height:32px}.home-intro{flex-direction:column;grid-area:intro;gap:12px;display:flex}.home-intro h1{letter-spacing:-.03em;font-size:2.625rem;line-height:1}.week{gap:6px;margin:0 0 4px;padding:0;list-style:none;display:flex}.week li{width:34px;color:var(--muted);flex-direction:column;align-items:center;gap:4px;font-size:.6875rem;display:flex}.week-dot{border:1.5px solid var(--missed);border-radius:50%;width:10px;height:10px}.week .future .week-dot{opacity:.4}.week .solved .week-dot{border-color:var(--brand);background:var(--brand)}.week .today{color:var(--fg);font-weight:600}.week .today .week-dot{border:2px solid var(--brand)}.join{flex-direction:column;grid-area:join;gap:8px;font-size:.8125rem;display:flex}.join .error{text-align:left}.join-row{gap:8px;display:flex}.join input{border:1px solid var(--rule);letter-spacing:.3em;text-transform:uppercase;flex:1;min-width:0;height:48px;padding:0 14px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:18px}.btn-brand{background:var(--brand);color:var(--brand-fg)}.tickets{flex-direction:column;grid-area:tickets;gap:18px;display:flex}.ticket{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);flex-direction:column;display:flex}.ticket-missing{background:0 0;border-style:dashed}.ticket-missing h2{color:var(--muted)}.ticket-head{justify-content:space-between;align-items:baseline;gap:12px;padding:16px 16px 14px;display:flex}.ticket-head h2{letter-spacing:-.02em;font-size:2.125rem;line-height:1}.ticket-status{color:var(--muted);align-items:center;gap:5px;font-size:.75rem;display:inline-flex}.ticket-tear{border-top:2px dashed var(--dash);margin:0 14px}.ticket-note{color:var(--muted);padding:14px 16px 16px;font-size:.875rem;line-height:1.4}.ticket-progress{flex-direction:column;gap:6px;padding:12px 16px 0;font-size:.8125rem;display:flex}.ticket-progress .progress{background:var(--dash);height:4px}.ticket-progress .progress span{background:var(--fg)}.ticket-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px;display:grid}.ticket-actions .btn{border-radius:4px;min-height:48px;padding:0 8px}.ticket-solved{justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.ticket-solved dl{gap:22px;margin:0;display:flex}.ticket-solved dt{color:var(--muted);font-size:.6875rem}.ticket-solved dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.375rem;font-weight:600}.ticket-solved a{align-items:center;min-height:44px;font-size:.875rem;font-weight:500;display:flex}.next-puzzles{flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:.875rem;display:flex}.next-puzzles strong{color:var(--fg);font-weight:600}@media (width>=900px){.home{gap:40px;padding-inline:24px}.home-bar{border-bottom:1px solid var(--rule);padding:4px 0 20px}.brand{font-size:1.5rem}.home-nav{display:flex}.home-body{grid-template:"intro tickets""join tickets"1fr/minmax(260px,340px) minmax(0,1fr);gap:28px 48px}.home-intro{gap:20px}.home-foot{display:none}.home-intro h1{font-size:4rem}.tickets{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-content:start;gap:20px;display:grid}.ticket-head h2{font-size:2.5rem}.next-puzzles{grid-column:1/-1}}.page-header{align-items:center;gap:8px;display:flex}.centered{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100%;padding:24px;display:flex}.tabs{background:var(--surface);border-radius:var(--radius);padding:4px;display:flex}.tabs button{background:0 0;border:0;border-radius:8px;flex:1;padding:10px;font-weight:600}.tabs button.active{background:var(--accent);color:var(--accent-fg)}.leaderboard,.standings{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.leaderboard li,.standings li{background:var(--surface);border-radius:var(--radius);align-items:center;gap:12px;padding:10px 14px;display:flex}.standings li.me{outline:2px solid var(--accent)}.leaderboard .place,.standings .place{min-width:2ch;font-weight:700}.play-options{flex-direction:column;gap:8px;display:flex}.archive-month h2{margin-bottom:6px;font-size:1rem}.archive{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.archive-row{background:var(--surface);width:100%;color:var(--fg);border-radius:var(--radius);text-align:left;border:0;border-left:4px solid #0000;align-items:center;gap:12px;padding:10px 14px;display:flex}.archive-row.solved{border-left-color:var(--right)}.archive-row.started{border-left-color:var(--selected)}.archive-date{flex:none;min-width:6.5ch;font-weight:600}.archive-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.archive-status{font-variant-numeric:tabular-nums;flex:none;font-weight:600}.archive-mode{text-transform:uppercase;letter-spacing:.04em;margin-right:6px;font-size:.75rem;font-weight:600}.archive-row.solved .archive-status{color:var(--right)}.player-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.time{font-variant-numeric:tabular-nums;font-weight:600}.elo{font-variant-numeric:tabular-nums;font-size:.85rem}.elo.up{color:var(--right)}.elo.down{color:var(--wrong)}.play{height:100dvh;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.play-header{flex:none;align-items:center;gap:8px;padding:6px 8px;display:flex}.header-title{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.header-title .title{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.header-title .subtitle{color:var(--muted);font-size:.8rem}.timer{font-variant-numeric:tabular-nums;font-weight:600}.play-body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.play-hidden{flex-direction:column;flex:1;min-height:0;transition:filter .2s;display:flex}.is-paused .play-hidden{filter:blur(14px);pointer-events:none}.pause-overlay{text-align:center;background:color-mix(in srgb, var(--bg) 40%, transparent);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;font-weight:600;display:flex;position:absolute;inset:0}.timer-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.timer-btn:hover:not(:disabled){background:var(--slot);color:#14213d}.timer-btn .timer-icon{font-size:.75em}.play-main{flex:1;min-height:0;display:flex}.board-area{flex:1;justify-content:center;align-items:center;min-width:0;min-height:0;padding:4px;display:flex;position:relative;container-type:size}.board{--size:min(100cqw, 100cqh);--cell-size:calc(var(--size) / var(--w));width:var(--size);height:calc(var(--cell-size) * var(--h));grid-template-columns:repeat(var(--w), 1fr);grid-template-rows:repeat(var(--h), 1fr);background:var(--line);border:2px solid var(--line);touch-action:manipulation;border-radius:4px;gap:1px;display:grid;position:relative}.cell{background:var(--cell);color:#14213d;font-size:calc(var(--cell-size) * .58);cursor:pointer;justify-content:center;align-items:center;font-weight:600;line-height:1;display:flex;position:relative}.cell.block{background:var(--block);cursor:default}.cell.in-slot{background:var(--slot)}.cell.selected{background:var(--selected)}.cell .num{font-size:calc(var(--cell-size) * .27);font-weight:500;position:absolute;top:1px;left:2px}.cell .letter{margin-top:calc(var(--cell-size) * .12);transition:color .8s}.cell:not(.block):after{content:"";pointer-events:none;background:linear-gradient(to top right, transparent 47%, var(--wrong) 48%, var(--wrong) 52%, transparent 53%);opacity:0;transition:opacity .8s;position:absolute;inset:0}.cell.mark-wrong .letter,.cell.mark-right .letter,.cell.mark-wrong:after{transition:none}.cell.mark-wrong .letter{color:var(--wrong)}.cell.mark-wrong:after{opacity:.6}.cell.mark-right .letter{color:var(--right)}.cell.mark-revealed .letter{color:var(--revealed)}.cell.mark-revealed:before{content:"";border-style:solid;border-width:0 calc(var(--cell-size) * .25) calc(var(--cell-size) * .25) 0;border-color:transparent var(--revealed) transparent transparent;position:absolute;top:0;right:0}.cell[data-remote]{box-shadow:inset 0 0 0 3px var(--remote)}.board-overlay{text-align:center;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;font-weight:600;display:flex;position:absolute;inset:0}.concealed{filter:blur(6px);-webkit-user-select:none;user-select:none}.countdown{font-size:5rem;font-weight:800}.cluebar{background:var(--slot);color:#14213d;flex:none;align-items:stretch;min-height:56px;display:flex}.cluebar-nav{background:0 0;border:0;width:44px;font-size:1.8rem}.cluebar-text{text-align:left;background:0 0;border:0;flex:1;padding:8px 4px;font-size:1rem;line-height:1.3}.keyboard{padding:6px 3px calc(6px + env(safe-area-inset-bottom));background:var(--bg);flex-direction:column;flex:none;gap:6px;display:flex}.is-paused .keyboard{opacity:.4}.kb-row{justify-content:center;gap:5px;display:flex}.key{background:var(--key);touch-action:manipulation;border:0;border-radius:6px;flex:1 1 0;max-width:46px;height:clamp(40px,6.5dvh,54px);font-size:1.15rem;font-weight:600}.key:active{filter:brightness(.85)}.key-wide{flex-grow:1.6;max-width:72px}.puzzle-notes{border-radius:var(--radius);background:var(--slot);color:#14213d;flex:none;align-items:flex-start;gap:8px;margin:0 8px 6px;padding:6px 6px 6px 10px;font-size:.9rem;line-height:1.35;display:flex}.puzzle-notes p{flex:1;margin:0}.puzzle-notes-close{color:inherit;background:0 0;border:0;flex:none;padding:0 4px;font-size:1.2rem;line-height:1}.cluelists{display:none}@media (pointer:fine){.keyboard{display:none}}@media (width>=900px){.play{padding:12px 16px}.play-main{gap:16px}.cluelists{grid-template-columns:1fr 1fr;gap:12px;width:min(44vw,560px);display:grid;overflow:hidden}.cluelists section{flex-direction:column;min-height:0;display:flex}.cluelists h2{text-transform:uppercase;letter-spacing:.08em;padding:4px 8px;font-size:.85rem}.cluelists ol{margin:0;padding:0;list-style:none;overflow-y:auto}.cluelists li button{text-align:left;background:0 0;border:0;border-radius:6px;gap:8px;width:100%;padding:6px 8px;line-height:1.3;display:flex}.cluelists li.active button{background:var(--slot);color:#14213d}.cluelists li.done button{color:var(--muted)}.clue-num{min-width:2ch;font-weight:700}.cluebar{border-radius:var(--radius);margin-top:8px}}.players-bar{scrollbar-width:none;flex:none;gap:6px;padding:0 8px 6px;display:flex;overflow-x:auto}.player-chip{background:var(--surface);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;max-width:220px;padding:4px 10px;font-size:.8rem;display:flex}.player-chip.offline{opacity:.5}.dot{background:var(--chip);border-radius:50%;flex:none;width:8px;height:8px}.player-chip .progress{flex:none;width:48px}.player-chip .progress span{background:var(--chip)}.player-chip .place{font-weight:700}.conn{color:var(--wrong);align-self:center;font-size:.8rem}.menu{position:relative}.menu-panel{z-index:28;background:var(--surface);border-radius:var(--radius);flex-direction:column;gap:6px;width:220px;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000002e}.menu-toggle{color:var(--fg);flex:none;justify-content:center;align-items:center;display:flex}.menu-toggle.open{background:var(--key)}.menu-toggle:disabled{opacity:.4;cursor:default}.menu-item{background:var(--key);text-align:left;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;min-height:40px;padding:8px;font-size:.875rem;font-weight:600;display:flex}.menu-group{align-items:center;gap:4px;display:flex}.menu-label{width:52px;font-size:.8rem;font-weight:700}.menu-group button{background:var(--key);border:0;border-radius:6px;flex:1;padding:8px 4px;font-size:.8rem}.menu-note{color:var(--muted);font-size:.75rem}.modal-backdrop{z-index:30;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:100%;max-width:440px;padding:24px 20px calc(20px + env(safe-area-inset-bottom));text-align:center;border-radius:18px 18px 0 0;flex-direction:column;gap:14px;display:flex}@media (width>=600px){.modal-backdrop{align-items:center}.modal{border-radius:18px}}.modal-actions{flex-direction:column;gap:8px;display:flex}.big-time{font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:800}.toast{left:50%;top:calc(64px + env(safe-area-inset-top));z-index:40;background:var(--fg);color:var(--bg);border-radius:999px;padding:10px 16px;font-weight:600;position:fixed;transform:translate(-50%);box-shadow:0 6px 18px #0003}.spinner{border:4px solid var(--key);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.cell .letter,.cell:after,.play-hidden{transition:none}.spinner{animation-duration:3s}.progress span{transition:none}}.qr{border-radius:8px;align-self:center;max-width:100%;height:auto}.room-code{letter-spacing:.2em;font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:800}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.players-row{flex:none;align-items:center;display:flex;container-type:inline-size}.players-row .players-bar{flex:1;min-width:0}.chip-reaction{font-size:.95rem;line-height:1;animation:.25s ease-out pop}@keyframes pop{0%{transform:scale(.4)}}.chat-toggle{color:var(--accent);flex:none;justify-content:center;align-items:center;display:flex;position:relative}.chat-toggle.active{background:var(--accent);color:var(--accent-fg)}.chat-toggle .badge{color:#fff;text-align:center;background:#c1121f;border-radius:9px;min-width:18px;height:18px;padding:0 4px;font-size:.7rem;font-weight:700;line-height:18px;position:absolute;top:-2px;right:-4px}.reaction-tray{flex:none;padding:0 8px 6px 0}.reaction-toggle{background:var(--surface);width:44px;height:32px;color:var(--accent);border:0;border-radius:999px;justify-content:center;align-items:center;display:flex}.reaction-toggle.open{background:var(--accent);color:var(--accent-fg)}.reaction-menu{grid-template-columns:repeat(4,44px);gap:4px;width:auto;display:grid;top:calc(100% - 2px);right:8px}.reaction-btn{touch-action:manipulation;background:0 0;border:0;border-radius:12px;width:44px;height:44px;font-size:1.45rem;line-height:1}.reaction-btn:hover,.reaction-btn:focus-visible{background:var(--key)}.reaction-btn:active{transform:scale(.9)}.reaction-inline{flex:none;gap:2px;padding:0 8px 6px 0;display:flex}.reaction-inline .reaction-btn{border-radius:999px;width:34px;height:32px;font-size:1.15rem}.reaction-tray{display:none}@container (width<=520px){.reaction-inline{gap:0}.reaction-inline .reaction-btn{width:28px;font-size:1rem}}@container (width<=340px){.reaction-inline{display:none}.reaction-tray{display:block}}.reaction-layer{pointer-events:none;z-index:5;position:absolute;inset:0}.floating-reaction{animation:float-up var(--reaction-ms,2.5s) ease-out forwards;font-size:clamp(22px,7cqmin,40px);position:absolute;transform:translate(-50%,-50%)}@keyframes float-up{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}12%{opacity:1;transform:translate(-50%,-80%)scale(1.1)}to{opacity:0;transform:translate(-50%,-400%)scale(1)}}.room-peek{z-index:6;background:var(--fg);color:var(--bg);text-align:left;border:0;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.9rem;animation:.2s ease-out rise;display:flex;position:absolute;bottom:8px;left:8px;right:8px;box-shadow:0 6px 18px #00000038}.room-peek-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.chat-panel{background:var(--surface);color:var(--fg);-webkit-user-select:text;user-select:text;flex-direction:column;display:none}.chat-panel.open{left:0;right:0;bottom:var(--kb-inset,0px);z-index:25;height:min(320px,55dvh);padding-bottom:env(safe-area-inset-bottom);border-radius:18px 18px 0 0;animation:.18s ease-out rise;display:flex;position:fixed;box-shadow:0 -8px 28px #00000038}.chat-head{flex:none;align-items:center;gap:8px;padding:4px 4px 0 14px;display:flex}.chat-title{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.85rem;overflow:hidden}.chat-title strong{color:var(--fg)}.chat-close{color:var(--muted);justify-content:center;align-items:center;display:flex}.chat-muted{color:var(--muted);flex:none;padding:0 14px;font-size:.8rem}.chat-log{overscroll-behavior:contain;flex-direction:column;flex:1;gap:6px;min-height:0;padding:4px 12px 8px;font-size:.95rem;line-height:1.35;display:flex;overflow-y:auto}.chat-log>:first-child{margin-top:auto}.chat-empty,.chat-event{text-align:center;color:var(--muted);align-self:center;font-size:.8rem}.chat-msg{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.chat-msg.mine{align-items:flex-end}.chat-msg.pending{opacity:.6}.chat-name{color:var(--muted);background:0 0;border:0;align-items:center;gap:6px;padding:2px 0 0;font-size:.75rem;font-weight:700;display:flex}.chat-bubble{background:var(--key);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:4px 14px 14px;max-width:85%;padding:6px 11px}.chat-msg.mine .chat-bubble{background:var(--accent);color:var(--accent-fg);border-radius:14px 4px 14px 14px}.chat-emoji{font-size:1.8rem;line-height:1.1}.chat-retry{font-size:.75rem}.clue-ref{background:var(--slot);color:#14213d;font:inherit;border:0;border-radius:4px;padding:0 4px;font-weight:700}.chat-reactions{border-top:1px solid var(--key);flex:none;justify-content:space-between;padding:0 6px;display:flex}.chat-reactions .reaction-btn{flex:1 1 0;width:auto;min-width:0;max-width:48px}.chat-form{flex:none;align-items:center;gap:8px;padding:4px 10px 8px;display:flex}.chat-form input{border:1px solid var(--key);background:var(--bg);min-width:0;height:44px;color:var(--fg);border-radius:22px;flex:1;padding:0 14px;font-size:16px}.chat-send{background:var(--accent);width:44px;height:44px;color:var(--accent-fg);border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.chat-send:disabled{opacity:.45}.chat-hint{color:var(--muted);padding:0 14px 10px;font-size:.75rem;display:none}.chat-hint kbd{font:inherit;border:1px solid var(--key);border-radius:4px;padding:0 5px}@media (pointer:fine){.chat-hint{display:block}}@media (width>=900px){.chat-panel.open{left:auto;right:16px;top:calc(72px + env(safe-area-inset-top));border-radius:14px;width:340px;height:auto;padding-bottom:0;bottom:16px;box-shadow:0 10px 30px #0003}.chat-head{border-bottom:1px solid var(--key);padding:8px 4px 4px 14px}.chat-log{padding-top:10px}}@media (width>=1200px){.chat-panel.open{flex:none;width:320px;animation:none;position:static;box-shadow:0 2px 10px #00000014}}@media (prefers-reduced-motion:reduce){.reaction-layer{display:none}.chip-reaction,.room-peek,.chat-panel.open{animation:none}}.turnstile-box{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:40;position:fixed;transform:translate(-50%)}
