/* Compiled from "JMSOL Homepage v6.dc.html". Values are unchanged from the
   export; only the property names were converted from the design tool's
   JavaScript spelling (borderRadius) to CSS (border-radius).
   Responsive rules live in responsive.css. */

body {
  margin: 0;
  background: #080B11;
  font-family: "Inter", system-ui, sans-serif;
  color: #FFFFFF;
  -webkit-font-smoothing: antialiased;
}

a { color: #7FB0FF; text-decoration: none; }
a:hover { color: #FFFFFF; }
* { box-sizing: border-box; }

/* Empty <image-slot> placeholders from the export, as plain elements:
   the dashed ring the slot drew when it held no image. */
.slot-empty {
  border: 1.5px dashed currentColor;
  opacity: 0.35;
}

.s1 { background: #080B11; min-width: 1440px; position: relative; overflow: clip; }
.s2 { position: absolute; top: -240px; left: -180px; width: 1100px; height: 900px; background: radial-gradient(closest-side, rgba(47,111,237,0.30), rgba(47,111,237,0)); pointer-events: none; }
.s3 { position: absolute; top: 620px; right: -320px; width: 1000px; height: 900px; background: radial-gradient(closest-side, rgba(15,42,68,0.85), rgba(15,42,68,0)); pointer-events: none; }
.s4 { position: absolute; inset: 0; opacity: 0.35; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); mix-blend-mode: overlay; }
.s5 { position: sticky; top: 20px; z-index: 60; margin: 20px 48px 0; background: #FFFFFF; border-radius: 999px; display: flex; align-items: center; justify-content: space-between; padding: 14px 18px 14px 34px; box-shadow: 0 18px 50px rgba(0,0,0,0.45); }
.s6 { display: flex; align-items: center; gap: 11px; color: #0F2A44; }
.s6:hover { color: #0F2A44; }
.s7 { font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 20px; letter-spacing: -0.02em; color: #0F2A44; }
.s8 { display: flex; align-items: center; gap: 30px; }
.s9 { font-size: 15px; color: #16202B; }
.s9:hover { color: #2F6FED; }
.s10 { font-size: 15px; font-weight: 500; color: #FFFFFF; background: #2F6FED; padding: 13px 28px; border-radius: 999px; }
.s10:hover { background: #1B4FD0; color: #FFFFFF; }
.s11 { position: relative; padding: 96px 88px 0; text-align: center; }
.s12 { display: inline-block; padding: 11px 26px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.18); background: rgba(255,255,255,0.04); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.82); }
.s13 { margin: 40px auto 0; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 104px; line-height: 0.98; letter-spacing: -0.04em; color: #FFFFFF; max-width: 17ch; }
.s14 { color: #5B9BFF; }
.s15 { margin: 40px auto 0; font-size: 20px; line-height: 1.65; color: rgba(255,255,255,0.66); font-weight: 300; max-width: 66ch; }
.s16 { margin-top: 48px; display: flex; flex-direction: column; align-items: center; gap: 22px; }
.s17 { display: inline-block; font-size: 19px; font-weight: 600; color: #0F2A44; background: #FFFFFF; padding: 22px 52px; border-radius: 999px; box-shadow: 0 0 60px rgba(127,176,255,0.35); }
.s17:hover { background: #5B9BFF; color: #0F2A44; }
.s18 { font-size: 14px; color: rgba(255,255,255,0.48); }
.s19 { position: relative; padding: 96px 88px 0; }
.s20 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.10); border-radius: 20px; overflow: hidden; }
.s21 { background: #0B1017; padding: 44px 36px; }
.s22 { font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 52px; line-height: 1; letter-spacing: -0.03em; color: #5B9BFF; }
.s23 { margin-top: 16px; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: #FFFFFF; font-weight: 600; }
.s24 { margin-top: 10px; font-size: 14px; line-height: 1.6; color: rgba(255,255,255,0.52); }
.s25 { position: relative; padding: 128px 88px 0; }
.s26 { display: grid; grid-template-columns: 1.25fr 1fr; gap: 96px; align-items: end; }
.s27 { margin: 0; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 68px; line-height: 1.02; letter-spacing: -0.04em; color: #FFFFFF; }
.s28 { margin: 0; font-size: 18px; line-height: 1.85; color: rgba(255,255,255,0.66); font-weight: 300; }
.s29 { position: relative; padding: 140px 88px 0; }
.s30 { border-radius: 26px; border: 1px solid rgba(255,255,255,0.10); background: linear-gradient(140deg, #10161F 0%, rgba(15,42,68,0.85) 100%); padding: 20px; display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.4fr); gap: 56px; align-items: center; }
.s31 { width: 100%; height: 560px; display: block; object-fit: cover; border-radius: 18px; }
.s32 { padding-right: 44px; }
.s33 { font-size: 12px; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase; color: #5B9BFF; }
.s34 { margin: 24px 0 0; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 52px; line-height: 1.08; letter-spacing: -0.035em; color: #FFFFFF; }
.s35 { margin-top: 12px; font-size: 15px; letter-spacing: 0.06em; color: rgba(255,255,255,0.58); }
.s36 { width: 48px; height: 2px; background: #2F6FED; margin: 28px 0 30px; }
.s37 { margin: 0; font-size: 18px; line-height: 1.85; color: rgba(255,255,255,0.78); font-weight: 300; }
.s38 { margin: 22px 0 0; font-size: 18px; line-height: 1.85; color: rgba(255,255,255,0.78); font-weight: 300; }
.s39 { position: relative; padding: 128px 88px 0; text-align: center; }
.s40 { margin: 36px 0 0; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 76px; line-height: 1.02; letter-spacing: -0.04em; color: #FFFFFF; }
.s41 { margin: 26px auto 0; font-size: 19px; line-height: 1.6; color: rgba(255,255,255,0.62); font-weight: 300; max-width: 70ch; }
.s42 { margin-top: 72px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; text-align: left; }
.s43 { display: block; background: linear-gradient(180deg, #10161F 0%, #0B1017 100%); border: 1px solid rgba(255,255,255,0.10); border-radius: 22px; padding: 22px 22px 34px; color: #FFFFFF; }
.s43:hover { border: 1px solid rgba(91,155,255,0.55); color: #FFFFFF; }
.s44 { background: #F2F7FD; border-radius: 14px; padding: 22px 24px; }
.s45 { display: flex; align-items: baseline; justify-content: space-between; }
.s46 { font-size: 15px; font-weight: 700; color: #0F2A44; }
.s47 { font-size: 12px; font-weight: 600; color: #2F6FED; }
.s48 { display: block; width: 100%; height: auto; margin-top: 16px; }
.s49 { margin-top: 28px; display: inline-block; padding: 9px 20px; border-radius: 999px; background: #FFFFFF; font-size: 13px; font-weight: 600; color: #0F2A44; }
.s50 { margin: 20px 0 0; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 28px; line-height: 1.18; letter-spacing: -0.025em; color: #FFFFFF; }
.s51 { margin: 18px 0 0; font-size: 15px; line-height: 1.7; color: rgba(255,255,255,0.58); font-weight: 300; }
.s52 { margin-top: 26px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.10); display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.s53 { font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 26px; line-height: 1; letter-spacing: -0.03em; color: #5B9BFF; }
.s54 { margin-top: 8px; font-size: 12px; line-height: 1.45; color: rgba(255,255,255,0.52); }
.s55 { margin-top: 26px; display: flex; align-items: center; gap: 9px; font-size: 15px; font-weight: 500; color: #7FB0FF; }
.s56 { font-size: 17px; }
.s57 { margin: 0; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 62px; line-height: 1.04; letter-spacing: -0.04em; color: #FFFFFF; }
.s58 { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.s59 { border-radius: 22px; border: 1px solid rgba(255,255,255,0.10); background: linear-gradient(180deg, #10161F 0%, rgba(47,111,237,0.20) 100%); padding: 34px 32px; display: flex; flex-direction: column; justify-content: space-between; min-height: 340px; }
.s60 { margin: 0; font-size: 19px; line-height: 1.6; color: rgba(255,255,255,0.92); font-weight: 300; }
.s61 { display: inline-flex; align-items: center; gap: 10px; padding: 9px 20px 9px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.24); font-size: 14px; color: #FFFFFF; margin-bottom: 26px; }
.s62 { width: 22px; height: 22px; border-radius: 999px; background: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; color: #0F2A44; font-size: 10px; }
.s63 { display: flex; align-items: center; gap: 14px; }
.s64 { width: 48px; height: 48px; display: block; flex-shrink: 0; border-radius: 999px; }
.s65 { font-size: 15px; font-weight: 600; color: #FFFFFF; }
.s66 { font-size: 14px; color: rgba(255,255,255,0.62); }
.s67 { border-radius: 22px; border: 1px solid rgba(255,255,255,0.10); background: linear-gradient(180deg, #10161F 0%, rgba(15,42,68,0.75) 100%); padding: 34px 32px; display: flex; flex-direction: column; justify-content: space-between; min-height: 340px; }
.s68 { display: grid; grid-template-columns: 1fr 1.15fr; gap: 96px; align-items: start; }
.s69 { position: sticky; top: 130px; }
.s70 { margin: 34px 0 0; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 62px; line-height: 1.04; letter-spacing: -0.04em; color: #FFFFFF; }
.s71 { margin: 28px 0 0; font-size: 18px; line-height: 1.8; color: rgba(255,255,255,0.62); font-weight: 300; max-width: 44ch; }
.s72 { position: relative; padding-left: 76px; }
.s73 { position: absolute; left: 27px; top: 28px; bottom: 60px; width: 1px; background: linear-gradient(180deg, rgba(255,255,255,0.35), rgba(255,255,255,0.06)); }
.s74 { position: relative; padding-bottom: 64px; }
.s75 { position: absolute; left: -76px; top: 0; width: 56px; height: 56px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.22); background: #0B1017; display: flex; align-items: center; justify-content: center; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 18px; color: #5B9BFF; }
.s76 { font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 28px; letter-spacing: -0.02em; color: #5B9BFF; }
.s77 { margin-top: 8px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.42); }
.s78 { margin: 18px 0 0; font-size: 17px; line-height: 1.8; color: rgba(255,255,255,0.72); font-weight: 300; }
.s79 { position: relative; }
.s80 { border-radius: 26px; border: 1px solid rgba(91,155,255,0.28); background: linear-gradient(180deg, #10161F 0%, #0B1017 100%); padding: 64px 72px; }
.s81 { margin: 34px 0 0; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 56px; line-height: 1.05; letter-spacing: -0.04em; color: #FFFFFF; }
.s82 { display: flex; flex-direction: column; gap: 34px; padding-top: 12px; }
.s83 { margin: 0; font-size: 20px; line-height: 1.75; color: rgba(255,255,255,0.78); font-weight: 300; }
.s84 { align-self: flex-start; display: inline-block; font-size: 17px; font-weight: 600; color: #0F2A44; background: #FFFFFF; padding: 19px 44px; border-radius: 999px; box-shadow: 0 0 60px rgba(127,176,255,0.30); }
.s84:hover { background: #5B9BFF; color: #0F2A44; }
.s85 { border-radius: 22px; border: 1px solid rgba(255,255,255,0.10); background: #0B1017; padding: 44px 38px; }
.s86 { margin: 0; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 28px; line-height: 1.2; letter-spacing: -0.025em; color: #FFFFFF; }
.s87 { width: 48px; height: 2px; background: #2F6FED; margin: 22px 0 26px; }
.s88 { margin: 0; font-size: 16px; line-height: 1.85; color: rgba(255,255,255,0.66); font-weight: 300; }
.s89 { display: flex; flex-direction: column; gap: 30px; padding-top: 12px; }
.s90 { margin: 0; font-size: 19px; line-height: 1.8; color: rgba(255,255,255,0.72); font-weight: 300; }
.s91 { align-self: flex-start; display: inline-block; font-size: 17px; font-weight: 600; color: #FFFFFF; background: #2F6FED; padding: 19px 44px; border-radius: 999px; }
.s91:hover { background: #1B4FD0; color: #FFFFFF; }
.s92 { border-radius: 22px; border: 1px solid rgba(255,255,255,0.10); background: #0B1017; padding: 52px 56px; display: grid; grid-template-columns: 0.85fr 1.3fr auto; gap: 56px; align-items: center; }
.s93 { margin: 0; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 40px; line-height: 1.1; letter-spacing: -0.03em; color: #FFFFFF; }
.s94 { margin: 0; font-size: 17px; line-height: 1.8; color: rgba(255,255,255,0.66); font-weight: 300; }
.s95 { display: inline-block; font-size: 16px; font-weight: 600; color: #FFFFFF; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.22); padding: 17px 38px; border-radius: 999px; white-space: nowrap; }
.s95:hover { background: rgba(91,155,255,0.16); color: #FFFFFF; }
.s96 { position: relative; padding: 150px 88px 0; text-align: center; }
.s97 { margin: 0 auto; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 82px; line-height: 1.03; letter-spacing: -0.04em; color: #FFFFFF; max-width: 20ch; }
.s98 { margin: 32px auto 0; font-size: 20px; line-height: 1.65; color: rgba(255,255,255,0.66); font-weight: 300; max-width: 60ch; }
.s99 { margin-top: 48px; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.s100 { font-size: 15px; color: rgba(255,255,255,0.55); }
.s101 { font-size: 15px; color: rgba(255,255,255,0.55); }
.s101:hover { color: #FFFFFF; }
.s102 { position: relative; padding: 130px 88px 56px; }
.s103 { height: 1px; background: rgba(255,255,255,0.12); }
.s104 { display: flex; justify-content: space-between; align-items: flex-end; padding-top: 40px; }
.s105 { font-size: 14px; line-height: 1.8; color: rgba(255,255,255,0.55); }
.s106 { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.s107 { font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 17px; letter-spacing: -0.02em; color: #FFFFFF; }
.s108 { font-size: 13px; color: rgba(255,255,255,0.38); }
