/* Clone-only additions: chat launcher/panel (the original injects these from an external script), tour/motion helpers. */
.morpho-chat-ready { --morpho-chat-width: 176px; --morpho-control-edge: 24px; --morpho-control-gap: 10px; --morpho-control-bottom: max(18px, env(safe-area-inset-bottom)); }
#morpho-chat-link { box-sizing: border-box; position: fixed; z-index: 145; right: var(--morpho-control-edge); bottom: var(--morpho-control-bottom); width: var(--morpho-chat-width); height: 48px; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 0 16px; border: 1px solid rgba(234, 247, 255, 0.7); border-radius: 999px; background: linear-gradient(120deg, rgb(228, 245, 255), rgb(200, 234, 255)); box-shadow: rgba(255, 255, 255, 0.6) 0 1px 0 inset, rgba(0, 0, 0, 0.2) 0 6px 24px; color: rgb(16, 24, 32); cursor: pointer; isolation: isolate; transition: background 0.2s, box-shadow 0.2s, transform 0.2s; font: 16px Gotham, Arial, sans-serif; }
#morpho-chat-link img { flex: 0 0 auto; width: 28px; height: 28px; object-fit: contain; filter: brightness(0) saturate(100%); animation: 4.8s ease-in-out 0s infinite normal none running morpho-chat-logo-breathe; }
#morpho-chat-link:hover { background: rgb(234, 247, 255); box-shadow: rgb(255, 255, 255) 0 1px 0 inset, rgba(0, 0, 0, 0.267) 0 8px 28px; transform: translateY(-2px); }
#morpho-chat-link:focus-visible { outline: rgb(208, 237, 255) solid 2px; outline-offset: 4px; }
.morpho-chat-tooltip { white-space: nowrap; font: 500 12px / 1.2 Gotham, Arial, sans-serif; letter-spacing: -0.015em; pointer-events: none; }
.morpho-chat-badge { box-sizing: border-box; position: absolute; right: -2px; top: -5px; min-width: 21px; height: 21px; padding: 0 4px; display: grid; place-items: center; background: rgb(16, 24, 32); color: rgb(208, 237, 255); border: 2px solid rgb(208, 237, 255); border-radius: 20px; font: 10px Arial, sans-serif; }
#morpho-chat-link [hidden], #morpho-chat-panel[hidden] { display: none !important; }
#morpho-chat-panel { position: fixed; z-index: 150; right: 24px; bottom: 82px; width: min(390px, 100vw - 32px); height: 600px; max-height: calc(100dvh - 106px); border: 1px solid rgba(208, 237, 255, 0.25); border-radius: 20px; overflow: hidden; background: rgb(17, 29, 39); box-shadow: rgba(0, 0, 0, 0.467) 0 18px 75px; color: #fff; font-family: Gotham, Arial, sans-serif; display: flex; flex-direction: column; }
.morpho-chat-head { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-bottom: 1px solid rgba(208, 237, 255, 0.12); background: rgb(14, 25, 34); }
.morpho-chat-head img { width: 40px; height: 40px; filter: brightness(0) invert(1); }
.morpho-chat-head div { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.morpho-chat-head strong { font-size: 15px; font-weight: 500; }
.morpho-chat-head span { font-size: 10px; color: rgb(180, 201, 214); }
.morpho-chat-head button { background: none; border: 0; color: #fff; cursor: pointer; width: 36px; height: 36px; display: grid; place-items: center; font-size: 18px; border-radius: 50%; }
.morpho-chat-head button:hover { background: rgba(208, 237, 255, 0.08); }
.morpho-chat-body { flex: 1; padding: 36px 28px 20px; display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.morpho-chat-kicker { font-size: 9px; letter-spacing: 0.2em; color: rgba(208, 237, 255, 0.7); margin: 0 0 8px; }
.morpho-chat-body h2 { margin: 0 0 14px; font: 300 44px / 1.05 Gotham, sans-serif; letter-spacing: -0.04em; color: #fff; }
.morpho-chat-body h2 em { font-family: "Publico Headline", Georgia, serif; font-style: italic; font-weight: 300; }
.morpho-chat-body p { margin: 0; font-size: 14px; line-height: 1.7; color: rgb(220, 232, 240); }
.morpho-chat-log { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.morpho-chat-log span { align-self: flex-end; background: rgba(208, 237, 255, 0.12); border-radius: 14px 14px 2px 14px; padding: 8px 12px; font-size: 13px; }
.morpho-chat-log span.bot { align-self: flex-start; background: rgba(208, 237, 255, 0.06); border-radius: 14px 14px 14px 2px; }
.morpho-chat-composer { margin: 0 16px; display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 18px; border: 1px solid rgba(208, 237, 255, 0.22); border-radius: 16px; background: rgb(14, 25, 34); }
.morpho-chat-composer input { flex: 1; min-width: 0; background: none; border: 0; color: #fff; font: 14px Gotham, Arial, sans-serif; outline: none; }
.morpho-chat-composer input::placeholder { color: rgb(150, 167, 180); }
.morpho-chat-composer button { width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgb(208, 237, 255); color: rgb(16, 24, 32); display: grid; place-items: center; cursor: pointer; }
.morpho-chat-note { margin: 10px 20px 16px; font-size: 9px; color: rgb(150, 167, 180); text-align: center; }
@media (max-width: 700px) { .morpho-chat-ready { --morpho-chat-width: 154px; --morpho-control-edge: 12px; --morpho-control-gap: 8px; --morpho-control-bottom: max(12px, env(safe-area-inset-bottom)); } #morpho-chat-link { height: 46px; gap: 8px; padding: 0 12px; } #morpho-chat-link img { width: 24px; height: 24px; } .morpho-chat-tooltip { font-size: 11px; } #morpho-chat-panel { right: 12px; bottom: 74px; max-height: calc(100dvh - 98px); } }
@media (max-width: 600px) { #morpho-chat-panel { inset: 0; width: 100%; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; } }
/* globe canvas + pins container */
.bz-globe canvas { position: absolute; inset: 0; }
/* motion-paused: freeze ambient loops */
.flow-page.motion-paused .distant-bird, .flow-page.motion-paused .distant-bird i, .flow-page.motion-paused .natural-morpho { animation-play-state: paused; }
/* wellbeing animations run when the panel is active */
.flow-page .coastal-story [data-shot="wellbeing"][data-running="true"] .territory-image, .flow-page .coastal-story [data-shot="wellbeing"][data-running="true"]::before, .flow-page .coastal-story [data-shot="wellbeing"][data-running="true"]::after { animation-play-state: running; }
.bluezone-journey[data-chapter="2"] .bz-nicoya-target b { animation-play-state: running; }
/* sparkling bubbles burst */
.sparkling-effervescence[data-burst="true"] i { animation: fresh-bubble var(--bubble-duration) ease-out var(--bubble-delay) both; }
.sparkling-effervescence[data-burst="true"] i[data-droplet="true"] { animation-name: fresh-droplet; }
.sparkling-effervescence[data-burst="true"] { opacity: 1; }
/* home offer hidden (campaign window closed at build time, same as the live page) */
.home-offer { display: none; }
/* finale 3D can swaps in over its fallback once the renderer is ready (rule only exists in the live page after hydration) */
.finale-return-model.is-ready .flow-webgl { opacity: 1; }
.finale-return-model.is-ready .finale-return-fallback { opacity: 0; }
