/* Reticence studio assistant — quiet, monochrome, matches the site type system */
.rc-launch{position:fixed;right:22px;bottom:22px;z-index:9000;display:inline-flex;align-items:center;gap:9px;padding:11px 16px;background:#1b1917;color:#fff;border:0;border-radius:999px;font:400 13px/1 var(--sans,"PP Neue Montreal",Helvetica,Arial,sans-serif);letter-spacing:.01em;cursor:pointer;box-shadow:0 6px 24px rgba(27,25,23,.18)}
.rc-launch:hover{background:#000}.rc-launch svg{width:15px;height:15px}
.rc-panel{position:fixed;right:22px;bottom:22px;z-index:9001;width:min(380px,calc(100vw - 24px));height:min(560px,calc(100vh - 40px));display:none;flex-direction:column;background:#fff;color:#1b1917;border:1px solid #e2ded8;border-radius:14px;box-shadow:0 18px 48px rgba(27,25,23,.22);font:400 14px/1.5 var(--sans,"PP Neue Montreal",Helvetica,Arial,sans-serif);overflow:hidden}
.rc-panel.rc-open{display:flex}
.rc-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #eee}
.rc-head strong{font-weight:500;font-size:14px}.rc-head span{display:block;font-size:12px;color:#8a8a8a}
.rc-close{background:none;border:1px solid transparent;border-radius:999px;font:inherit;font-size:12px;line-height:1;color:#8a8a8a;cursor:pointer;padding:7px 10px;white-space:nowrap}.rc-close:hover{color:#1b1917;border-color:#ddd}.rc-close span{display:inline;color:inherit;font-size:16px;margin-left:5px;vertical-align:-1px}   /* display:inline beats .rc-head span{display:block} */
.rc-log{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.rc-msg{max-width:88%;padding:9px 12px;border-radius:12px;white-space:pre-wrap;word-wrap:break-word}
.rc-msg.rc-user{align-self:flex-end;background:#1b1917;color:#fff;border-bottom-right-radius:4px}
.rc-msg.rc-bot{align-self:flex-start;background:#f4f2ef;border-bottom-left-radius:4px}
.rc-msg.rc-wait{color:#8a8a8a;font-style:italic}
.rc-form{border-top:1px solid #eee;padding:10px 12px;display:flex;gap:8px;align-items:flex-end}
.rc-form textarea{flex:1;resize:none;border:1px solid #ddd;border-radius:10px;padding:9px 11px;font:inherit;color:#1b1917;min-height:40px;max-height:110px;outline:none}
.rc-form textarea:focus{border-color:#1b1917}
.rc-send{background:#1b1917;color:#fff;border:0;border-radius:10px;padding:0 14px;height:40px;font:inherit;cursor:pointer}.rc-send:disabled{opacity:.4;cursor:default}
.rc-enq{align-self:flex-start;background:#f4f2ef;border-radius:12px;padding:12px;width:100%;display:flex;flex-direction:column;gap:7px}
.rc-enq input,.rc-enq textarea{border:1px solid #ddd;border-radius:8px;padding:8px 10px;font:inherit;color:#1b1917;width:100%;box-sizing:border-box}
.rc-enq textarea{min-height:70px;resize:vertical}.rc-enq button{align-self:flex-start;background:#1b1917;color:#fff;border:0;border-radius:8px;padding:8px 14px;font:inherit;cursor:pointer}
.rc-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.rc-foot{padding:6px 16px 10px;font-size:11px;color:#8a8a8a}
/* PHONES. Three things the first version got wrong on an iPhone, each fixed here:
   1. iOS zooms the whole page when a focused field is under 16px — every field is 16px on phones, so nothing zooms.
   2. 100vh includes the space under Safari's toolbar, so the text box sat behind it — 100dvh, and the JS then follows the
      visual viewport so that when the keyboard rises the header (with Close) stays in view and the box sits above the keys.
   3. The way out has to be obvious — Close is a labelled 44px button, not a small grey ×. */
@media(max-width:520px){
 .rc-panel{top:0;left:0;right:0;bottom:auto;width:100%;height:100vh;height:100dvh;max-height:none;border-radius:0;border:0}
 .rc-launch{right:14px;bottom:14px}
 .rc-form textarea,.rc-enq input,.rc-enq textarea{font-size:16px}
 .rc-form{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
 .rc-head{padding:10px 12px 10px 16px}
 .rc-close{font-size:14px;color:#1b1917;border-color:#ddd;padding:11px 14px;min-height:44px}
 html.rc-has-open,html.rc-has-open body{overflow:hidden}
 .rc-panel.rc-kb .rc-foot{display:none}   /* keyboard up: the little space left goes to the messages */
}
/* no double-tap zoom inside the panel; pinch-zoom stays available everywhere */
.rc-panel{touch-action:manipulation}
@media(prefers-reduced-motion:no-preference){.rc-panel.rc-open{animation:rcIn .18s ease-out}@keyframes rcIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
/* keep clear of the film's own controls (same corner) on the homepage */
body[data-page="home"] .rc-launch{bottom:84px}
/* phones: compact round button, fully on screen */
@media(max-width:520px){
 .rc-launch{right:14px;bottom:14px;width:48px;height:48px;padding:0;justify-content:center;border-radius:50%}
 .rc-launch span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .rc-launch svg{width:20px;height:20px}
 body[data-page="home"] .rc-launch{bottom:66px}
}
/* scrolling stays inside the message list — never chains to the page */
.rc-log{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
/* typing indicator */
.rc-typing{display:flex;gap:5px;align-items:center;padding:12px 14px}
.rc-typing i{width:6px;height:6px;border-radius:50%;background:#8a8a8a;animation:rcDot 1.1s infinite ease-in-out}
.rc-typing i:nth-child(2){animation-delay:.15s}.rc-typing i:nth-child(3){animation-delay:.3s}
@keyframes rcDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
