Faits : A. A.a. La commune de Lausanne était propriétaire de la parcelle xxx située à la rue ... à Lausanne. La société B._ SA, désormais en liquidation, était propriétaire de la parcelle contiguë yyy, sur laquelle était édifié un bâtiment d'habitation. En 1993, la commune a proposé à C._ société coopérative d'ériger des logements subventionnés sur sa parcelle. Ladite société (ci-après: la constructrice) a accepté. En janvier 1995, celle-ci a signé un contrat d'architecte global avec A._ SA (ci-après: l'atelier d'architecture). En octobre 1995, elle a conclu un contrat d'ingénieur avec D._ SA; cette entité (ci-après: le bureau d'ingénieurs) était notamment chargée de diriger les travaux préparatoires et de terrassement. Un rapport réalisé en juillet 1996 par le bureau d'études géotechniques E._ SA a mis en évidence une couche de limon sableux et graveleux d'origine morainique, à quelque 11 mètres de profondeur; la molasse sous-jacente était arrivée à cet emplacement par une instabilité probablement très ancienne. Le bureau d'études préconisait diverses mesures de sécurisation en relation avec les travaux projetés. En particulier, il recommandait la pose d'ancrages avant le début des terrassements pour assurer la stabilité des murs de soutènement des bâtiments existants sur les parcelles voisines. Par acte notarié du 7 janvier 1997, la commune a octroyé à la constructrice un droit de superficie à titre de droit distinct et permanent pour une durée maximale de 99 ans, moyennant redevance. La commune déclarait n'assumer aucune garantie quant à la nature du sol (art. 14 al. 3 du contrat). A.b. La constructrice a conclu une assurance pour la responsabilité civile du maître d'ouvrage prenant effet le 14 janvier 1997. La partie cocontractante était G._, laquelle a ultérieurement été reprise par F._ SA (ci-après: la compagnie d'assurance). Le contrat renvoyait aux conditions générales d'assurance (CGA). L'art. 5 let. d CGA excluait de l'assurance les prétentions fondées sur une responsabilité contractuelle excédant les prescriptions légales. Selon l'art. 7 CGA, l'assureur devait payer les indemnités dues lors de prétentions justifiées et contester les réclamations injustifiées. Ses prestations incluaient notamment les intérêts du dommage, les frais d'expertise, d'avocat et de justice et les dépens à la partie adverse; elles étaient limitées par la somme d'assurance prévue par la police. En l'occurrence, la limite a été fixée à 2 millions de francs, après déduction d'une franchise de 5'000 fr. A.c. Les travaux d'excavation ont débuté le 12 février 1997. Les 2 et 3 mars 1997, des fissures sont apparues sur les bâtiments voisins de la fouille, dont celui appartenant à B._ SA. Les travaux de terrassement ont été interrompus le 4 mars 1997. Le 7 mars 1997, les fissures se sont encore élargies. Un remblayage d'urgence (1'500 m3 de terre) a dû être exécuté. La couche de terre qui stabilisait l'ancienne masse de glissement située sous le bâtiment propriété de B._ SA a été déblayée sans être remplacée par un dispositif d'ancrages. L'ancienne masse de glissement a recommencé à se déplacer, tout d'abord lentement durant le mois de février 1997, puis brusquement les 2 et 3 mars 1997. Le bâtiment situé sur cette parcelle yyy s'est progressivement dégradé, au point que ses occupants ont dû être évacués en juillet 1997; il était devenu inhabitable. Sa solidité était moindre et sa durabilité diminuée. La meilleure solution était de le détruire et d'en reconstruire un nouveau, ce qui a été fait. La cause directe de ce glissement de terrain est due à l'absence de sécurisation préalable des travaux d'excavation. A.d. Par télécopie du 8 août 1997, la compagnie d'assurance a fait savoir à la constructrice assurée qu'elle estimait grossièrement le dommage à 3,5 millions de francs. Elle a assumé divers frais concernant notamment des travaux destinés à éviter l'effondrement du terrain, des indemnités pour les locataires de l'immeuble sinistré et des expertises privées. Au total, elle a versé 674'650 fr. 50. Le 14 mai 1998, la compagnie d'assurance a écrit à la constructrice qu'elle refusait de prendre en charge le sinistre et l'invitait à rembourser les prestations déjà versées. Elle expliquait que le terrain semblait être une des causes importantes du dommage et que la constructrice, en acceptant d'exonérer la commune de toute responsabilité quant à la nature du sol (art. 14 al. 3 du contrat de superficie), avait assumé un risque qui ne lui incombait pas légalement; or, l'art. 5 let. d CGA excluait de l'assurance les prétentions fondées sur une responsabilité contractuelle excédant les prescriptions légales. B. B.a. Le 19 août 1998, B._ SA (ci-après: la propriétaire lésée) a ouvert action contre la constructrice et la commune devant la Cour civile du Tribunal cantonal vaudois. Elle concluait à ce que les deux défenderesses soient solidairement condamnées à lui payer 3'970'000 fr. plus intérêts. La constructrice a appelé en cause la compagnie d'assurance, l'atelier d'architecture, le bureau d'ingénieurs et le bureau d'études géotechniques. Par jugement du 19 mai 2011, la Cour civile a condamné la constructrice à payer à la propriétaire lésée la somme totale de 3'017'825 fr., intérêts en sus. Elle a considéré que la constructrice, comme titulaire du droit de superficie, répondait seule des immissions excessives causées par les travaux d'excavation ayant conduit à endommager le bâtiment de la demanderesse (art. 679 et 684 CC). Quant à la compagnie d'assurance, elle devait couvrir la constructrice en raison du contrat d'assurance responsabilité civile. L'art. 5 let. d CGA, qui excluait la prise en charge des prétentions contractuelles dépassant les obligations légales, était inapplicable en l'espèce; en effet, la responsabilité de la constructrice pour le dommage causé aux immeubles voisins découlait d'une prescription légale, plus précisément de l'interprétation donnée à l'art. 679 CC par le Tribunal fédéral. Au demeurant, la cause du dommage subi par la propriétaire lésée résultait non pas de la nature du sol, mais du fait d'avoir excavé sans sécurisation préalable. La compagnie d'assurance devait payer la somme assurée maximale, soit 2 millions de francs, dont à déduire une franchise de 5'000 fr. et la somme déjà versée (674'650 fr. 50). Elle se trouvait dans un rapport de solidarité imparfaite avec le bureau d'ingénieurs et l'atelier d'architecture, qui avaient enfreint leurs obligations de mandataires. En bref, elle devait être condamnée, solidairement avec ces deux débiteurs, à relever la constructrice de tout montant versé à la propriétaire lésée, à concurrence de 1'320'349 fr. 50 plus intérêts à 5 % l'an dès le 1er octobre 1997. B.b. La compagnie d'assurance et trois autres parties ont déféré ce jugement à la Cour d'appel civile du Tribunal cantonal, laquelle a rendu son arrêt le 12 août 2013. Seul l'appel de la compagnie d'assurance a été partiellement admis, le point de départ de l'intérêt étant fixé au 14 mai 1998 au lieu du 1er octobre 1997. C. La compagnie d'assurance saisit le Tribunal fédéral d'un recours en matière civile. Elle requiert la réforme de l'arrêt sur appel, en ce sens que le montant (1'320'349 fr. 50) à concurrence duquel elle doit relever la constructrice pour les versements en faveur de la propriétaire lésée porte intérêts à 5 % l'an "dès le jour où cette prestation d'assurance sera devenue exigible", et non pas dès le 14 mai 1998 comme le retient la Cour d'appel. La constructrice assurée conclut au rejet du recours, tout comme la propriétaire lésée, qui a déposé une réponse spontanée. Le bureau d'ingénieurs et l'atelier d'architecture n'ont déposé aucune écriture dans le délai qui leur avait été imparti. L'autorité précédente se réfère à son arrêt. Deux autres recours ont été déposés contre l'arrêt sur appel, l'un par la constructrice (4A_126/2014), l'autre par l'atelier d'architecture (4A_128/2014). Par ordonnances du 13 juin 2014, la Présidente de la cour de céans a octroyé l'effet suspensif aux trois recours. 