/* Bounded integration fixes; the prototype remains the visual baseline. */
:focus-visible { outline: 3px solid #f3a940; outline-offset: 5px; }
.on-honey :focus-visible { outline-color: #3a1d05; }
.wait input:focus-visible { outline: 3px solid #f3a940; outline-offset: 0; border-radius: 18px; }
.wait button:disabled, .wait button[aria-disabled="true"] { opacity: .65; cursor: progress; }
.wait-label { display: block; margin-bottom: 8px; font-size: 14px; color: var(--muted); }
html { scroll-padding-top: 96px; }
/* The focus rectangle is deliberately outside the clipped hex and distinct from selection. */
.cell:focus-visible { clip-path: none; background: transparent; outline: 3px solid #291604; outline-offset: 3px; box-shadow: 0 0 0 7px #fff4d2; border-radius: 10px; z-index: 4; }
.journal-head { gap: 12px; flex-wrap: wrap; }
.wait small { min-height: 3.8em; }
.public-demo { margin-block: 24px 70px; padding: 26px; border: 1px solid var(--line); border-radius: 24px; background: rgba(255,255,255,.025); }
.public-demo h2 { font-size: clamp(23px, 3vw, 32px); line-height: 1.2; }
.public-demo h3 { font-size: 23px; margin-top: 22px; }
.public-demo p, .public-demo time { color: var(--muted); font-size: 15px; }
.public-demo blockquote { margin: 14px 0; max-height: 18em; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.6; }
.public-demo .demo-note { margin-top: 18px; }
[hidden] { display: none !important; }
.demo-note { font-size: 14px; line-height: 1.5; color: var(--muted); }
#builderNote { font-size: 15px; line-height: 1.5; margin-bottom: 16px; }
.vn-time { white-space: normal; font-size: 13px; min-width: 0; }
.vn-row, .t-voice .vn { flex-wrap: wrap; }
.wave { flex: 1 0 88px; min-width: 88px; overflow: visible; }
.t-voice .vn-time { flex-basis: 100%; }
.play { cursor: default; }
.chat { height: auto; max-height: none; overflow: visible; }
.chat .msg { overflow-wrap: anywhere; }
.mood .dot, .chat-top small::before { background: #a9a1a6; box-shadow: none; }
@media (max-width:640px) {
  .hv { aspect-ratio: auto; min-height: 720px; padding-top: 20px; }
  .phone { position: relative; width: min(310px, 100%); margin: 0 auto; left: auto; top: auto; transform: none; }
  .phone .screen { font-size: 15px; }
  .phone .p-jr p, .phone .greet { font-size: 15px; }
  .hv .mem { display: none; }
  .hv-lines { display: none; }
  .cell small { font-size: max(11px, 2.6cqw); letter-spacing: .02em; }
  .cell span { font-size: max(13px, 3cqw); }
  .cell-note { font-size: 16px; min-height: 4.8em; }
  .cell.queen svg { width: 6cqw; height: 6cqw; }
  .public-demo { padding: 20px; }
}
@media (prefers-reduced-motion:reduce) {
  html, html:focus-within { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
