/* Kapeesh AI site chat (v3.14.0). Self-contained: its own colors and resets, so it looks the same on
   every page, including the standalone AI Blueprint page. Markup is built by assets/js/site-chat.js. */
.kpc{
  --k-bg:#08081a;--k-card:#0d0d22;--k-line:rgba(255,255,255,.1);
  --k-blue:#00d4ff;--k-purple:#8b5cf6;--k-text:#e2e8f0;--k-muted:#94a3b8;
  position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:9500;
  font-family:'Space Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:15px;line-height:1.5;color:var(--k-text);
  opacity:0;transform:translateY(14px) scale(.9);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.9,.3,1.2);
}
.kpc.is-in{opacity:1;transform:none}
.kpc *,.kpc *::before,.kpc *::after{box-sizing:border-box}
.kpc [hidden]{display:none!important}
.kpc button,.kpc input,.kpc textarea{font:inherit;color:inherit;margin:0}
.kpc button{cursor:pointer}
body.game-active .kpc{display:none}

/* Launcher: the eye */
.kpc-launch{
  position:relative;display:block;width:64px;height:64px;padding:0;border-radius:50%;
  border:1px solid rgba(0,212,255,.45);background:radial-gradient(circle at 50% 40%,#14143a,#05050f 75%);
  box-shadow:0 10px 30px rgba(0,0,0,.55),0 0 22px rgba(0,212,255,.25);transition:transform .25s,box-shadow .25s;
}
.kpc-launch canvas{display:block;width:64px;height:64px;border-radius:50%}
.kpc-launch::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(0,212,255,.55);animation:kpc-ring 3s ease-out infinite;pointer-events:none}
.kpc-launch:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 14px 36px rgba(0,0,0,.6),0 0 30px rgba(0,212,255,.45)}
.kpc-launch:focus-visible,.kpc button:focus-visible,.kpc a:focus-visible{outline:2px solid var(--k-blue);outline-offset:3px}
.kpc.is-open .kpc-launch::after{animation:none;opacity:0}
@keyframes kpc-ring{0%{transform:scale(1);opacity:.7}70%,100%{transform:scale(1.55);opacity:0}}

