/* ============================================================
   IRVIN — the floating Investor Relations terminal.
   A CRT with a face, fixed to the right rail, that greets
   visitors and answers questions from irvin-kb.json.
   Loaded on every page alongside style.css.
   ============================================================ */

.irvin-widget{
  position:fixed;
  right:clamp(10px,2vw,26px);
  top:50%;
  transform:translateY(-50%);
  z-index:60;
  display:flex;
  align-items:flex-end;
  gap:10px;
  font-family:Georgia,"Times New Roman",serif;
  /* bob is driven by JS via --bob */
  will-change:transform;
}
.irvin-widget *{box-sizing:border-box}

/* ---------- the machine ---------- */
.irvin-crt{
  position:relative;
  width:104px;flex:0 0 104px;
  background:none;border:0;padding:0;margin:0;
  cursor:pointer;
  filter:drop-shadow(0 6px 14px rgba(11,36,71,.32));
  transform:translateY(var(--bob,0px));
  transition:transform .12s linear;
}
.irvin-crt:focus-visible{outline:3px solid #8B2635;outline-offset:4px}
.irvin-crt svg{display:block;width:100%;height:auto}
.irvin-crt .plate{
  position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);
  background:#C9A227;color:#0B2447;
  font-variant:small-caps;letter-spacing:.08em;
  font-size:8.5px;line-height:1;padding:3px 6px;
  border:1px solid #0B2447;white-space:nowrap;
}
/* a small unread pip when IRVIN has spoken but the panel is closed */
.irvin-pip{
  position:absolute;top:-6px;right:-6px;
  width:16px;height:16px;border-radius:50%;
  background:#8B2635;border:2px solid #F5F1E6;
  display:none;
}
.irvin-widget.has-unread .irvin-pip{display:block;animation:irvin-pulse 1.6s ease-in-out infinite}
@keyframes irvin-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.22)}}

/* ---------- the panel ---------- */
.irvin-panel{
  width:min(330px,calc(100vw - 150px));
  max-height:min(70vh,560px);
  background:#F5F1E6;
  border:3px solid #0B2447;
  outline:1px solid #C9A227;outline-offset:-7px;
  display:none;
  flex-direction:column;
  box-shadow:0 10px 30px rgba(11,36,71,.28);
}
.irvin-widget.open .irvin-panel{display:flex}

.irvin-head{
  background:#0B2447;color:#F5F1E6;
  padding:8px 10px;display:flex;align-items:baseline;gap:8px;flex:0 0 auto;
}
.irvin-head b{
  font-variant:small-caps;letter-spacing:.12em;font-size:.82rem;font-weight:bold;
}
.irvin-head .ver{font-size:.66rem;color:#C9A227;letter-spacing:.06em}
.irvin-head .x{
  margin-left:auto;background:none;border:0;color:#F5F1E6;
  font-size:1.05rem;line-height:1;cursor:pointer;padding:0 2px;
}
.irvin-head .x:hover{color:#C9A227}

.irvin-msgs{
  flex:1 1 auto;overflow-y:auto;padding:11px 11px 4px;
  font-size:.87rem;line-height:1.5;
}
.irvin-msg{margin:0 0 9px;padding:8px 10px;border:1px solid rgba(11,36,71,.22)}
.irvin-msg.bot{background:#fff;border-left:3px solid #8B2635}
.irvin-msg.me{background:rgba(11,36,71,.07);border-left:3px solid #0B2447;text-align:right}
.irvin-msg .sig{
  display:block;margin-top:5px;font-size:.68rem;font-variant:small-caps;
  letter-spacing:.08em;color:#8B2635;
}
.irvin-typing span{
  display:inline-block;width:5px;height:5px;margin-right:3px;border-radius:50%;
  background:#0B2447;opacity:.35;animation:irvin-dot 1s infinite;
}
.irvin-typing span:nth-child(2){animation-delay:.15s}
.irvin-typing span:nth-child(3){animation-delay:.3s}
@keyframes irvin-dot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}

.irvin-chips{
  flex:0 0 auto;padding:2px 11px 9px;display:flex;flex-wrap:wrap;gap:5px;
}
.irvin-chips button{
  font-family:inherit;font-size:.74rem;
  background:#fff;border:1px solid #0B2447;color:#0B2447;
  padding:4px 8px;cursor:pointer;text-align:left;
}
.irvin-chips button:hover{background:#0B2447;color:#F5F1E6}

.irvin-form{
  flex:0 0 auto;display:flex;border-top:1px solid rgba(11,36,71,.25);
}
.irvin-form input{
  flex:1 1 auto;min-width:0;font-family:inherit;font-size:.85rem;
  border:0;padding:9px 10px;background:#fff;color:#1A1A1A;
}
.irvin-form input:focus{outline:2px solid #C9A227;outline-offset:-2px}
.irvin-form button{
  flex:0 0 auto;font-family:inherit;font-variant:small-caps;letter-spacing:.08em;
  font-size:.78rem;background:#0B2447;color:#F5F1E6;border:0;padding:0 12px;cursor:pointer;
}
.irvin-form button:hover{background:#8B2635}

.irvin-foot{
  flex:0 0 auto;background:rgba(11,36,71,.05);
  border-top:1px solid rgba(11,36,71,.18);
  padding:5px 10px;font-size:.63rem;line-height:1.35;color:#5a5a5a;
}

/* ---------- mobile ---------- */
@media (max-width:720px){
  .irvin-widget{
    right:8px;top:auto;bottom:10px;transform:none;
    align-items:flex-end;
  }
  .irvin-crt{width:66px;flex-basis:66px}
  .irvin-crt .plate{display:none}
  .irvin-panel{width:min(300px,calc(100vw - 92px));max-height:62vh}
}
@media (max-width:380px){
  .irvin-widget.open .irvin-crt{display:none}
  .irvin-panel{width:calc(100vw - 24px)}
}

@media print{.irvin-widget{display:none}}

@media (prefers-reduced-motion:reduce){
  .irvin-crt{transition:none;transform:none}
  .irvin-widget.has-unread .irvin-pip{animation:none}
  .irvin-typing span{animation:none}
}
