/* Jake's AI assistant: slide-out chat panel */
.jja{--jja-night:#070B14;--jja-panel:#0C1220;--jja-champ:#E9D6B2;--jja-paper:#EEE9E0;--jja-dim:#8C93A3;--jja-line:rgba(233,214,178,.16);
  font-family:"Geist","Helvetica Neue","Segoe UI",Arial,sans-serif;font-weight:300;color:var(--jja-paper)}
.jja *{box-sizing:border-box}
.jja-launch{position:fixed;right:clamp(1rem,2.5vw,2rem);bottom:clamp(1rem,2.5vw,2rem);z-index:90;display:flex;align-items:center;gap:.7rem;
  padding:.55rem 1.1rem .55rem .55rem;border-radius:999px;border:1px solid rgba(233,214,178,.4);background:rgba(10,15,28,.78);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--jja-paper);font:inherit;font-size:.9rem;cursor:pointer;
  box-shadow:0 12px 40px rgba(0,0,0,.45);transition:transform .3s cubic-bezier(.16,1,.3,1),background .3s,opacity .3s}
.jja-launch:hover{transform:translateY(-2px);background:rgba(20,26,44,.9)}
.jja-launch .jja-orb{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff2d8,#E9D6B2 45%,#b08a4e);color:#070B14;font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-size:1.05rem;position:relative}
.jja-launch .jja-orb::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(233,214,178,.5)}
@media (prefers-reduced-motion:no-preference){.jja-launch .jja-orb::after{animation:jjaPulse 2.8s ease-out infinite}}
@keyframes jjaPulse{from{transform:scale(.9);opacity:.9}to{transform:scale(1.45);opacity:0}}
.jja-launch small{display:block;font-size:.72rem;color:var(--jja-dim)}
.jja.open .jja-launch{opacity:0;pointer-events:none;transform:translateY(10px)}
.jja-panel{position:fixed;top:0;right:0;bottom:0;z-index:95;width:min(430px,100vw);display:flex;flex-direction:column;
  background:linear-gradient(180deg,rgba(12,18,32,.97),rgba(7,11,20,.98));border-left:1px solid var(--jja-line);
  box-shadow:-30px 0 80px rgba(0,0,0,.5);transform:translateX(105%);visibility:hidden;transition:transform .55s cubic-bezier(.16,1,.3,1),visibility .55s}
.jja.open .jja-panel{transform:none;visibility:visible}
.jja-scrim{position:fixed;inset:0;z-index:94;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .4s}
.jja.open .jja-scrim{opacity:1;pointer-events:auto}
@media (min-width:900px){.jja-scrim{display:none}}
.jja-head{display:flex;align-items:center;gap:.8rem;padding:1.1rem 1.2rem;border-bottom:1px solid var(--jja-line)}
.jja-head .jja-orb{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(233,214,178,.5);font-family:"Instrument Serif",Georgia,serif;font-style:italic;color:var(--jja-champ)}
.jja-head b{display:block;font-weight:400;font-size:1rem}
.jja-head small{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--jja-dim)}
.jja-head small i{width:6px;height:6px;border-radius:50%;background:#6fd39b}
.jja-x{margin-left:auto;width:38px;height:38px;border-radius:50%;border:1px solid var(--jja-line);background:none;color:var(--jja-paper);font-size:1.1rem;cursor:pointer}
.jja-x:hover{border-color:var(--jja-champ);color:var(--jja-champ)}
.jja-log{flex:1;overflow-y:auto;padding:1.2rem;display:flex;flex-direction:column;gap:.9rem;scroll-behavior:smooth}
.jja-msg{max-width:88%;padding:.75rem 1rem;border-radius:16px;font-size:.95rem;line-height:1.55;white-space:normal;word-wrap:break-word}
.jja-msg p{margin:0 0 .5rem}.jja-msg p:last-child{margin:0}
.jja-msg a{color:var(--jja-champ)}
.jja-msg.bot{align-self:flex-start;background:rgba(255,255,255,.05);border:1px solid var(--jja-line);border-bottom-left-radius:4px}
.jja-msg.me{align-self:flex-end;background:var(--jja-champ);color:var(--jja-night);border-bottom-right-radius:4px}
.jja-msg.err{border-color:rgba(255,120,100,.4)}
.jja-typing span{display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:var(--jja-champ);opacity:.4;animation:jjaDot 1.2s infinite}
.jja-typing span:nth-child(2){animation-delay:.2s}.jja-typing span:nth-child(3){animation-delay:.4s}
@keyframes jjaDot{50%{opacity:1;transform:translateY(-2px)}}
.jja-chips{display:flex;flex-wrap:wrap;gap:.45rem}
.jja-chip{font:inherit;font-size:.82rem;color:var(--jja-paper);background:none;border:1px solid rgba(233,214,178,.3);border-radius:999px;padding:.45rem .85rem;cursor:pointer;text-align:left}
.jja-chip:hover{background:rgba(233,214,178,.12);border-color:var(--jja-champ)}
.jja-lead{margin:0 1.2rem 1rem;padding:1rem;border:1px solid var(--jja-line);border-radius:14px;background:rgba(255,255,255,.03);display:grid;gap:.6rem}
.jja-lead h4{margin:0;font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:1.35rem}
.jja-lead input,.jja-lead select{font:inherit;font-size:.9rem;color:var(--jja-paper);background:transparent;border:0;border-bottom:1px solid rgba(238,233,224,.25);padding:.45rem 0;width:100%;border-radius:0}
.jja-lead select option{color:#111}
.jja-lead input:focus,.jja-lead select:focus{outline:none;border-color:var(--jja-champ)}
.jja-lead .row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.jja-lead .note{font-size:.78rem;color:var(--jja-dim);min-height:1em}
.jja-btn{font:inherit;font-size:.88rem;border-radius:999px;padding:.6rem 1.1rem;cursor:pointer;border:1px solid var(--jja-champ);background:var(--jja-champ);color:var(--jja-night)}
.jja-btn.ghost{background:none;color:var(--jja-paper);border-color:rgba(233,214,178,.35)}
.jja-foot{border-top:1px solid var(--jja-line);padding:.8rem 1.2rem 1rem}
.jja-form{display:flex;gap:.5rem;align-items:flex-end}
.jja-form textarea{flex:1;font:inherit;font-size:.95rem;color:var(--jja-paper);background:rgba(255,255,255,.04);border:1px solid rgba(238,233,224,.18);border-radius:14px;padding:.7rem .9rem;resize:none;max-height:120px;min-height:46px}
.jja-form textarea:focus{outline:none;border-color:var(--jja-champ)}
.jja-send{width:46px;height:46px;border-radius:50%;border:0;background:var(--jja-champ);color:var(--jja-night);font-size:1.1rem;cursor:pointer;flex:0 0 auto}
.jja-send:disabled{opacity:.4;cursor:default}
.jja-links{display:flex;justify-content:space-between;gap:.5rem;margin-top:.6rem;font-size:.74rem;color:var(--jja-dim)}
.jja-links button{font:inherit;background:none;border:0;color:var(--jja-champ);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}
.jja :focus-visible{outline:2px solid var(--jja-champ);outline-offset:3px}
@media (max-width:560px){.jja-launch .jja-text{display:none}.jja-launch{padding:.45rem}}
@media print{.jja{display:none}}
/* Homepage: sit above the film HUD while the intro film is playing */
body.in-film .jja-launch,body.in-contact .jja-launch{bottom:calc(clamp(28px,6.5vh,70px) + 4.6rem)}
