@font-face {
  font-family: Scandia;
  src: url("assets/scandia-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root { font-family: Scandia, Arial, sans-serif; color: #000; background: #fff; font-size: 16px; line-height: 1.4; }
* { box-sizing: border-box; }
body, h1, h2, h3, h4, p, ul { margin: 0; padding: 0; }
html { overflow-y: scroll; }
body { min-width: 0; }
a { -webkit-tap-highlight-color: transparent; }
img { display: block; object-fit: cover; }
ul { list-style: none; }
a { color: inherit; }
section { scroll-margin-top: 96px; }
:focus-visible { outline: 2px solid #191d63; outline-offset: 4px; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 50; padding: 12px; background: #fff; }
.skip-link:focus { top: 12px; }
.content-width { width: 980px; margin: 0 auto; position: relative; }
h2 { font-size: 45px; line-height: 1.4; font-weight: 700; }
.site-header { position: sticky; top: 0; z-index: 20; height: 96px; background: #fff; }
.header-inner { position: relative; width: 980px; height: 96px; margin: auto; }
.brand { position: absolute; top: 20px; left: 0; }
.brand img { width: 207px; height: 56px; }
.hero { position: relative; height: 740px; color: #fff; text-align: center; background: #000; }
.hero-image { position: absolute; width: 100%; height: 100%; inset: 0; }
.hero h1 { position: absolute; top: 295px; left: 50%; transform: translateX(-50%); width: 1012px; font-size: 50px; font-weight: 700; line-height: normal; }
.hero p { position: absolute; top: 416.333px; left: calc(50% - 277px); width: 571px; min-height: 50px; font-size: 20px; line-height: 36px; }
.mission { padding: 57px 0 58px; }
.body-copy { margin-top: 10px; }
.body-copy p + p { margin-top: 22.4px; }
.mission-points { display: grid; gap: 7px; margin-top: 26px; }
.mission-points li { display: flex; align-items: center; min-height: 22.4px; }
.mission-points img { width: 14px; height: 11px; margin-right: 15px; object-fit: contain; }
.technology { padding: 58px 0 59px; background: radial-gradient(circle at 32% 26%, #333 0%, #191d63 36.0321%, #8b0000 75.6775%); color: #fff; }
.offerings { padding: 57px 0 65px; }
.offering-subtitle { font-size: 20px; line-height: 28px; font-weight: 700; margin-top: 10px; }
.offering-description { width: 687px; margin-top: 13px; }
.industry-grid { display: grid; grid-auto-flow: column; grid-template-columns: repeat(3, 318px); grid-template-rows: repeat(4, 298px); column-gap: 11.5px; row-gap: 59px; margin: 28px 0 0 3px; }
.industry-grid > li > img, .industry-grid .source-crop { width: 318px; height: 252px; }
.industry-grid p { width: 288px; margin: 18px 0 0 2px; font-size: 20px; font-weight: 700; line-height: 28px; }
.partners { height: 343px; background: #eee; margin-top: -1px; }
.partners .content-width { height: 100%; }
.partners h2 { position: absolute; top: 66px; left: 374px; width: 291px; }
.partners .content-width > img, .partners .content-width > .source-crop { position: absolute; }
.foresight { width: 253px; height: 102px; left: 12px; top: 153px; }
.mars { width: 128px; height: 130px; left: 315px; top: 139px; }
.nett { width: 217px; height: 52px; left: 499px; top: 178px; }
.uoft { width: 148px; height: 111px; left: 796px; top: 148px; }
.leadership { height: 538px; padding-top: 73px; }
.leaders { display: grid; grid-template-columns: 471px 471px; gap: 38px; margin-top: 54px; margin-left: 1px; }
.leaders li { display: flex; gap: 31px; }
.leaders .portrait { width: 228px; height: 258px; flex: none; }
/* Preserve the Wix thumbnail crop while displaying the untouched original. */
.source-crop { display: block; position: relative; overflow: hidden; }
.source-crop > img { position: absolute; left: 50%; top: 50%; width: 100%; height: 100%; max-width: none; transform: translate(-50%, -50%) scale(var(--source-scale, 1)); }
.copper-crop { --source-scale: 1.153945; }
.power-crop { --source-scale: 1.193467; }
.aimy-crop { --source-scale: 1.008669; }
.uoft { --source-scale: 1.021442; }
.leader-copy { width: 193px; padding-top: 21px; }
.leader-name { height: 62px; font-size: 20px; font-weight: 700; line-height: 28px; }
.aimy-degree { font-size: 18px; line-height: 25.2px; }
.funding { margin-top: -1px; height: 914px; }
.funding-row { display: flex; height: 660px; }
.funding-left { position: relative; width: 49.897959%; }
.funding-copy { position: absolute; top: 73px; left: calc(50% - 159.5px); width: 383px; }
.funding h4 { font-size: 34px; font-weight: 700; line-height: 47.6px; width: 382px; margin: 0 0 15px 1px; }
.funding-copy > p { width: 363px; margin-bottom: 15px; }
.funding-copy .funding-callout { font-size: 20px; font-weight: 700; line-height: 28px; margin-bottom: 29px; }
.contact-button { display: flex; align-items: center; justify-content: center; width: 142px; height: 40px; background: #191d63; color: #fff; text-decoration: none; margin-left: 1px; transition: background-color .4s, color .4s; }
.contact-button:hover { background: #000; color: #eee; }
.funding-image { width: 50.102041%; height: 660px; background: #000; }
.funding-image img { width: 100%; height: 100%; opacity: .5; }
.contact { padding: 12px 0 36px; }
.calendly-inline-widget { width: 100%; max-width: 1020px; height: 700px; margin: 0 auto; }
.contact-heading { max-width: 1036px; margin: 0 auto 22px; }
.contact h3 { font-size: 38px; font-weight: 700; line-height: 53.2px; text-align: center; }
.booking-link { margin: 12px 20px 0; text-align: center; font-size: 14px; line-height: 1.4; }
.booking-link a { color: #191d63; text-underline-offset: 3px; }
.site-footer { background: #191d63; color: #fff; height: 260.6px; }
.footer-row { height: 216px; display: grid; grid-template-columns: 1fr 1fr; }
.footer-about { position: relative; }
.footer-about p { position: absolute; top: 63px; left: calc(50% - 154px); width: 382px; }
.footer-contact { position: relative; font-style: normal; }
.address-row, .email-row { position: absolute; display: flex; align-items: center; }
.address-row { top: 74px; left: calc(50% - 247px); gap: 18px; }
.address-row p { width: 411px; }
.email-row { top: 119.4px; left: calc(50% - 247px); gap: 22px; }
.footer-contact img { object-fit: contain; }
.footer-contact a { text-decoration: none; }
.footer-contact a:hover { text-decoration: underline; }
.copyright { padding-top: 12px; text-align: center; font-size: 14px; line-height: 19.6px; }

/* Wix's desktop canvas is 980px wide; narrow screens use a readable reflow. */
@media (max-width: 1050px) {
  .content-width, .header-inner { width: calc(100% - 40px); }
  .hero h1 { width: calc(100% - 40px); font-size: 44px; }
  .industry-grid { grid-template-columns: repeat(3,minmax(0,1fr)); column-gap: 12px; margin-left: 0; }
  .industry-grid > li > img, .industry-grid .source-crop { width: 100%; }
  .industry-grid p { width: 100%; margin-left: 0; }
  .partners h2 { left: calc(50% - 116px); }
  .partners .foresight { left: 0; width: 24%; object-fit: contain; }
  .partners .mars { left: 32%; width: 13%; object-fit: contain; }
  .partners .nett { left: 51%; width: 23%; object-fit: contain; }
  .partners .uoft { left: 81%; width: 16%; object-fit: contain; }
  .leaders { grid-template-columns: 1fr 1fr; gap: 24px; }
  .leaders li { gap: 18px; }
  .leaders .portrait { width: 46%; }
  .leader-copy { flex: 1; }
  .funding-copy { left: 30px; width: calc(100% - 45px); }
  .funding h4, .funding-copy > p { width: 100%; }
  .funding h4 { font-size: 30px; }
  .footer-about p { left: 30px; width: calc(100% - 60px); }
  .address-row, .email-row { left: 5px; right: 20px; }
  .address-row p { width: auto; }
  .address-row img, .email-row img { flex: none; }
}
@media (max-width: 700px) {
  .site-header, .header-inner { height: 84px; }
  .brand { top: 20px; }
  .brand img { width: 166px; height: 45px; }
  section { scroll-margin-top: 84px; }
  .hero { height: 560px; }
  .hero h1 { top: 175px; font-size: 34px; line-height: 1.25; }
  .hero p { left: 24px; width: calc(100% - 48px); top: 345px; font-size: 18px; line-height: 1.6; }
  h2 { font-size: 32px; line-height: 1.4; }
  .mission, .technology, .offerings { padding: 48px 0; }
  .offering-description { width: 100%; }
  .industry-grid { grid-auto-flow: row; grid-template-columns: 1fr; grid-template-rows: none; gap: 32px; }
  .industry-grid > li > img, .industry-grid .source-crop { width: 100%; height: auto; aspect-ratio: 318 / 252; }
  .industry-grid p { margin-top: 18px; }
  .partners { margin-top: 0; height: auto; padding: 48px 0; }
  .partners .content-width { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 22px; align-items: center; justify-items: center; }
  .partners h2 { position: static; width: auto; grid-column: 1 / -1; }
  .partners .content-width > img, .partners .content-width > .source-crop { position: static; max-width: 100%; object-fit: contain; }
  .partners .content-width > .source-crop { position: relative; inset: auto; }
  .partners .foresight { width: 170px; height: 85px; order: 1; }
  .partners .mars { width: 100px; height: 102px; order: 2; }
  .partners .nett { width: 160px; height: 52px; order: 3; }
  .partners .uoft { width: 128px; height: 96px; order: 4; }
  .leadership { height: auto; padding: 48px 0; }
  .leaders { grid-template-columns: 1fr; gap: 40px; margin: 30px 0 0; }
  .leaders li { gap: 20px; }
  .leaders .portrait { width: 45%; height: auto; aspect-ratio: 228 / 258; align-self: flex-start; }
  .leader-copy { padding-top: 12px; min-width: 0; font-size: 14px; }
  .leader-name { height: auto; min-height: 62px; font-size: 18px; }
  .funding { margin-top: 0; height: auto; padding-bottom: 64px; }
  .funding-row { flex-direction: column; height: auto; }
  .funding-left { width: 100%; padding: 32px 20px 48px; }
  .funding-copy { position: static; width: 100%; }
  .funding h4 { font-size: 30px; line-height: 1.4; margin-left: 0; }
  .funding-image { width: 100%; height: 390px; }
  .contact h3 { font-size: 32px; }
  .calendly-inline-widget { height: 1000px; }
  .site-footer { height: auto; padding: 42px 20px 24px; }
  .footer-row { display: block; height: auto; }
  .footer-about p { position: static; width: 100%; }
  .footer-contact { margin-top: 30px; }
  .address-row, .email-row { position: static; gap: 18px; }
  .email-row { margin-top: 20px; }
  .copyright { padding-top: 44px; }
}
@media (max-width: 360px) {
  .brand img { width: 145px; height: 39px; }
  .hero h1 { font-size: 30px; }
}

.hiring { background: #eee; padding: 58px 0 64px; margin-bottom: 64px; }
.job-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid #c9c9ce; border-bottom: 1px solid #c9c9ce; margin-top: 30px; padding: 28px 0; }
.job-title { background: none; border: 0; padding: 0; color: #191d63; font: inherit; font-size: 24px; text-align: left; text-decoration: underline; text-underline-offset: 5px; cursor: pointer; }
.job-title:hover { color: #36679a; }
.job-meta { color: #53535b; font-size: 15px; margin-top: 12px; line-height: 1.65; }
.job-type { color: #53535b; white-space: nowrap; }
.job-open { overflow: hidden; }
.job-dialog { box-sizing: border-box; width: min(800px, calc(100% - 40px)); max-height: 90vh; max-height: 90dvh; padding: 0; border: 0; border-radius: 4px; color: #17171d; background: #fff; }
.job-dialog::backdrop { background: rgb(0 0 0 / 55%); }
.dialog-top { position: sticky; top: 0; z-index: 1; background: #fff; padding: 16px 30px; border-bottom: 1px solid #ddd; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #53535b; font-size: 14px; }
.close-dialog { flex: 0 0 40px; width: 40px; height: 40px; border: 0; background: transparent; cursor: pointer; color: #191d63; font-size: 32px; line-height: 1; }
.close-dialog:hover { background: #eee; }
.dialog-content { padding: 28px 36px 36px; }
.job-dialog h2 { font-size: 30px; line-height: 1.3; }
.job-dialog h3 { font-size: 20px; margin: 28px 0 12px; line-height: 1.4; }
#job-description p, #job-description li { font-size: 16px; line-height: 1.6; }
#job-description p + p { margin-top: 12px; }
#job-description ul { list-style: disc; padding-left: 22px; }
#job-description li + li { margin-top: 8px; }
.job-intro-actions { margin: 20px 0 32px; }
.application-link { color: #191d63; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
.application-link:hover { color: #36679a; }
.application-link:focus-visible { outline: 3px solid #36679a; outline-offset: 4px; }
.job-apply-footer { border-top: 1px solid #ccc; margin-top: 36px; padding-top: 28px; }
.job-apply-footer h3 { margin: 0; }
.job-apply-footer p { margin-top: 12px; font-size: 16px; line-height: 1.6; }
@media (max-width: 700px) {
  .hiring { padding: 42px 0; margin-bottom: 42px; }
  .job-title { font-size: 21px; }
  .job-type { display: none; }
  .job-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); }
  .dialog-top { padding: 10px 16px; }
  .dialog-content { padding: 24px 20px; }
  .job-dialog h2 { font-size: 25px; }
}
