/* MINUTE MADE MAFIA - group chat */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* nav link + unread badge */
.nav__chat{position:relative}
.nav__chat::before{content:"";display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--mute);vertical-align:1px}
.nav__chat.is-member::before{background:var(--red2);box-shadow:0 0 0 0 rgba(224,36,47,.7);animation:chPing 1.6s infinite}
.nav__badge{position:absolute;top:-4px;right:-2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red2);color:#fff;font:700 11px/18px var(--sans);letter-spacing:0;text-align:center;animation:chPop .4s cubic-bezier(.2,1.6,.4,1)}
.nav__badge[hidden]{display:none}

/* page */
.chat-head h1{text-shadow:calc(var(--kick,0) * 6px) 0 rgba(224,36,47,.8),calc(var(--kick,0) * -6px) 0 rgba(212,168,67,.7)}
.chatwrap{max-width:1000px;margin:0 auto 60px;padding:0 var(--pad)}
.chat-door{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:start}
.chat-door__side{padding-top:10px}
.chat-name{max-width:560px}

/* the room */
.chat{position:relative;background:rgba(10,8,8,.82);border:1px solid var(--line);box-shadow:0 0 0 1px rgba(0,0,0,.7),0 30px 80px -30px rgba(224,36,47,.35),inset 0 0 120px rgba(0,0,0,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.chat::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}
.chat::after{content:"";position:absolute;inset:-1px;pointer-events:none;border:1px solid rgba(224,36,47,calc(var(--kick,0) * .9))}
.chat__bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line);font:600 12px var(--cond);letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.chat__bar b{color:var(--paper)}
.chat__live{display:inline-flex;align-items:center;gap:8px}
.chat__live i{width:9px;height:9px;border-radius:50%;background:var(--red2);animation:chPing 1.4s infinite}
.chat__me{display:inline-flex;align-items:center;gap:10px}
.chat__out{background:none;border:1px solid var(--line);color:var(--mute);font:inherit;letter-spacing:.16em;padding:5px 9px;cursor:pointer}
.chat__out:hover{color:var(--gold2);border-color:var(--gold)}

.chat__log{position:relative;height:min(58vh,620px);min-height:320px;overflow-y:auto;overscroll-behavior:contain;padding:18px 16px 8px;display:flex;flex-direction:column;gap:12px;scrollbar-color:var(--gold3) transparent}
.chat__more{align-self:center;background:none;border:1px dashed var(--line);color:var(--gold);font:600 11px var(--cond);letter-spacing:.24em;text-transform:uppercase;padding:8px 14px;cursor:pointer}
.chat__more[hidden],.chat__empty[hidden]{display:none}
.chat__empty{margin:auto;text-align:center;font-family:var(--type);color:var(--mute);max-width:32ch}