/* Teaser */
.kpc-teaser{
  position:absolute;right:76px;bottom:10px;display:flex;align-items:center;white-space:nowrap;
  background:var(--k-card);border:1px solid var(--k-line);border-radius:12px 12px 2px 12px;box-shadow:0 10px 30px rgba(0,0,0,.5);
  animation:kpc-pop .35s cubic-bezier(.2,.9,.3,1.2);
}
.kpc-teaser-open{background:none;border:0;padding:10px 4px 10px 14px;font-size:14px;font-weight:600;text-align:left;min-height:42px}
.kpc-tt{color:var(--k-text)}
.kpc-teaser-open:hover .kpc-tt{color:var(--k-blue)}
/* v3.15.0: the cursor while a question types out, and at rest after it */
.kpc-tt::after{content:"";display:inline-block;width:.5em;height:1.05em;margin-left:3px;vertical-align:-.18em;background:var(--k-blue);box-shadow:0 0 8px rgba(0,212,255,.7);animation:kpc-blink 1s steps(1) infinite}
.kpc-teaser.is-typing .kpc-tt::after{animation:none}
.kpc-teaser.is-typing{border-color:rgba(0,212,255,.35)}
.kpc-teaser.is-fade .kpc-tt{animation:kpc-fade .5s ease}
@keyframes kpc-blink{50%{opacity:0}}
@keyframes kpc-fade{from{opacity:0}to{opacity:1}}
.kpc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.kpc-typed:not(.is-done)::after{content:"";display:inline-block;width:.45em;height:1em;margin-left:2px;vertical-align:-.15em;background:var(--k-blue)}
.kpc-teaser-x{background:none;border:0;padding:8px 12px 8px 6px;font-size:18px;line-height:1;color:var(--k-muted)}
.kpc-teaser-x:hover{color:#fff}
@keyframes kpc-pop{from{opacity:0;transform:translateX(8px) scale(.95)}to{opacity:1;transform:none}}

/* Panel */
.kpc-panel{
  position:absolute;right:0;bottom:78px;width:372px;max-width:calc(100vw - 24px);
  height:min(600px,calc(100vh - 120px));height:min(600px,calc(100dvh - 120px));
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--k-bg);border:1px solid var(--k-line);border-radius:16px;
  box-shadow:0 30px 80px rgba(0,0,0,.65),0 0 0 1px rgba(0,212,255,.08);
  animation:kpc-up .3s cubic-bezier(.2,.8,.2,1);
}
@keyframes kpc-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.kpc-head{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 14px;border-bottom:1px solid var(--k-line);background:linear-gradient(135deg,rgba(0,212,255,.1),rgba(139,92,246,.1))}
.kpc-head-eye{width:38px;height:38px;flex:none;border-radius:50%;background:#05050f;border:1px solid rgba(0,212,255,.35)}
.kpc-head-txt{flex:1;min-width:0}
.kpc-head-txt strong{display:block;font-size:15px;font-weight:700;letter-spacing:.3px;color:#fff}
.kpc-head-txt span{display:block;font-size:12px;color:var(--k-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpc-close{flex:none;width:36px;height:36px;border:0;border-radius:8px;background:none;font-size:24px;line-height:1;color:var(--k-muted)}
.kpc-close:hover{background:rgba(255,255,255,.08);color:#fff}

.kpc-msgs{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px;display:flex;flex-direction:column;gap:10px}
.kpc-row{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:100%}
.kpc-you{align-items:flex-end}
.kpc-bubble{position:relative;max-width:88%;padding:10px 13px;border-radius:14px 14px 14px 3px;background:var(--k-card);border:1px solid var(--k-line);white-space:pre-wrap;overflow-wrap:anywhere}
.kpc-you .kpc-bubble{border-radius:14px 14px 3px 14px;background:linear-gradient(135deg,rgba(0,212,255,.22),rgba(139,92,246,.26));border-color:rgba(0,212,255,.3);color:#fff}
.kpc-acts{display:flex;flex-wrap:wrap;gap:6px;max-width:100%}
.kpc-link{display:inline-block;padding:7px 12px;border-radius:999px;border:1px solid rgba(0,212,255,.45);background:rgba(0,212,255,.08);color:var(--k-blue)!important;font-size:13px;font-weight:600;text-decoration:none!important;transition:background .2s,color .2s}
.kpc-link:hover{background:var(--k-blue);color:#001!important}
.kpc-link-msg{border-color:rgba(139,92,246,.6);background:rgba(139,92,246,.14);color:#c4b5fd!important}
.kpc-link-msg:hover{background:var(--k-purple);color:#fff!important}
.kpc-typing .kpc-bubble{display:flex;gap:5px;padding:14px}
.kpc-typing i{width:6px;height:6px;border-radius:50%;background:var(--k-blue);animation:kpc-dot 1.1s ease-in-out infinite}
.kpc-typing i:nth-child(2){animation-delay:.15s}.kpc-typing i:nth-child(3){animation-delay:.3s}
@keyframes kpc-dot{0%,100%{opacity:.25;transform:none}50%{opacity:1;transform:translateY(-3px)}}

/* Quick buttons */
.kpc-quick{display:flex;gap:6px;padding:8px 14px;overflow-x:auto;border-top:1px solid var(--k-line);scrollbar-width:none}
.kpc-quick::-webkit-scrollbar{display:none}
.kpc-chip{flex:none;padding:7px 12px;border-radius:999px;border:1px solid var(--k-line);background:rgba(255,255,255,.04);font-size:13px;color:var(--k-text);white-space:nowrap;transition:border-color .2s,color .2s}
.kpc-chip:hover{border-color:var(--k-blue);color:var(--k-blue)}

/* Input */
.kpc-form{display:flex;gap:8px;padding:0 14px 8px}
.kpc-form input{flex:1;min-width:0;height:44px;padding:0 14px;border-radius:10px;border:1px solid var(--k-line);background:#05050f;font-size:16px;outline:0}
.kpc-form input:focus{border-color:var(--k-blue)}
.kpc-form input::placeholder,.kpc-lead ::placeholder{color:#64748b}
.kpc-form button{flex:none;width:44px;height:44px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--k-blue),var(--k-purple));color:#fff;font-size:18px;font-weight:700}
.kpc-form button:disabled{opacity:.5;cursor:default}
.kpc-note{margin:0;padding:0 14px 10px;font-size:11px;line-height:1.4;color:#64748b}

/* Leave a message */
.kpc-lead{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;border:1px solid rgba(139,92,246,.4);background:rgba(139,92,246,.07)}
.kpc-f{display:flex;flex-direction:column;gap:3px}
.kpc-f span{font-size:12px;font-weight:600;color:var(--k-muted)}
.kpc-f input,.kpc-f textarea{width:100%;padding:9px 11px;border-radius:8px;border:1px solid var(--k-line);background:#05050f;font-size:16px;outline:0;resize:vertical}
.kpc-f input:focus,.kpc-f textarea:focus{border-color:var(--k-purple)}
.kpc-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.kpc-err{margin:0;font-size:13px;color:#fca5a5}
.kpc-err:empty{display:none}
.kpc-send{height:42px;border:0;border-radius:8px;background:linear-gradient(135deg,var(--k-blue),var(--k-purple));color:#fff;font-weight:700}
.kpc-send:disabled{opacity:.6;cursor:default}

/* Phone: the panel becomes a sheet and the eye steps aside while it is open */
@media (max-width:520px){
  .kpc{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px))}
  .kpc-launch,.kpc-launch canvas{width:56px;height:56px}
  .kpc-teaser{right:66px;bottom:8px;white-space:normal;width:max-content;max-width:calc(100vw - 94px)}
  .kpc.is-open{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px))}
  .kpc.is-open .kpc-launch{display:none}
  .kpc-panel{position:relative;bottom:auto;width:100%;max-width:none;height:min(620px,calc(100vh - 24px));height:min(620px,calc(100dvh - 24px))}
}
@media (prefers-reduced-motion:reduce){
  .kpc,.kpc-panel,.kpc-teaser{transition:none;animation:none}
  .kpc-launch::after,.kpc-typing i,.kpc-tt::after{animation:none}
  .kpc-tt::after{display:none}
}
@media print{.kpc{display:none!important}}
