.ninja-irc {
  position:fixed;
  top:620px;
  right:18px;
  z-index:27;
  width:min(360px, calc((100vw - 1040px) / 2 - 30px));
  min-width:218px;
  color:#e9f2ff;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.ninja-irc::before {
  content:"";
  position:absolute;
  top:74px;
  left:-36px;
  width:36px;
  height:1px;
  background:linear-gradient(90deg,rgba(97,167,255,0),rgba(116,202,255,.82));
  box-shadow:0 0 9px rgba(60,140,255,.55);
}
.ninja-irc__face-frame {
  position:relative;
  width:118px;
  margin:0 auto -24px;
  z-index:2;
  pointer-events:none;
}
.ninja-irc__face {
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
  filter:drop-shadow(0 0 8px rgba(56,128,255,.18));
}
.ninja-irc__face .n-line,
.ninja-irc__face .n-hot,
.ninja-irc__face .n-soft,
.ninja-irc__face .n-mouth,
.ninja-irc__face .n-spark {
  vector-effect:non-scaling-stroke;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ninja-irc__face .n-line {
  stroke:#66c9ff;
  stroke-width:2.4;
  filter:url(#ninjaGlow);
}
.ninja-irc__face .n-hot {
  stroke:#d4efff;
  stroke-width:1.2;
  filter:url(#ninjaGlowSoft);
}
.ninja-irc__face .n-soft {
  stroke:#f3fbff;
  stroke-width:1.55;
  filter:url(#ninjaGlowSoft);
}
.ninja-irc__face .n-spark {
  stroke:#9fe3ff;
  stroke-width:1.9;
  filter:url(#ninjaGlow);
}
.ninja-irc__face .n-mouth {
  stroke:#e9fbff;
  stroke-width:1.7;
  fill:rgba(77,165,255,.16);
  filter:url(#ninjaGlowSoft);
  opacity:0;
}
.ninja-irc__face .n-mouth--closed { opacity:1; }
.ninja-irc.is-speaking .n-mouth--closed { opacity:0; }
.ninja-irc.is-speaking[data-mouth="a"] .n-mouth--a,
.ninja-irc.is-speaking[data-mouth="o"] .n-mouth--o,
.ninja-irc.is-speaking[data-mouth="e"] .n-mouth--e { opacity:1; }

.ninja-irc__box {
  position:relative;
  padding:34px 12px 12px;
  border:1px solid rgba(116,195,255,.36);
  background:
    linear-gradient(135deg,rgba(16,52,110,.15),transparent 38%),
    linear-gradient(180deg,rgba(4,12,25,.97),rgba(2,7,18,.99));
  box-shadow:0 16px 32px rgba(0,0,0,.42),0 0 24px rgba(64,134,255,.09),inset 0 0 0 1px rgba(232,246,255,.03);
  clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px),0 12px);
}
.ninja-irc__box::before {
  content:"";
  position:absolute;
  inset:5px;
  border:1px solid rgba(223,243,255,.08);
  pointer-events:none;
  clip-path:inherit;
}
.ninja-irc__header {
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  margin-bottom:9px;
}
.ninja-irc__title {
  margin:0;
  color:#b9eaff;
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.ninja-irc__meta {
  margin:3px 0 0;
  color:#84a7c8;
  font-size:.57rem;
  line-height:1.3;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ninja-irc__connect {
  height:31px;
  padding:0 10px;
  border:1px solid rgba(120,206,255,.38);
  background:linear-gradient(180deg,rgba(18,87,148,.95),rgba(8,46,86,.98));
  color:#f3fbff;
  font:inherit;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.ninja-irc__connect:hover,
.ninja-irc__send:hover { filter:brightness(1.1); }
.ninja-irc__log {
  position:relative;
  z-index:1;
  height:198px;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-bottom:8px;
  padding-right:4px;
  scrollbar-width:thin;
  scrollbar-color:rgba(102,201,255,.32) transparent;
}
.ninja-irc__log::-webkit-scrollbar { width:8px; }
.ninja-irc__log::-webkit-scrollbar-thumb { background:rgba(102,201,255,.24); border-radius:99px; }
.ninja-irc__msg {
  margin:0;
  padding:9px 10px;
  border:1px solid rgba(116,195,255,.16);
  background:rgba(7,17,30,.88);
  color:#edf8ff;
  font-size:.78rem;
  line-height:1.4;
  box-shadow:inset 0 0 0 1px rgba(236,249,255,.02);
}
.ninja-irc__msg p { margin:0; }
.ninja-irc__msg code {
  color:#c8f1ff;
  font-size:.72rem;
}
.ninja-irc__msg--self {
  align-self:flex-end;
  background:rgba(15,38,69,.9);
  color:#f3fbff;
}
.ninja-irc__msg--remote {
  align-self:flex-start;
  background:rgba(9,21,37,.92);
}
.ninja-irc__msg--system {
  align-self:stretch;
  color:#b4c9dc;
  font-size:.73rem;
}
.ninja-irc__author {
  display:block;
  margin-bottom:4px;
  color:#8edcff;
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.ninja-irc__phonemes {
  position:relative;
  z-index:1;
  min-height:20px;
  margin:0 0 8px;
  color:#8eb3cd;
  font-size:.54rem;
  font-weight:800;
  letter-spacing:.18em;
  text-align:center;
  text-transform:uppercase;
}
.ninja-irc.is-speaking .ninja-irc__phonemes {
  color:#d8f5ff;
  text-shadow:0 0 8px rgba(92,174,255,.44);
}
.ninja-irc__form {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) 88px;
  gap:8px;
}
.ninja-irc__input,
.ninja-irc__send {
  height:42px;
  border-radius:0;
  font:inherit;
}
.ninja-irc__input {
  min-width:0;
  padding:0 12px;
  border:1px solid rgba(120,205,255,.28);
  background:rgba(5,12,22,.96);
  color:#f2fbff;
  font-size:.82rem;
}
.ninja-irc__input::placeholder { color:#7990a4; }
.ninja-irc__send {
  border:1px solid rgba(120,205,255,.38);
  background:linear-gradient(180deg,rgba(18,87,148,.96),rgba(8,46,86,.99));
  color:#f2fbff;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.ninja-irc__input:focus,
.ninja-irc__send:focus-visible,
.ninja-irc__connect:focus-visible {
  outline:2px solid #d5f2ff;
  outline-offset:2px;
}
@media (max-width:1540px) {
  .ninja-irc {
    position:relative;
    top:auto;
    right:auto;
    width:min(500px,calc(100% - 28px));
    min-width:0;
    margin:0 auto 34px;
  }
  .ninja-irc::before { display:none; }
}
@media (max-width:620px) {
  .ninja-irc { width:min(100% - 14px,500px); margin:0 auto 22px; }
  .ninja-irc__form { grid-template-columns:1fr; }
}


/* Libera.Chat embedded client — replaces the non-functional raw WebSocket form. */
.ninja-irc__box--webchat {
  padding-bottom:12px;
}
.ninja-irc__live {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:27px;
  padding:0 8px;
  border:1px solid rgba(120,206,255,.42);
  background:rgba(8,46,86,.88);
  color:#dff7ff;
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.14em;
  box-shadow:0 0 14px rgba(76,170,255,.15);
}
.ninja-irc__live::before {
  content:"";
  width:6px;
  height:6px;
  margin-right:6px;
  border-radius:50%;
  background:#9fe3ff;
  box-shadow:0 0 8px #66c9ff;
}
.ninja-irc__webchat-frame {
  position:relative;
  z-index:1;
  height:455px;
  overflow:hidden;
  border:1px solid rgba(116,195,255,.22);
  background:#030914;
  box-shadow:inset 0 0 20px rgba(60,140,255,.08);
}
.ninja-irc__webchat {
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#030914;
}
.ninja-irc__notice {
  position:relative;
  z-index:1;
  margin:8px 2px 0;
  color:#84a7c8;
  font-size:.56rem;
  line-height:1.35;
  letter-spacing:.06em;
  text-align:center;
  text-transform:uppercase;
}
@media (max-width:620px) {
  .ninja-irc__webchat-frame { height:520px; }
}
