.chat-panel{position:fixed;display:flex;flex-direction:column;width:min(380px,calc(100vw - 24px));z-index:120}
.chat-panel[hidden]{display:none}
.chat-panel.is-full{inset:0;top:0!important;right:0!important;width:auto;border:0;border-radius:0;z-index:1000}
.chat-head{display:flex;align-items:center;gap:4px;padding:9px 10px 9px 14px;border-bottom:1px solid var(--outline-subtle);font-size:13px}
.chat-head strong{flex:1}
.chat-head-btn{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;color:var(--prose-3);font-size:18px;line-height:1}
.chat-head-btn:hover{background:var(--surface-raised);color:var(--prose)}
.is-full .chat-list{flex:1;height:auto}
.is-full .chat-list-inner,.is-full .chat-composer,.is-full .chat-error{width:min(860px,100%);margin:0 auto}
.is-full .chat-message{font-size:14.5px;padding:3px 20px}
.is-full .chat-avatar img{width:38px;height:38px}
.is-full .chat-avatar--spacer{width:38px}
.is-full .chat-composer{padding:0 12px 14px}
.is-full .chat-form{border:1px solid var(--outline);border-radius:12px;background:var(--surface-raised);padding:6px}
.is-full .chat-form textarea{border:0;background:transparent}
.chat-list{min-height:0;flex-shrink:1;overflow-x:hidden;height:min(60vh,460px);overflow-y:auto;overscroll-behavior:contain;padding:8px 0}
.chat-message{position:relative;padding:5px 14px;font-size:13px;line-height:1.55;transition:background .4s}
.chat-message.is-grouped{padding-top:0}
.chat-message.is-flash{background:#8f63e833}
.chat-row{display:flex;gap:9px}
.chat-avatar--spacer{flex:none;width:26px;text-align:right}
.chat-avatar--spacer time{display:none;color:var(--prose-3);font-size:9px;line-height:2.2}
.chat-message:hover .chat-avatar--spacer time{display:block}
.chat-reply-ref{display:flex;gap:5px;align-items:baseline;max-width:100%;margin:0 0 2px 14px;color:var(--prose-3);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none;text-align:left}
.chat-reply-ref b{color:var(--prose-2,var(--prose));font-weight:600}
.chat-reply-ref:hover{color:var(--prose)}
.chat-actions{position:absolute;top:-10px;right:10px;display:none;gap:1px;padding:2px;border:1px solid var(--outline);border-radius:8px;background:var(--site-bg);box-shadow:0 4px 14px #0002}
.chat-message:hover .chat-actions,.chat-actions:focus-within{display:flex}
.chat-actions button{width:26px;height:24px;border-radius:6px;color:var(--prose-3);font-size:13px}
.chat-actions button:hover{background:var(--surface-raised);color:var(--prose)}
.chat-edited{color:var(--prose-3);font-size:10px}
.chat-edit textarea{width:100%;padding:6px 9px;border:1px solid var(--outline);border-radius:8px;background:var(--surface-raised);color:var(--prose);font:inherit;text-transform:none;resize:none}
.chat-edit small{color:var(--prose-3);font-size:10px}
.broadcast-roll{display:inline-flex;align-items:center;gap:5px;vertical-align:middle;padding:2px 3px 2px 2px;border-radius:9px;border:1.5px solid color-mix(in srgb,var(--accent,#7c5cff) 70%,transparent);background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--accent,#7c5cff) 14%,transparent) 0 6px,transparent 6px 12px);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent,#7c5cff) 20%,transparent) inset}
.broadcast-roll-stamp{display:inline-flex;align-items:center;gap:3px;padding:2px 5px;border-radius:6px;background:var(--accent,#7c5cff);color:#fff;font:800 9px/1 system-ui,sans-serif;letter-spacing:.08em}
.broadcast-roll-stamp svg{width:11px;height:11px;fill:currentColor}
.chat-message:hover{background:var(--surface-raised)}
.chat-avatar img{width:26px;height:26px;border-radius:50%;margin-top:2px;background:var(--surface-raised)}
.chat-body{min-width:0;flex:1}
.chat-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px}
.chat-meta>a{font-weight:600}
.chat-meta>a:hover{text-decoration:underline}
.chat-meta time{color:var(--prose-3);font-size:10px}
.chat-panel,.chat-text,.chat-meta>a{text-transform:none}
.chat-text{overflow-wrap:anywhere;white-space:pre-wrap}
.chat-form{display:flex;gap:6px;padding:10px;border-top:1px solid var(--outline-subtle)}
.chat-form textarea{resize:none;overflow-y:hidden;line-height:1.4;font-family:inherit;text-transform:none;flex:1;min-width:0;padding:8px 11px;border:1px solid var(--outline);border-radius:8px;background:var(--surface-raised);color:var(--prose);font-size:13px}
.chat-form .chat-send,.chat-plus{flex:none;width:34px;align-self:flex-end;height:34px;border-radius:8px;background:var(--prose);color:var(--site-bg);font-weight:700}
.chat-form button:disabled{opacity:.35}
.chat-error{padding:6px 14px 0;color:var(--status-danger,#ef6464);font-size:11px}
.chat-signin{padding:14px;border-top:1px solid var(--outline-subtle);text-align:center;color:var(--prose-3);font-size:12px}
.chat-gift{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin-top:5px;padding:9px 11px;border:1px solid #c6adff66;border-radius:9px;background:linear-gradient(135deg,#c6adff1f,#ba8aff0d)}
.chat-gift strong{font-size:13px}
.chat-gift strong span{color:#b48cff}
.chat-gift small{color:var(--prose-3);font-size:11px;flex:1}
.chat-gift button{padding:5px 10px;border-radius:7px;background:#8f63e8;color:#fff;font-size:11px;font-weight:700}
.chat-gift button:disabled{opacity:.5}
.chat-gift-joined{font-size:11px;font-weight:700;color:#8f63e8}
.chat-gift.is-settled{border-color:var(--outline-subtle);background:var(--surface-raised)}
.chat-composer{position:relative;z-index:3}
.chat-list{isolation:isolate;position:relative;z-index:1}
.chat-plus{background:var(--surface-raised)!important;color:var(--prose)!important;font-size:20px;font-weight:400!important}
.chat-plus.is-open{transform:rotate(45deg)}
.chat-plus-menu,.chat-picker{position:absolute;bottom:calc(100% + 6px);left:12px;z-index:5;width:min(300px,calc(100% - 24px));padding:5px;border:1px solid var(--outline);border-radius:10px;background:var(--site-bg);box-shadow:0 10px 30px #0004;text-transform:none}
.chat-plus-menu button{display:flex;gap:10px;align-items:center;width:100%;padding:7px 9px;border-radius:7px;font-size:13px;text-transform:none;text-align:left}
.chat-plus-menu button span{width:18px;text-align:center;color:var(--prose-3)}
.chat-plus-menu button:hover,.chat-picker-items button:hover{background:var(--surface-raised)}
.chat-picker{display:flex;gap:5px}
.chat-picker--list{flex-direction:column}
.chat-picker input{flex:1;min-width:0;padding:7px 9px;border:1px solid var(--outline);border-radius:7px;background:var(--surface-raised);color:var(--prose);font-size:13px;text-transform:none}
.chat-picker>button{padding:0 10px;border-radius:7px;background:var(--prose);color:var(--site-bg);font-size:12px;font-weight:700;text-transform:none}
.chat-picker>button:disabled{opacity:.35}
.chat-picker-items{max-height:260px;overflow-y:auto}
.chat-picker-items button{display:flex;justify-content:space-between;gap:8px;width:100%;padding:6px 9px;border-radius:7px;font-size:13px;text-transform:none;text-align:left;overflow-wrap:anywhere}
.chat-picker-items small,.chat-picker-empty{color:var(--prose-3);font-size:11px}
.chat-picker-empty{padding:8px}
.chat-replying{display:flex;justify-content:space-between;align-items:center;padding:6px 12px 0;color:var(--prose-3);font-size:11px}
.chat-replying b{color:var(--prose)}
.chat-poll-builder{margin:8px 0 0;padding:10px;border:1px solid var(--outline);border-radius:10px;display:flex;flex-direction:column;gap:6px}
.chat-poll-head{display:flex;gap:8px;align-items:baseline;font-size:13px}
.chat-poll-head small{flex:1;color:var(--prose-3);font-size:11px}
.chat-poll-option{display:flex;gap:4px}
.chat-poll-option input,.chat-poll-foot select{flex:1;padding:6px 9px;border:1px solid var(--outline);border-radius:7px;background:var(--surface-raised);color:var(--prose);font-size:13px;text-transform:none}
.chat-poll-foot{display:flex;gap:6px}
.chat-poll-foot button{padding:5px 10px;border-radius:7px;background:var(--surface-raised);font-size:12px;text-transform:none}
.chat-poll-foot select{flex:none}
.chat-message.is-highlighted{background:#e6b34b18;box-shadow:inset 3px 0 #d8aa45}
.chat-message.is-highlighted:hover{background:#e6b34b28}
.chat-global{font-size:10px;color:var(--prose-3);border:1px solid var(--outline);border-radius:4px;padding:0 4px}
.chat-reactions{position:relative;display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:3px;min-height:0}
.chat-reaction{display:inline-flex;align-items:center;gap:5px;padding:1px 7px;border:1px solid var(--outline);border-radius:7px;background:var(--surface-raised);font-size:13px;line-height:22px}
.chat-reaction-wrap{position:relative;display:inline-flex}
.chat-reaction-who{position:absolute;left:0;bottom:calc(100% + 6px);z-index:30;display:none;flex-direction:column;gap:1px;min-width:120px;max-width:220px;max-height:200px;overflow:auto;padding:7px 9px;border:1px solid var(--outline);border-radius:9px;background:var(--surface-raised,#1b1b22);box-shadow:0 8px 24px #0006;font-size:12px;line-height:17px;color:var(--prose);white-space:nowrap;pointer-events:none}
.chat-reaction-who>span:not(.chat-reaction-who-emoji){overflow:hidden;text-overflow:ellipsis}
.chat-reaction-who-emoji{font-size:16px;margin-bottom:2px}.chat-reaction-who em{font-style:normal;opacity:.65}
.chat-reaction-wrap:hover .chat-reaction-who,.chat-reaction-wrap:focus-within .chat-reaction-who{display:flex}
.chat-reaction b{font-size:11px;font-weight:500}.chat-reaction.is-mine{border-color:#8c78df;background:#8c78df28;color:var(--prose)}
.chat-react-wrap{position:relative;display:inline-flex}
.chat-actions:has(.chat-emoji-picker){display:flex}
.chat-emoji-picker{position:absolute;top:calc(100% + 4px);right:0;z-index:8;display:grid;grid-template-columns:repeat(6,32px);padding:6px;border:1px solid var(--outline);border-radius:10px;background:var(--site-bg);box-shadow:0 6px 22px #0003}
.chat-emoji-picker button{font-size:20px;width:32px;height:32px;border-radius:5px}.chat-emoji-picker button:hover{background:var(--surface-raised)}
.chat-message:has(.chat-emoji-picker){z-index:4}
.chat-message:last-child .chat-emoji-picker,.chat-message:nth-last-child(2) .chat-emoji-picker{top:auto;bottom:calc(100% + 4px)}
@media(hover:none){.chat-actions{position:static;display:flex;align-self:flex-start;flex-wrap:wrap;max-width:56px;box-shadow:none}}
/* Channels */
.chat-channel{position:relative;flex:1;min-width:0}
.chat-channel-btn{position:relative;display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 8px 4px 6px;margin-left:-6px;border-radius:7px;font-size:13px;text-transform:none}
.chat-channel-btn b{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-channel-btn svg{flex:none;color:var(--prose-3);transition:transform .15s}
.chat-channel-btn[aria-expanded=true] svg{transform:rotate(180deg)}
.chat-channel-btn:hover,.chat-channel-btn[aria-expanded=true]{background:var(--surface-raised)}
.chat-hash{color:var(--prose-3);font-weight:500}
.chat-channel-dot{width:7px;height:7px;border-radius:50%;background:var(--color-red-500,#ef4444);flex:none}
.chat-channel-btn .chat-channel-dot{position:absolute;top:3px;right:-2px}
.chat-channel-menu{position:absolute;top:calc(100% + 6px);left:-6px;z-index:10;width:min(260px,calc(100vw - 40px));padding:5px;border:1px solid var(--outline);border-radius:11px;background:var(--site-bg);box-shadow:0 14px 40px #0005;text-transform:none;animation:mobile-nav-in .14s ease-out}
.chat-channel-list{max-height:min(320px,50vh);overflow-y:auto;scrollbar-width:thin}
.chat-channel-list button{display:flex;align-items:center;gap:6px;width:100%;padding:7px 9px;border-radius:7px;font-size:13px;text-align:left;text-transform:none;color:var(--prose-2)}
.chat-channel-list button:hover,.chat-channel-list button.is-current{background:var(--surface-raised);color:var(--prose)}
.chat-channel-list button.is-current .chat-channel-name{font-weight:650}
.chat-channel-list button.is-pinned-end{margin-bottom:5px;position:relative}
.chat-channel-list button.is-pinned-end::after{content:'';position:absolute;left:8px;right:8px;bottom:-3px;height:1px;background:var(--outline-subtle)}
.chat-channel-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-channel-list small{color:var(--prose-3);font-size:10px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-channel-new{width:100%;margin-top:4px;padding:7px 9px;border-top:1px solid var(--outline-subtle);border-radius:0 0 7px 7px;font-size:12px;color:var(--prose-3);text-align:left;text-transform:none}
.chat-channel-new:hover{color:var(--prose)}
.chat-channel-create{display:flex;align-items:center;gap:5px;margin-top:4px;padding:6px 4px 2px 9px;border-top:1px solid var(--outline-subtle)}
.chat-channel-create input{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--outline);border-radius:7px;background:var(--surface-raised);color:var(--prose);font-size:13px;text-transform:none}
.chat-channel-create button{padding:6px 10px;border-radius:7px;background:var(--prose);color:var(--site-bg);font-size:12px;font-weight:700;text-transform:none}
.chat-channel-create button:disabled{opacity:.35}

/* phones: the chat panel spans the screen width and never runs past the bottom */
@media(max-width:640px){
  .chat-panel:not(.is-full){left:8px!important;right:8px!important;width:auto;max-height:calc(100dvh - var(--chat-top,64px) - 8px)}
  .chat-panel:not(.is-full){bottom:8px;height:auto}
  .chat-panel:not(.is-full) .chat-list{height:auto;flex:1;min-height:0}
  /* 16px inputs stop iOS zooming in; bigger tap targets for actions. */
  .chat-panel input,.chat-panel textarea{font-size:16px!important}
  .chat-head-btn{min-width:36px;min-height:36px}
  .chat-actions button{min-width:32px;min-height:32px}
  .chat-emoji-picker{grid-template-columns:repeat(6,30px)}
  .chat-reaction-who{max-width:min(220px,70vw)}
}
.chat-emoji-picker--portal{position:fixed!important;bottom:auto!important;right:auto!important;z-index:2147483001;display:grid;grid-template-columns:repeat(6,1fr);height:110px;box-sizing:border-box;box-shadow:0 8px 32px #0008}
.chat-mention-notices{position:fixed;right:16px;top:70px;width:min(330px,calc(100vw - 32px));display:grid;gap:8px;z-index:2147482999;pointer-events:none;text-transform:none}.chat-mention-notices section{pointer-events:auto;padding:12px 30px 12px 14px;background:var(--surface,#16171b);color:var(--prose,#fff);border:1px solid var(--outline,#444);border-left:3px solid #ff6677;border-radius:9px;box-shadow:0 8px 30px #0005;font-size:12px;position:relative}.chat-mention-notices section>div{margin-top:5px;max-height:100px;overflow:auto;overflow-wrap:anywhere}.chat-mention-notices button{position:absolute;right:9px;top:5px;font-size:20px}.chat-mention-notices:has(~*){isolation:isolate}
body:has(.chat-panel:not([hidden]):not(.is-full)) .chat-mention-notices{top:min(590px,calc(100vh - 170px))}
.broadcast-text strong{font-weight:800}.broadcast-text em{font-style:italic}.broadcast-text u{text-decoration:underline;text-underline-offset:3px}.broadcast-text s{text-decoration:line-through}.broadcast-text code{font-family:monospace;background:#8882;padding:1px 4px;border-radius:3px}.chat-spoiler{color:transparent;background:#8885;border-radius:3px;cursor:pointer}.chat-spoiler:hover,.chat-spoiler:focus{color:inherit;background:#8882}.chat-plus-menu{max-height:min(330px,55vh);overflow-y:auto}
.chat-channel-link{display:inline;padding:0 3px;border-radius:4px;color:#a9c7ff;background:#779dff18;font:inherit;font-weight:650;text-transform:none;cursor:pointer}.chat-channel-link:hover,.chat-channel-link:focus-visible{background:#779dff35;text-decoration:underline}

.chat-message:focus-within .chat-actions{opacity:1;pointer-events:auto}.chat-emoji-picker--portal{z-index:2147483000;pointer-events:auto;touch-action:manipulation}.chat-image{display:block;max-width:100%;max-height:320px;object-fit:contain;border-radius:8px}.chat-timeout-controls{display:flex;gap:4px;align-items:center}.chat-timeout-controls input{width:65px}
.timeout-backdrop{position:fixed;inset:0;z-index:2147483100;background:#0007;display:grid;place-items:center;padding:20px;backdrop-filter:blur(3px)}.timeout-dialog{width:min(340px,100%);border:1px solid var(--outline,#45434d);border-radius:14px;background:var(--site-bg,#17171c);color:var(--prose,#eee);box-shadow:0 18px 65px #0008;text-transform:none;font:14px system-ui;padding:18px}.timeout-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.timeout-dialog header>button{font-size:23px;color:var(--prose-3);padding:0 4px}.timeout-dialog label{display:block;font-size:12px;color:var(--prose-2)}.timeout-dialog label>div{display:flex;align-items:center;gap:12px;margin-top:7px;border:1px solid var(--outline);border-radius:8px;padding:10px;background:var(--surface-raised)}.timeout-dialog input{width:100%;min-width:0;background:none;border:0;color:var(--prose);font-size:18px;outline:none}.timeout-dialog small{display:block;margin-top:8px;color:var(--prose-3);font-size:11px}.timeout-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.timeout-dialog footer button{padding:9px 13px;border:1px solid var(--outline);border-radius:8px;font-size:12px}.timeout-dialog footer button[type=submit]{background:#de5365;color:white;border-color:#de5365;font-weight:650}.timeout-dialog p{margin:12px 0 0;font-size:12px;overflow-wrap:anywhere}.chat-actions:has(button[aria-expanded=true]){display:flex}.chat-message:focus-within .chat-actions{display:flex}

.chat-emote{display:inline-block;width:1.6em;height:1.6em;vertical-align:-.45em;margin:0 1px;object-fit:contain}
.broadcast-audio{display:inline-flex;align-items:center;gap:5px;padding:1px 9px;margin:0 3px;border:1px solid #8b9ee055;border-radius:99px;background:#8b9ee018;font-size:.85em;vertical-align:middle}
.chat-gift.is-negative{border-color:#ff5d7a88;background:linear-gradient(135deg,#ff5d7a1c,transparent)}.chat-gift.is-negative strong{color:#ff7d94}.chat-gift.is-zero{filter:grayscale(1)}

.chat-bot-tag{display:inline-flex;align-items:center;font-size:10px;font-weight:600;line-height:1;padding:3px 5px;border-radius:3px;background:#8b9cff22;color:#b7c3ff;border:1px solid #8b9cff44;vertical-align:middle}
.chat-channel-own{display:flex;gap:4px}.chat-channel-own .chat-channel-new:first-child{flex:1}.chat-channel-new.is-danger{color:#ff6b6b;flex:0 0 auto}

/* Drop gifts <g:N;t-T> */
.chat-drop.is-waiting{border-style:dashed}
.chat-drop.is-waiting strong span{display:inline-block;animation:drop-wiggle 1.6s ease-in-out infinite}
.chat-drop.is-open{border-color:#ffd166;box-shadow:0 0 0 1px #ffd16655,0 0 18px #ffd16633;animation:drop-pulse 1s ease-in-out infinite}
.chat-drop.is-open button{background:#f5b40a;color:#2a1a00}
@keyframes drop-wiggle{0%,70%,100%{transform:rotate(0)}75%{transform:rotate(-12deg)}85%{transform:rotate(12deg)}}
@keyframes drop-pulse{50%{box-shadow:0 0 0 1px #ffd16699,0 0 26px #ffd16655}}

/* Live caster */
.chat-caster{color:#ffd166;font-weight:800;letter-spacing:.02em}
.chat-avatar--caster{display:flex;align-items:center;justify-content:center;border-radius:50%;background:radial-gradient(circle,#ffd16655,#ff8fab33);font-size:16px}

/* Popcorn */
.popcorn-stand{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:10px}
.popcorn-stand button{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:linear-gradient(180deg,#fff3c4,#ffd166);color:#5a2a00;font-weight:800;font-size:13px;box-shadow:0 2px 0 #c4861b,0 0 16px #ffd16644}
.popcorn-stand button small{font-weight:600;opacity:.7;font-size:10px}
.popcorn-stand>small{color:var(--prose-3);font-size:11px}.popcorn-stand code{font-size:10px;padding:0 3px;border-radius:3px;background:#ffffff14}
.popcorn-icon{display:inline-block;animation:popcorn-hop .5s ease-out}
.popcorn-error{color:#ff8a8a!important}
.popcorn-bucket{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:5px;padding:7px 10px;border:1px dashed #ffd16688;border-radius:9px;background:repeating-linear-gradient(90deg,#ff5d5d1a 0 10px,#fff3c40f 10px 20px)}
.popcorn-bucket small{color:var(--prose-3);font-size:11px}
.popcorn-bucket button{padding:4px 10px;border-radius:7px;background:#ffd166;color:#4a2400;font-size:11px;font-weight:800}
.popcorn-bucket.is-empty{opacity:.6}
.popcorn-bucket-icon{position:relative;font-size:20px;animation:popcorn-wobble 2.2s ease-in-out infinite}
.popcorn-burst{position:absolute;left:50%;top:40%}
.popcorn-burst b{position:absolute;width:6px;height:6px;border-radius:40%;background:#fff6dc;box-shadow:0 0 3px #ffd166;animation:popcorn-fly .7s cubic-bezier(.2,.7,.4,1) forwards;rotate:var(--a)}
.popcorn-took{color:#ffd166!important}
@keyframes popcorn-hop{0%{transform:translateY(0)}40%{transform:translateY(-6px) rotate(-10deg)}100%{transform:none}}
@keyframes popcorn-wobble{0%,80%,100%{transform:rotate(0)}85%{transform:rotate(-8deg)}92%{transform:rotate(8deg)}}
@keyframes popcorn-fly{to{transform:translateY(-26px);opacity:0}}

/* A <g:N;t-T> drop appearing in the chat. */
.chat-message.is-dropped .chat-drop.is-open{animation:chat-drop-in .7s cubic-bezier(.2,1.6,.4,1) both}
@keyframes chat-drop-in{from{transform:translateY(-14px) scale(.85);opacity:0}to{transform:none;opacity:1}}

/* <popcorn>: a bouncing bucket with kernels popping out of it. */
.popcorn-munch{display:inline-flex;align-items:center;gap:8px;margin-top:4px;padding:3px 10px 3px 6px;border-radius:999px;background:#ffd16614;border:1px solid #ffd16633}
.popcorn-munch em{color:#ffd98a;font-size:12.5px}
.popcorn-munch-icon{position:relative;font-size:18px;display:inline-block;animation:popcorn-chomp .32s ease-in-out 5 alternate}
.popcorn-munch-icon i{position:absolute;left:50%;top:30%;width:6px;height:6px;margin-left:-3px;border-radius:50% 45% 55% 40%;background:#fff6d8;box-shadow:inset -1px -1px 0 #f2c14e;opacity:0;animation:popcorn-kernel .9s cubic-bezier(.2,.7,.4,1) var(--d) 2 both}
.popcorn-munch.is-toss .popcorn-munch-icon i{animation-duration:1.4s;animation-iteration-count:1}
@keyframes popcorn-chomp{from{transform:scale(1) rotate(-6deg)}to{transform:scale(1.15,.9) rotate(6deg)}}
@keyframes popcorn-kernel{0%{opacity:1;transform:translate(0,0) scale(.4)}45%{opacity:1;transform:translate(calc(var(--dx)*.6),var(--dy)) scale(1) rotate(160deg)}100%{opacity:0;transform:translate(var(--dx),14px) scale(.8) rotate(320deg)}}
@media (prefers-reduced-motion:reduce){.popcorn-munch-icon,.popcorn-munch-icon i{animation:none}}

/* Mira, the tournament host, answering an @mira ping. */
.is-full .chat-avatar--mira{width:38px;height:38px;min-width:38px;font-size:20px}
.chat-avatar--mira{display:grid;place-items:center;flex:none;width:26px;height:26px;min-width:26px;aspect-ratio:1;margin-top:2px;line-height:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff7d6,#c89bff 55%,#6b4bd6);color:#fff;font-size:15px;box-shadow:0 0 12px #b48cff66}
.chat-mira{color:#d9c2ff}
.stream-alerts{position:fixed;right:16px;top:72px;z-index:250;display:grid;gap:8px;width:min(330px,calc(100vw - 24px));pointer-events:none}.stream-alerts section{pointer-events:auto;background:#161d30;color:#eef2ff;border:1px solid #5c6080;border-radius:12px;padding:16px 32px 14px 15px;box-shadow:0 8px 24px #0005;font-size:13px}.stream-alerts section>button{position:absolute;right:10px;background:none;border:0;color:#aaa;font-size:20px}.stream-alerts a{display:block;color:#b9a1ff;margin-top:10px;font-weight:700}.custom-reaction{width:23px;height:23px;object-fit:contain;vertical-align:middle}.chat-emoji-picker{max-height:220px;overflow:auto}
@media(pointer:coarse){.chat-message .chat-actions{display:none!important}.chat-message[data-actions] .chat-actions{display:flex!important;position:relative;right:auto;top:auto;flex-wrap:wrap;justify-content:flex-end;background:var(--surface-raised,#242237);border-radius:10px;padding:4px;margin-left:auto}.chat-message[data-actions] .chat-row{flex-wrap:wrap}.chat-actions button{min-width:38px;min-height:38px}.chat-message{touch-action:pan-y;-webkit-touch-callout:none}.chat-reactions{gap:5px}.chat-reaction{min-height:31px}.chat-reply-ref{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-emoji-picker--portal{grid-template-columns:repeat(7,1fr)}.chat-emoji-picker--portal button{min-height:36px}}
/* Swipe right to reply: the message follows the finger, an arrow fills in. */
.chat-message[data-swiping]{position:relative;overflow:visible}
.chat-message[data-swiping]>.chat-row{transform:translateX(var(--swipe,0));transition:none}
.chat-message>.chat-row{transition:transform .18s ease}
.chat-swipe-reply{position:absolute;left:6px;top:50%;translate:0 -50%;font-size:18px;color:var(--accent,#9b8cff);pointer-events:none}
.chat-message[data-swiping=armed] .chat-swipe-reply{opacity:1;scale:1.15}
.chat-pin-icon{display:block;width:1em;height:1em}
.chat-head-btn .chat-pin-icon{width:16px;height:16px}
.chat-head-btn[aria-pressed="true"]{color:var(--prose);background:var(--surface-raised)}
