@font-face { font-family:Manrope; src:url('../assets/fonts/manrope-latin-400-normal.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:swap; }
body.is-chat { overflow:hidden; background:var(--chat-paper); }
.app.chat-app { position:fixed; inset:var(--chat-viewport-top, 0px) auto auto 50%; transform:translateX(-50%); width:min(100%,660px); height:var(--chat-viewport-height, 100dvh); margin:0; padding:0 0 var(--chat-dock-height, 85px); }
.realm-chat {
 --chat-gutter:24px; --chat-avatar-size:58px; --chat-message-gap:10px; --chat-composer-height:60px;
 position:relative; isolation:isolate; display:grid; grid-template-rows:auto minmax(0,1fr) auto; height:100%; min-height:0; color:var(--chat-ink); background:var(--chat-paper);
}
.realm-chat button { cursor:pointer; -webkit-tap-highlight-color:transparent; }
.realm-chat img { user-select:none; }
.realm-chat__world,.realm-chat__world > img,.realm-chat__world-veil { position:absolute; inset:0; width:100%; height:100%; }
.realm-chat__world { z-index:-1; overflow:hidden; pointer-events:none; }
.realm-chat__world > img { object-fit:cover; object-position:center top; }
.realm-chat__world-veil { background:var(--chat-veil); }
.realm-chat__header { position:relative; z-index:4; display:grid; grid-template-columns:44px 43px minmax(0,1fr) 44px; gap:8px; align-items:center; min-height:calc(72px + env(safe-area-inset-top,0px)); padding:env(safe-area-inset-top,0px) 12px 0; border-bottom:1px solid var(--chat-line); background:color-mix(in srgb,var(--chat-paper) 92%,transparent); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.realm-chat__header-control { display:grid; width:44px; height:44px; padding:0; border:0; place-items:center; background:transparent; }
.realm-chat__header-control img { width:21px; height:21px; object-fit:contain; filter:brightness(0) invert(.85); }
.realm-chat__back { transform:rotate(180deg); }
.realm-chat__header-copy { min-width:0; }
.realm-chat__scroll { min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--chat-line) transparent; scroll-padding:32px; }
.realm-chat__thread { padding:clamp(56px,var(--chat-intro-space),290px) var(--chat-gutter) 32px; min-height:100%; }
.realm-chat__composer-layer { z-index:5; padding:0 12px 8px; }
body.is-chat .app-dock { background:linear-gradient(transparent,var(--chat-paper) 30%); }
body.is-chat .app-dock-rail { border-color:var(--chat-line); }
body.chat-keyboard-open .app-dock { display:none; }
body.chat-keyboard-open .realm-chat__composer-layer { padding-bottom:max(8px,env(safe-area-inset-bottom,0px)); }
.realm-chat__menu { position:fixed; width:min(360px,calc(100% - 32px)); padding:24px; color:var(--chat-ink); background:var(--chat-panel); border:1px solid var(--chat-line); border-radius:20px; box-shadow:0 12px 70px #000c; }
.realm-chat__menu::backdrop { background:#050209b8; backdrop-filter:blur(8px); }
.realm-chat__menu h2 { margin:0 0 12px; font-weight:500; font-size:28px; }
.realm-chat__menu p { margin:0 0 20px; color:var(--chat-muted); font:13px/1.6 Manrope,Arial,sans-serif; }
.realm-chat__menu :is(a,button) { display:flex; width:100%; align-items:center; min-height:48px; margin-top:10px; padding:10px 14px; border:1px solid var(--chat-line); border-radius:10px; color:var(--chat-ink); background:var(--chat-paper); text-align:left; text-decoration:none; font:13px/1.4 Manrope,Arial,sans-serif; }
.realm-chat__menu [data-chat-close] { justify-content:center; background:var(--chat-panel); }
.realm-message-frame__pin { top:calc(50% - 2.5px); right:-2.5px; width:5px; height:5px; border-radius:50%; background:var(--chat-accent); }
.realm-chat__header-copy h1 {
  margin: 0;
  color: var(--chat-ink);
  font: 500 1.4375rem/1.05 'Cormorant Garamond', Georgia, serif;
  letter-spacing: .055em;
}
.realm-chat__header-copy p {
  overflow: hidden;
  margin: 5px 0 0;
  color: var(--chat-muted);
  font: 12px/1.2 'Manrope', Arial, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.realm-chat__threshold { position:relative; margin:0 0 14px; }
.realm-chat__threshold-art { position:relative; height:70px; }
.realm-chat__threshold-rail { position:absolute; width:calc(100% + 16px); height:18px; left:-8px; top:26px; object-fit:fill; }
.realm-chat__threshold-sigil { position:absolute; width:76px; height:70px; left:calc(50% - 38px); top:0; object-fit:contain; }
.realm-chat__threshold-caption { margin:0; text-align:center; color:var(--chat-accent); font:400 1rem/1.4 'Cormorant Garamond',Georgia,serif; letter-spacing:.16em; text-shadow:0 1px 4px #000,0 0 14px #000; }
.realm-chat__threshold-caption img { display:inline-block; width:18px; height:22px; object-fit:contain; margin-left:5px; vertical-align:middle; }
.realm-chat[data-chat-persona="aeri"] .realm-chat__threshold-caption { font:400 1.6rem/1.2 Caveat,cursive; letter-spacing:0; }
.realm-chat__messages { display: grid; gap: 28px; }
.realm-chat__message { display: flex; align-items: flex-start; gap: var(--chat-message-gap); min-width: 0; }
.realm-chat__message > .realm-portrait { margin-top: 1px; }
.realm-chat__message[data-author="user"] { justify-content: flex-end; }
.realm-chat__speaker {
  display: block;
  margin-bottom: 5px;
  color: var(--chat-accent);
  font: 500 11px/1 'Cormorant Garamond', Georgia, serif;
  letter-spacing: .25em;
  text-transform: uppercase;
}
.realm-chat .realm-message-frame p {
  margin: 0;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
  color: var(--chat-ink);
  font: 400 1.25rem/1.22 'Cormorant Garamond', Georgia, serif;
}
.realm-chat .realm-message-frame[data-side="outgoing"] p { font: 400 .8125rem/1.5 'Manrope', Arial, sans-serif; color: var(--chat-ink); }
.realm-chat__composer {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 44px;
  height: var(--chat-composer-height);
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
  padding: 0 18px 0 24px;
}
.realm-chat__composer-sigil { width: 23px; height: 40px; justify-self: center; object-fit: contain;  }
.realm-chat__composer-field { display: flex; align-items: center; min-width: 0; height: 28px; border-left: 1px solid var(--chat-line); }
.realm-chat__composer input {
  display: block;
  width: 100%;
  height: 44px;
  min-width: 0;
  padding: 0 0 0 12px;
  border: 0;
  outline: 0;
  color: var(--chat-ink);
  background: transparent;
  font: 400 16px/24px 'Manrope', Arial, sans-serif;
}
.realm-chat__composer input::placeholder { color: var(--chat-muted); }
.realm-chat__composer [data-chat-send] {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border: 1px solid var(--chat-accent);
  border-radius: 50%;
  color: var(--chat-accent);
  background: var(--chat-paper);
}
.realm-chat__composer [data-chat-send]:disabled { color: var(--chat-muted); }
.realm-chat__composer [data-chat-send] img { width:20px; height:20px; filter:brightness(0) invert(.85); }
.realm-chat :is(button,input,a,[tabindex="0"]):focus-visible { outline: 2px solid var(--chat-accent); outline-offset: 3px; }


@media(max-width:359px) { .realm-chat__composer { column-gap:8px; padding-left:18px; padding-right:15px; grid-template-columns:24px minmax(0,1fr) 44px; } .realm-chat__composer input { padding-left:9px; } }
@media(max-height:650px) { .realm-chat__thread { padding-top:28px; } }

@font-face { font-family:Caveat; src:url('../assets/fonts/caveat.ttf') format('truetype'); font-weight:400 700; font-style:normal; font-display:swap; }
.realm-chat__film,.realm-chat__film > :is(img,video) { position:absolute; inset:0; width:100%; height:100%; }
.realm-chat__film > :is(img,video) { object-fit:cover; object-position:center top; }
.realm-chat__film .ambient-video { opacity:0; transition:opacity .4s; }
.realm-chat__film.is-playing .ambient-video { opacity:1; }
.realm-chat__world > .realm-chat__foreground { z-index:2; object-fit:fill; }
.realm-chat__world-veil { z-index:3; }
.realm-chat__motion-setting { display:flex; gap:20px; align-items:center; justify-content:space-between; min-height:48px; font:14px/1.4 Manrope,Arial,sans-serif; }
.realm-chat__motion-setting input { width:22px; height:22px; accent-color:var(--chat-accent); }
.realm-chat__menu .realm-chat__motion-note { font-size:12px; margin:6px 0 16px; }
.realm-chat__persona-switch { display:flex; flex-wrap:wrap; gap:6px; }
.realm-chat__menu .realm-chat__persona-switch a { flex:1 1 auto; width:auto; padding:8px 12px; margin:0; justify-content:center; }
.realm-chat__persona-switch [aria-current="page"] { box-shadow:inset 0 0 0 1px var(--chat-accent); }
@media (prefers-reduced-motion:reduce) { .realm-chat__film .ambient-video { transition:none; } }

.realm-chat__composer-finial { top:calc(50% - 7px); }
.realm-chat__composer-finial--left { left:-4px; }
.realm-chat__composer-finial--right { right:-4px; }

.realm-chat[data-chat-persona="eva"] .realm-chat__threshold-caption { color:#f6e19d; }

.realm-chat__world > .realm-chat__hanging { inset:82px auto auto; width:33px; height:125px; object-fit:contain; z-index:4; opacity:.7; }
.realm-chat__world > .realm-chat__hanging--left { left:15%; }
.realm-chat__world > .realm-chat__hanging--right { top:0; right:12%; height:172px; }

.realm-chat__threshold.has-caption .realm-chat__threshold-art { height:52px; }

.realm-chat__scene-plane { position:absolute; top:0; }
.realm-chat__scene-plane > .realm-chat__environment { display:block; width:100%; height:100%; }
.realm-chat__film.is-windowed { mask-image:linear-gradient(transparent,#000 5%,#000 95%,transparent); }
.realm-chat__threshold-caption { padding-top:8px; }
.realm-chat[data-chat-persona="noira"] .realm-chat__composer-sigil { width:34px; }

.realm-chat[data-chat-persona="kaeris"] .realm-chat__threshold-sigil { top:12px; filter:brightness(1.4); }
.realm-chat[data-chat-persona="kaeris"] :is(.realm-portrait__filigree,.realm-chat__composer-sigil) { filter:brightness(1.4) drop-shadow(0 0 .3px var(--chat-accent)); }

/* Scene artwork is a message; the realm and authored composer stay in place. */
.scene-card { position:relative; margin:18px 6px; padding:20px 22px; isolation:isolate; color:var(--chat-ink); }
.scene-card__media { position:relative; aspect-ratio:4 / 5; display:grid; place-items:center; background:color-mix(in srgb,var(--chat-paper) 88%,transparent); overflow:hidden; }
.scene-card__media > img { width:100%; height:100%; object-fit:contain; }
.scene-card__media > p { position:absolute; inset:0; display:grid; place-items:center; text-align:center; padding:22px; color:var(--chat-muted); }
.scene-card__media > [hidden] { display:none; }
.scene-card figcaption { position:relative; padding-top:12px; font-size:.78rem; line-height:1.45; color:var(--chat-muted); }
.scene-card__ornament { position:absolute; width:24px; height:24px; top:-1px; left:calc(50% - 12px); pointer-events:none; }
.scene-status { padding:10px 20px 22px; color:var(--chat-muted); font-size:.9rem; line-height:1.5; }
.scene-status button,.scene-card > button { min-height:44px; padding:9px 14px; border:1px solid var(--chat-line); border-radius:9px; background:var(--chat-panel); color:var(--chat-ink); font:inherit; }
.scene-status[hidden] { display:none; }