/* messages */
.cm{display:flex;gap:10px;align-items:flex-end;max-width:min(78%,620px)}
.cm__ic{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#1e1916;border:1px solid var(--line);color:var(--gold2);font:400 17px var(--disp)}
.cm__b{min-width:0;padding:9px 13px 10px;background:#15110f;border:1px solid #2a2320;border-radius:14px 14px 14px 3px}
.cm__h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:2px}
.cm__h strong{font:600 13px var(--cond);letter-spacing:.08em;text-transform:uppercase;color:var(--gold2)}
.cm__h time{font-size:11px;color:var(--mute)}
.cm__tag{font:700 10px var(--cond);letter-spacing:.2em;text-transform:uppercase;color:#fff;background:var(--red);padding:2px 6px}
.cm__x{margin-left:auto;background:none;border:0;padding:0;color:var(--mute);font:11px var(--sans);text-decoration:underline;cursor:pointer;opacity:0;transition:opacity .2s}
.cm:hover .cm__x,.cm__x:focus-visible{opacity:1}
.cm__t{margin:0;color:var(--paper);font-size:15px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.cm--me{align-self:flex-end;flex-direction:row-reverse}
.cm--me .cm__b{background:linear-gradient(180deg,rgba(241,209,132,.16),rgba(212,168,67,.08));border-color:rgba(212,168,67,.45);border-radius:14px 14px 3px 14px}
.cm--me .cm__ic{background:linear-gradient(160deg,var(--gold2),var(--gold3));color:#140f05;border-color:transparent}
.cm--crew .cm__b{background:linear-gradient(180deg,rgba(163,18,28,.28),rgba(20,8,8,.9));border-color:rgba(224,36,47,.6);box-shadow:0 0 30px -8px rgba(224,36,47,.6)}
.cm--crew .cm__ic{background:var(--red2);color:#fff;border-color:transparent}
.cm--crew .cm__t{font-family:var(--type);letter-spacing:.02em}
.cm--del .cm__t{color:var(--mute);font-style:italic}
.cm--new{animation:chSlam .5s cubic-bezier(.2,1.5,.4,1) both}
.cm--me.cm--new{animation-name:chSlamR}
.cm--crew.cm--new{animation:chSlam .5s cubic-bezier(.2,1.5,.4,1) both,chGlitch .32s steps(2) 3 .1s}
.cm--gone .cm__t{animation:chGlitch .25s steps(2) 3}

.chat__typing{min-height:22px;margin:0;padding:0 18px;font:13px var(--type);color:var(--gold)}
.dots{display:inline-flex;gap:3px;margin-right:8px;vertical-align:middle}
.dots i{width:5px;height:5px;border-radius:50%;background:var(--gold);animation:chDot 1s infinite}
.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}

.chat__form{display:flex;gap:10px;align-items:flex-end;padding:12px 16px 4px;border-top:1px solid var(--line)}
.chat__form textarea{min-height:52px;max-height:150px;resize:none;line-height:1.4;background:#070606}
.chat__form .btn{flex:none}
.chat .msg{padding:0 16px;margin:6px 0 0}
.chat__muted{margin:0;padding:14px 16px;border-top:1px solid var(--line);color:#ff8e8e}
.chat__rules{margin:0;padding:10px 16px 14px}

/* the crew texting you while you're somewhere else on the site */
.od-note--chat{border-color:rgba(224,36,47,.7);box-shadow:0 18px 40px rgba(0,0,0,.65),0 0 24px -6px rgba(224,36,47,.7)}
.od-note--chat .od-note__ic{background:var(--red2);color:#fff}

@keyframes chPing{0%{box-shadow:0 0 0 0 rgba(224,36,47,.7)}70%{box-shadow:0 0 0 8px rgba(224,36,47,0)}100%{box-shadow:0 0 0 0 rgba(224,36,47,0)}}
@keyframes chPop{from{transform:scale(0)}to{transform:scale(1)}}
@keyframes chSlam{from{opacity:0;transform:translateX(-40px) skewX(-12deg) scale(.9)}to{opacity:1;transform:none}}
@keyframes chSlamR{from{opacity:0;transform:translateX(40px) skewX(12deg) scale(.9)}to{opacity:1;transform:none}}
@keyframes chGlitch{0%{transform:translate(0);filter:none}50%{transform:translate(-3px,1px);filter:drop-shadow(3px 0 rgba(224,36,47,.9)) drop-shadow(-3px 0 rgba(212,168,67,.9))}100%{transform:translate(2px,-1px)}}
@keyframes chDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}

@media (max-width:760px){
  .chat-door{grid-template-columns:minmax(0,1fr)}
  .chatwrap{padding:0 10px}
  .chat__log{height:60svh;padding:14px 10px 6px}
  .cm{max-width:90%}
  .cm__ic{width:28px;height:28px;font-size:14px}
  .chat__form{padding:10px 10px 4px}
  .chat__form .btn{padding:0 16px}
  .nav__badge{position:static;display:inline-block;margin-left:8px;vertical-align:1px}
}
html.calm .cm--new,html.calm .cm--gone .cm__t,html.calm .nav__chat.is-member::before,html.calm .chat__live i{animation:none}
