@charset "utf-8";

.project_motion { width: 100%; height: 100%; display: grid; grid-template: minmax(0,1fr) / minmax(0,1fr); place-items: center; padding: 12px 15px 40px; }
.project_motion svg { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; max-width: 440px; max-height: 100%; overflow: visible; }
.project_motion_compact { height: 190px; padding: 0 15px; }
.project_motion_compact svg { max-width: 340px; }
.pm_label { font-family: inherit; font-size: 8px; font-weight: 650; letter-spacing: 1.2px; }
.pm_footer { font-family: inherit; font-size: 6.5px; font-weight: 550; letter-spacing: 1.2px; }

/* MCP: routed requests and responses between business systems and an assistant. */
.pm_mcp_route { fill: none; stroke: rgba(134,209,202,.24); stroke-width: 1.5; stroke-linejoin: round; }
.pm_mcp_request { fill: none; stroke: var(--home-cyan); stroke-width: 3; stroke-dasharray: 7 28; stroke-linejoin: round; animation: pmMcpRequest 2.8s linear infinite; }
.pm_mcp_response { fill: none; stroke: var(--home-mint); stroke-width: 2; stroke-dasharray: 4 32; stroke-linejoin: round; animation: pmMcpResponse 3.2s linear infinite; }
.pm_mcp_system, .pm_mcp_agent { fill: var(--home-navy-soft); stroke: rgba(134,209,202,.48); stroke-width: 1.2; }
.pm_mcp_system_title { fill: #fff; font-size: 16px; font-weight: 650; letter-spacing: .4px; }
.pm_mcp_table { fill: none; stroke: rgba(134,209,202,.45); stroke-width: 1; }
.pm_mcp_cell { fill: var(--home-mint); animation: pmMcpData 4.8s ease-in-out infinite; }
.pm_mcp_contact { fill: none; stroke: var(--home-mint); stroke-width: 1.6; stroke-linecap: round; }
.pm_mcp_contact_line { fill: none; stroke: rgba(134,209,202,.5); stroke-width: 2; stroke-linecap: round; }
.pm_mcp_core_halo { fill: rgba(0,168,212,.05); stroke: rgba(134,209,202,.23); stroke-width: 1; }
.pm_mcp_core { fill: var(--home-mint); stroke: rgba(255,255,255,.6); stroke-width: 1; }
.pm_mcp_plug { fill: none; stroke: var(--home-navy); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pm_mcp_core_title { fill: var(--home-navy); font-size: 18px; font-weight: 750; letter-spacing: 1.3px; }
.pm_mcp_port { fill: #fff; stroke: var(--home-cyan); stroke-width: 1.5; animation: pmMcpData 4.8s ease-in-out infinite; }
.pm_mcp_port_two { animation-delay: -1.6s; }
.pm_mcp_port_three { animation-delay: -3.2s; }
.pm_mcp_caption { fill: var(--home-mint); font-size: 8px; letter-spacing: 1.1px; font-weight: 550; }
.pm_mcp_spark { fill: var(--home-mint); }
.pm_mcp_actions path { stroke: var(--home-mint); stroke-width: 2; stroke-linecap: round; animation: pmMcpData 4.8s ease-in-out infinite; }
.pm_mcp_actions path:nth-child(2) { animation-delay: 400ms; }
.pm_mcp_actions path:nth-child(3) { animation-delay: 800ms; }
@keyframes pmMcpRequest { to { stroke-dashoffset: -70; } }
@keyframes pmMcpResponse { to { stroke-dashoffset: 72; } }
@keyframes pmMcpData { 0%, 100% { opacity: .4; } 35%, 70% { opacity: 1; } }

/* FireScript: voice becomes a record for a person to review. */
.project_motion_er { --pm-red: #e31314; --pm-ink: #172024; }
.pm_fire_light { fill: rgba(255,255,255,.78); }
.pm_fire_source, .pm_fire_review { fill: #222b2f; stroke: rgba(227,19,20,.62); stroke-width: 1; }
.pm_fire_path { fill: none; stroke: rgba(227,19,20,.35); stroke-width: 2; }
.pm_fire_signal { fill: none; stroke: #e31314; stroke-width: 3; stroke-dasharray: 7 43; animation: pmFireSignal 2.4s linear infinite; }
.pm_fire_audio rect { fill: #e31314; transform-box: fill-box; transform-origin: center; animation: pmFireVoice 1.15s ease-in-out infinite alternate; animation-delay: calc(var(--pm-i) * -130ms); }
.pm_fire_paper { fill: #fafafa; stroke: rgba(227,19,20,.75); stroke-width: 1.25; }
.pm_fire_title { fill: #172024; font-size: 11.5px; font-weight: 750; letter-spacing: -.3px; }
.pm_fire_subtitle { fill: #687074; font-size: 5.6px; letter-spacing: .8px; }
.pm_fire_divider { stroke: rgba(23,32,36,.15); stroke-width: 1; }
.pm_fire_field { animation: pmFireRecord 6s ease-in-out infinite; }
.pm_fire_field_two { animation-delay: 350ms; }
.pm_fire_field_three { animation-delay: 700ms; }
.pm_fire_field rect { fill: #e31314; }
.pm_fire_field text { fill: #172024; font-size: 6px; letter-spacing: .9px; font-weight: 650; }
.pm_fire_field path { stroke: #adb1b2; stroke-width: 3; stroke-linecap: round; }
.pm_fire_review_ring { fill: none; stroke: #e31314; stroke-width: 1.5; opacity: .6; animation: pmFireReview 6s ease-in-out infinite; }
.pm_fire_person { fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; }

/* Local AI: the entire audio-to-text path remains inside one workstation. */
.pm_local_case { fill: var(--home-navy-soft); stroke: rgba(134,209,202,.65); stroke-width: 1.4; }
.pm_local_screen { fill: var(--home-navy); stroke: rgba(134,209,202,.18); }
.pm_local_light { fill: var(--home-mint); }
.pm_local_micro { fill: rgba(255,255,255,.63); font-size: 5.7px; letter-spacing: .8px; }
.pm_local_status { fill: var(--home-mint); }
.pm_local_audio rect { fill: var(--home-mint); transform-box: fill-box; transform-origin: center; animation: pmLocalAudio 1.7s ease-in-out infinite alternate; animation-delay: calc(var(--pm-i) * -190ms); }
.pm_local_bus { fill: none; stroke: rgba(134,209,202,.25); stroke-width: 1.5; }
.pm_local_packet { fill: none; stroke: var(--home-mint); stroke-width: 2.5; stroke-dasharray: 5 25; animation: pmLocalPacket 1.8s linear infinite; }
.pm_local_pins { fill: none; stroke: rgba(134,209,202,.7); stroke-width: 2; }
.pm_local_chip_halo { fill: rgba(134,209,202,.07); stroke: rgba(134,209,202,.3); animation: pmLocalCompute 3s ease-in-out infinite; }
.pm_local_chip { fill: var(--home-mint); stroke: rgba(255,255,255,.55); }
.pm_local_chip_label { fill: var(--home-navy); font-size: 10px; font-weight: 750; letter-spacing: 1.5px; }
.pm_local_transcript { fill: rgba(134,209,202,.06); stroke: rgba(134,209,202,.4); }
.pm_local_text path { fill: none; stroke: var(--home-mint); stroke-width: 2.2; stroke-linecap: round; stroke-dasharray: 72; animation: pmLocalTranscribe 6s ease-in-out infinite; }
.pm_local_text .pm_local_line_two { animation-delay: 450ms; }
.pm_local_text .pm_local_line_three { animation-delay: 900ms; }
.pm_local_text .pm_local_line_four { animation-delay: 1350ms; }
.pm_local_text .pm_local_cursor { stroke-width: 1.5; animation: pmLocalCursor 1.2s steps(2,end) infinite; }
.pm_local_stand { fill: none; stroke: rgba(134,209,202,.65); stroke-width: 3; stroke-linecap: round; }
.pm_local_divider { stroke: rgba(134,209,202,.2); stroke-width: 1; }

/* FireScript uses the ink/red palette of its supplied logo throughout the panel. */
.home-engagement .eng_studio_er { background: rgba(23,32,36,.96); border-color: rgba(227,19,20,.5); }
.home-engagement .eng_studio_er .eng_studio_canvas { background: radial-gradient(ellipse at center, rgba(227,19,20,.13), transparent 70%); }
.home-engagement .eng_studio_er .eng_studio_wordmark > span { color: #e31314; }
.home-engagement .eng_studio_er .eng_studio_dots i { background: #e31314; opacity: 1; }
.home-engagement .eng_studio_er .eng_studio_top,
.home-engagement .eng_studio_er .eng_studio_story,
.home-engagement .eng_studio_er .eng_studio_switches,
.home-engagement .eng_studio_er .eng_studio_link { border-color: rgba(227,19,20,.24); }
.home-engagement .eng_studio_er .eng_micro_label,
.home-engagement .eng_studio_er .eng_studio_caption,
.home-engagement .eng_studio_er .eng_studio_link { color: rgba(255,255,255,.82); }
.home-engagement .eng_studio_er .eng_micro_label > span,
.home-engagement .eng_studio_er .eng_studio_link > span { color: #e31314; }
.home-engagement .eng_studio_er .eng_studio_switches button:hover,
.home-engagement .eng_studio_er .eng_studio_link:hover { color: #fff; background: rgba(227,19,20,.14); }
.home-engagement .eng_studio_er .eng_studio_switches button[aria-pressed="true"] { background: #e31314; color: #fff; }

@keyframes pmFireVoice { from { transform: scaleY(.28); } to { transform: scaleY(1); } }
@keyframes pmFireSignal { to { stroke-dashoffset: -50; } }
@keyframes pmFireRecord { 0%, 15% { opacity: .3; } 38%, 88% { opacity: 1; } 100% { opacity: .3; } }
@keyframes pmFireReview { 0%, 48%, 100% { opacity: .2; } 68%, 88% { opacity: 1; } }
@keyframes pmLocalAudio { from { transform: scaleY(.45); } to { transform: scaleY(1); } }
@keyframes pmLocalPacket { to { stroke-dashoffset: -30; } }
@keyframes pmLocalCompute { 50% { fill: rgba(134,209,202,.18); stroke: rgba(134,209,202,.7); } }
@keyframes pmLocalTranscribe { 0%, 15% { stroke-dashoffset: 69; opacity: .5; } 48%, 92% { stroke-dashoffset: 0; opacity: 1; } 100% { stroke-dashoffset: 69; opacity: .5; } }
@keyframes pmLocalCursor { 50% { opacity: .2; } }

.home-engagement[data-motion-paused="true"] .project_motion *,
.home-engagement[data-motion-paused="true"] .project_motion *::before,
.home-engagement[data-motion-paused="true"] .project_motion *::after { animation: none !important; }
.home-engagement[data-motion-paused="true"] .pm_fire_field,
.home-engagement[data-motion-paused="true"] .pm_fire_review_ring,
.home-engagement[data-motion-paused="true"] .pm_local_text path { opacity: 1; stroke-dashoffset: 0; }
@media (max-width: 450px) {
    .project_motion { padding-inline: 5px; }
    .project_motion_compact { padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .project_motion *, .project_motion *::before, .project_motion *::after { animation: none !important; }
    .pm_fire_field, .pm_fire_review_ring, .pm_local_text path { opacity: 1; stroke-dashoffset: 0; }
}
