/* dove + grove amplification — cinematic presence, honest community */

/* —— dove memory strip —— */
.dove-mem-strip{margin:0 16px 10px;position:relative;z-index:2}
.dove-mem-open{
  display:block;width:100%;text-align:left;cursor:pointer;
  background:rgba(255,255,255,.55);border:1px solid rgba(82,121,111,.18);
  border-radius:14px;padding:10px 12px;font:inherit;color:inherit;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:transform .3s cubic-bezier(.22,.61,.36,1),border-color .25s,background .25s;
}
.dove-mem-open:hover{transform:translateY(-1px);border-color:rgba(82,121,111,.35);background:rgba(255,255,255,.72)}
.dove-wrap.dvr-on .dove-mem-open{background:rgba(20,28,36,.35);border-color:rgba(242,235,224,.14);color:#f2ebe0}
.dove-wrap.dvr-on .dove-mem-k{color:rgba(196,165,116,.9)}
.dove-wrap.dvr-on .dove-mem-sum{color:rgba(242,235,224,.78)}
.dove-mem-k{display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--sage,#2f5d50);margin-bottom:4px}
.dove-mem-sum{display:block;font-size:12.5px;line-height:1.45;color:var(--ink,#1a2838);font-weight:300}
.dove-mem-pats{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.dove-mem-chip{
  font-size:10px;letter-spacing:.02em;padding:3px 8px;border-radius:999px;
  background:rgba(82,121,111,.1);color:var(--sage,#2f5d50);
}
.dove-wrap.dvr-on .dove-mem-chip{background:rgba(196,165,116,.15);color:rgba(242,235,224,.85)}

.dove-mem-sheet .dove-mem-block{margin:12px 0;padding:12px 0;border-bottom:1px solid var(--hair,rgba(44,62,80,.1))}
.dove-mem-sheet .dove-mem-bk{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin-bottom:5px}
.dove-mem-sheet p{font-size:14px;line-height:1.55;font-weight:300;margin:0}

/* —— moment toast —— */
.dove-moment-toast{
  position:fixed;left:50%;bottom:88px;transform:translateX(-50%);z-index:9990;
  background:rgba(26,40,56,.92);color:#f2ebe0;border-radius:14px;padding:12px 16px;
  max-width:min(320px,88vw);box-shadow:0 12px 40px rgba(0,0,0,.28);
  animation:cinema-rise .45s cubic-bezier(.22,.61,.36,1) both;text-align:center;
}
.dove-moment-toast strong{display:block;font-family:var(--font-brand);font-weight:500;font-size:14px;margin-bottom:3px}
.dove-moment-toast span{font-size:12px;opacity:.75;line-height:1.4}
.dove-moment-toast.out{opacity:0;transition:opacity .4s}

/* —— held silence —— */
.dove-hold-veil{
  position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;
  background:rgba(14,20,26,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  animation:world-fade .5s ease both;
}
.dove-hold-inner{text-align:center;color:#f2ebe0;padding:2rem;max-width:22ch}
.dove-hold-inner strong{display:block;font-family:var(--font-brand);font-size:1.45rem;font-weight:500;margin-bottom:.5rem}
.dove-hold-inner span{display:block;font-size:.95rem;opacity:.75;line-height:1.5;margin-bottom:1.25rem}
.dove-hold-return{
  appearance:none;border:1px solid rgba(242,235,224,.28);background:transparent;color:#f2ebe0;
  border-radius:999px;padding:10px 18px;font:inherit;font-size:13px;cursor:pointer;
}
.dove-wrap.dove-holding .chat-in,.dove-wrap.dove-holding .chat-log,.dove-wrap.dove-holding .qr{opacity:.25;pointer-events:none;transition:opacity .5s}

/* —— letter glimpse —— */
.dove-glimpse-body{margin-top:8px}
.dove-glimpse-body p{
  font-family:var(--font-brand);font-size:1.05rem;font-weight:400;line-height:1.55;
  color:var(--ink);margin:0 0 12px;letter-spacing:-.01em;
}

.dove-sense{opacity:.7;font-size:10px;letter-spacing:.06em}

/* —— grove ambient honesty —— */
.cbub.ambient,.gpc-bub.ambient{opacity:.72}
.cbub.ambient .cb-n::after,.gpc-bub.ambient .gpc-n::after{
  content:' · room tone';font-weight:300;letter-spacing:.04em;opacity:.65;font-size:9px;text-transform:lowercase;
}
body.thursday-fire .page-hero-eyebrow::after{content:' · thursday fire';color:var(--cinema-gold,#c4a574)}
.clearing-empty,.gpc-empty{font-style:italic;opacity:.8}

/* —— grove harbor badge —— */
.gp-harbor-note,.grove-harbor-note{
  text-align:center;font-size:11px;letter-spacing:.04em;color:var(--mist,#8a968c);
  margin:8px auto 18px;max-width:36ch;line-height:1.5;
}
.gp-harbor-note b,.grove-harbor-note b{font-weight:500;color:var(--sage,#2f5d50)}

/* —— thursday ritual —— */
.cl-creed.thursday,.gp-clearing-ritual.thursday{
  border-color:rgba(196,165,116,.35)!important;
}
.cl-creed.thursday .cl-creed-k::after,.gp-clearing-ritual.thursday .gp-ritual-k::after{
  content:' · thursday fire';
}

/* —— science foot link —— */
.dvr-foot a{color:inherit;opacity:.85;text-decoration:underline;text-underline-offset:2px}
.dvr-foot a:hover{opacity:1}

/* —— demo grove soft replies —— */
.post-acts{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}
.soft-reply-btn{font-size:11px!important;opacity:.7}
.grove-reply{display:flex;gap:8px;margin-top:8px;align-items:center;flex-wrap:wrap}
.grove-reply[hidden]{display:none!important}
.grove-reply input{
  flex:1 1 150px;min-width:0;font:inherit;font-size:13px;padding:8px 10px;border-radius:10px;
  border:1px solid var(--hair,rgba(44,62,80,.15));background:var(--card,rgba(255,255,255,.5));color:inherit;
}
.grove-ai-witness{
  margin:0!important;padding:7px 4px!important;font-size:9px!important;letter-spacing:.06em!important;
  color:var(--sage,#2f5d50)!important;text-decoration:none!important;white-space:nowrap;
}
.grove-ai-witness::before{content:'✦';margin-right:4px;color:var(--cinema-gold,#c4a574)}
.grove-ai-witness:disabled{opacity:.45;cursor:wait}
.gp-reply-foot{flex-wrap:wrap}
.gp-ai-reply{
  margin-left:auto;border:0;background:transparent;color:var(--sage,#2f5d50);
  font:400 9px/1.2 var(--font-brand);letter-spacing:.04em;cursor:pointer;
}
.gp-ai-reply:disabled{opacity:.45;cursor:wait}
.demo-thread{margin-top:8px;padding-left:8px;border-left:2px solid rgba(82,121,111,.2)}
.demo-thread .gp-cbody{font-size:12.5px;line-height:1.45;opacity:.85;margin-bottom:6px}

.clearing-creed.thursday .canon-kicker{color:var(--cinema-gold,#c4a574)}

@media (prefers-reduced-motion:reduce){
  .dove-moment-toast,.dove-hold-veil,.dove-mem-open{animation:none!important;transition:none!important}
}
