:root {
   --bg: #f3f6fa;
   --surface: rgba(255, 255, 255, 0.84);
   --surface-strong: #ffffff;
   --ink: #172033;
   --muted: #5d6a7f;
   --line: rgba(23, 32, 51, 0.1);
   --brand: #1e40af;
   --brand-strong: #17358f;
   --accent: #8fa8d6;
   --navy: #0f1f3a;
   --shadow: 0 24px 70px rgba(15, 23, 42, 0.12);
   --radius-xl: 32px;
   --radius-lg: 24px;
   --radius-md: 18px;
   --shell: 1180px;
}

*,
*::before,
*::after {
   box-sizing: border-box;
}

html {
   scroll-behavior: smooth;
}

body {
   margin: 0;
   color: var(--ink);
   font-family: "Instrument Sans", "Segoe UI", sans-serif;
   background:
      radial-gradient(circle at top left, rgba(30, 64, 175, 0.12), transparent 28%),
      radial-gradient(circle at top right, rgba(143, 168, 214, 0.14), transparent 22%),
      linear-gradient(180deg, #f7f9fc 0%, #eef3f9 100%);
}

body::before {
   content: "";
   position: fixed;
   inset: 0;
   z-index: -1;
   pointer-events: none;
   opacity: 0.3;
   background:
      linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
      linear-gradient(90deg, rgba(17, 40, 74, 0.03) 1px, transparent 1px);
   background-size: 34px 34px;
   mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.7), transparent 85%);
}

img {
   display: block;
   max-width: 100%;
}

a {
   color: inherit;
   text-decoration: none;
}

.shell {
   width: min(calc(100% - 40px), var(--shell));
   margin: 0 auto;
}

.topbar {
   background: #0c1628;
   color: rgba(255, 255, 255, 0.82);
   font-size: 0.92rem;
}

.topbar-inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 16px;
   padding: 10px 0;
}

.topbar-link,
.topbar-social a {
   display: inline-flex;
   align-items: center;
   gap: 8px;
}

.topbar-social {
   display: inline-flex;
   align-items: center;
   gap: 14px;
}

.site-nav {
   position: sticky;
   top: 0;
   z-index: 40;
   backdrop-filter: blur(14px);
   background: rgba(247, 249, 252, 0.88);
   border-bottom: 1px solid rgba(23, 32, 51, 0.08);
}

.nav-inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
   padding: 18px 0;
}

.brand img {
   width: 168px;
}

.nav-menu {
   display: flex;
   align-items: center;
   gap: 24px;
   font-size: 0.98rem;
   color: var(--muted);
}

.nav-menu a:hover {
   color: var(--ink);
}

.nav-menu > a:not(.nav-cta) {
   position: relative;
}

.nav-menu > a:not(.nav-cta)::after {
   content: "";
   position: absolute;
   left: 0;
   bottom: -8px;
   width: 100%;
   height: 2px;
   border-radius: 999px;
   background: linear-gradient(90deg, var(--brand), transparent);
   transform: scaleX(0);
   transform-origin: left;
   transition: transform 220ms ease;
}

.nav-menu > a:not(.nav-cta):hover::after,
.nav-menu > a:not(.nav-cta):focus-visible::after {
   transform: scaleX(1);
}

.nav-cta {
   position: relative;
   overflow: hidden;
   padding: 12px 18px;
   border-radius: 999px;
   color: #ffffff;
   background: linear-gradient(135deg, var(--brand), var(--navy));
   box-shadow: 0 12px 24px rgba(30, 64, 175, 0.18);
   animation: cta-glow 4.2s ease-in-out infinite;
}

.nav-cta:hover {
   color: #ffffff;
   transform: translateY(-1px);
}

.nav-cta::before,
.button-primary::before {
   content: "";
   position: absolute;
   inset: -120% auto -120% -24%;
   width: 42%;
   background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.32), transparent);
   transform: rotate(18deg) translateX(-220%);
   animation: button-sheen 5.4s ease-in-out infinite;
}

.nav-toggle {
   display: none;
   flex-direction: column;
   gap: 5px;
   padding: 0;
   border: 0;
   background: transparent;
   cursor: pointer;
}

.nav-toggle span {
   width: 28px;
   height: 2px;
   border-radius: 999px;
   background: var(--ink);
}

.hero {
   position: relative;
   overflow: hidden;
   padding: 56px 0 44px;
}

.hero-grid {
   position: relative;
   z-index: 2;
   display: grid;
   grid-template-columns: 1.15fr 0.85fr;
   gap: 34px;
   align-items: stretch;
}

.hero-dots,
.contact-dots {
   position: absolute;
   pointer-events: none;
   opacity: 0.7;
   background-image: radial-gradient(circle, currentColor 0, currentColor 5px, transparent 6px);
   background-size: 26px 26px;
   animation: dot-drift 20s linear infinite;
}

.hero-dots-dark {
   top: 20px;
   right: -70px;
   width: 520px;
   height: 280px;
   color: rgba(15, 22, 40, 0.12);
   mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.95), rgba(0, 0, 0, 0));
}

.hero-dots-light {
   left: -30px;
   bottom: 34px;
   width: 360px;
   height: 180px;
   color: rgba(255, 255, 255, 0.55);
   opacity: 0.8;
   animation-duration: 24s;
   animation-direction: reverse;
   mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0));
}

.hero-copy,
.hero-panel {
   min-width: 0;
}

.hero-copy {
   animation: fade-up 700ms ease 80ms both;
}

.eyebrow {
   margin: 0 0 16px;
   color: var(--brand);
   font-size: 0.86rem;
   font-weight: 700;
   letter-spacing: 0.14em;
   text-transform: uppercase;
}

.section-heading .eyebrow {
   font-size: 1.16rem;
   letter-spacing: 0.2em;
}

.hero h1,
.section-heading h2,
.section-contrast h2 {
   margin: 0;
   font-family: "Space Grotesk", "Segoe UI", sans-serif;
   letter-spacing: -0.04em;
}

.hero h1 {
   max-width: 12ch;
   font-size: clamp(2.5rem, 5.2vw, 4.7rem);
   line-height: 0.96;
}

.hero-lead {
   max-width: 680px;
   margin: 24px 0 0;
   color: var(--muted);
   font-size: 1.14rem;
   line-height: 1.75;
}

.hero-signature {
   width: fit-content;
   max-width: 100%;
   margin-top: 22px;
   padding: 14px 18px;
   border: 1px solid rgba(15, 31, 58, 0.12);
   border-radius: 18px;
   background: rgba(255, 255, 255, 0.62);
   backdrop-filter: blur(10px);
   box-shadow: 0 14px 34px rgba(15, 23, 42, 0.06);
   animation: fade-up 700ms ease 220ms both;
}

.hero-signature-name,
.hero-signature-role {
   margin: 0;
}

.hero-signature-name {
   color: var(--navy);
   font-family: "Space Grotesk", "Segoe UI", sans-serif;
   font-size: 1rem;
   font-weight: 700;
   letter-spacing: 0.08em;
   text-transform: uppercase;
}

.hero-signature-role {
   margin-top: 4px;
   color: var(--muted);
   font-size: 0.92rem;
   letter-spacing: 0.06em;
   text-transform: uppercase;
}

.hero-actions,
.contact-actions {
   display: flex;
   flex-wrap: wrap;
   gap: 14px;
   margin-top: 28px;
}

.button {
   position: relative;
   overflow: hidden;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   min-height: 50px;
   padding: 0 22px;
   border-radius: 999px;
   font-weight: 700;
   transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.button:hover {
   transform: translateY(-2px);
}

.button-primary {
   color: #ffffff;
   background: linear-gradient(135deg, var(--brand), var(--brand-strong));
   box-shadow: 0 18px 36px rgba(23, 53, 143, 0.2);
}

.button-secondary {
   border: 1px solid rgba(16, 24, 40, 0.12);
   background: rgba(255, 255, 255, 0.64);
}

.button-light {
   color: #ffffff;
   border-color: rgba(255, 255, 255, 0.18);
   background: rgba(255, 255, 255, 0.08);
}

.hero-points {
   display: grid;
   gap: 10px;
   margin: 28px 0 0;
   padding: 0;
   list-style: none;
}

.hero-points li {
   position: relative;
   padding-left: 24px;
   color: var(--muted);
}

.hero-points li::before {
   content: "";
   position: absolute;
   top: 9px;
   left: 0;
   width: 10px;
   height: 10px;
   border-radius: 50%;
   background: linear-gradient(135deg, var(--brand-strong), var(--brand));
}

.hero-panel {
   display: grid;
   gap: 18px;
   animation: fade-up 750ms ease 180ms both;
}

.hero-card {
   position: relative;
   overflow: hidden;
   padding: 28px;
   border: 1px solid rgba(255, 255, 255, 0.5);
   border-radius: var(--radius-xl);
   background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.82));
   box-shadow: var(--shadow);
   transition: transform 280ms ease, box-shadow 280ms ease, border-color 280ms ease;
}

.hero-card::after {
   content: "";
   position: absolute;
   inset: auto -40px -60px auto;
   width: 160px;
   height: 160px;
   border-radius: 50%;
   background: radial-gradient(circle, rgba(143, 168, 214, 0.2), transparent 70%);
}

.hero-card::before {
   content: "";
   position: absolute;
   top: -14px;
   right: -16px;
   width: 180px;
   height: 120px;
   opacity: 0.35;
   background-image: radial-gradient(circle, rgba(15, 31, 58, 0.22) 0, rgba(15, 31, 58, 0.22) 4px, transparent 5px);
   background-size: 18px 18px;
   mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.95), rgba(0, 0, 0, 0));
}

.hero-card-main {
   min-height: 280px;
   padding: 34px;
   background:
      radial-gradient(circle at top right, rgba(30, 64, 175, 0.12), transparent 32%),
      linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(241, 245, 251, 0.94));
   animation: float-card 7s ease-in-out infinite;
}

.hero-card-main::after {
   background: radial-gradient(circle, rgba(143, 168, 214, 0.18), transparent 68%);
}

.hero-card-main::before {
   background-image:
      linear-gradient(180deg, rgba(30, 64, 175, 0.1), transparent 55%),
      radial-gradient(circle, rgba(15, 31, 58, 0.18) 0, rgba(15, 31, 58, 0.18) 4px, transparent 5px);
   background-size: 100% 100%, 18px 18px;
   background-repeat: no-repeat, repeat;
}

.card-kicker {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   padding: 6px 12px;
   border-radius: 999px;
   color: var(--navy);
   background: rgba(15, 31, 58, 0.06);
   font-size: 0.82rem;
   font-weight: 700;
}

.hero-card h2 {
   margin: 18px 0 14px;
   font-family: "Space Grotesk", "Segoe UI", sans-serif;
   font-size: 2rem;
   line-height: 1.05;
}

.hero-visual {
   display: grid;
   grid-template-columns: 1.2fr 0.8fr;
   gap: 14px;
   margin-top: 24px;
   align-items: stretch;
}

.hero-visual-panel {
   position: relative;
   min-height: 140px;
   padding: 16px;
   border: 1px solid rgba(23, 53, 143, 0.08);
   border-radius: 20px;
   background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(244, 248, 255, 0.84));
   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82), 0 18px 28px rgba(15, 23, 42, 0.05);
}

.hero-visual-panel::before {
   content: "";
   position: absolute;
   top: 0;
   left: 16px;
   right: 16px;
   height: 2px;
   border-radius: 999px;
   background: linear-gradient(90deg, rgba(30, 64, 175, 0.85), rgba(143, 168, 214, 0.15));
}

.hero-visual-tag {
   display: inline-flex;
   align-items: center;
   padding: 5px 10px;
   border-radius: 999px;
   color: var(--brand-strong);
   background: rgba(30, 64, 175, 0.08);
   font-size: 0.78rem;
   font-weight: 700;
   letter-spacing: 0.04em;
   text-transform: uppercase;
}

.hero-bars {
   display: flex;
   align-items: end;
   gap: 10px;
   height: 84px;
   margin-top: 20px;
   position: relative;
   z-index: 1;
}

.hero-bars span {
   flex: 1;
   min-width: 0;
   border-radius: 10px 10px 8px 8px;
   background: linear-gradient(180deg, rgba(30, 64, 175, 0.18), rgba(23, 53, 143, 0.8));
   box-shadow: 0 10px 24px rgba(23, 53, 143, 0.12);
   animation: bar-pulse 5.8s ease-in-out infinite;
}

.hero-bars span:nth-child(2) {
   animation-delay: 140ms;
}

.hero-bars span:nth-child(3) {
   animation-delay: 280ms;
}

.hero-bars span:nth-child(4) {
   animation-delay: 420ms;
}

.hero-bars span:nth-child(5) {
   animation-delay: 560ms;
}

.hero-bars span:nth-child(6) {
   animation-delay: 700ms;
}

.hero-visual-panel-side {
   display: grid;
   gap: 16px;
   align-content: center;
}

.hero-node-flow {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 10px;
}

.hero-node-flow span {
   width: 16px;
   height: 16px;
   border-radius: 50%;
   background: linear-gradient(135deg, var(--brand-strong), var(--brand));
   box-shadow: 0 0 0 8px rgba(30, 64, 175, 0.08);
   animation: node-ping 4.6s ease-in-out infinite;
}

.hero-node-flow span:nth-child(2) {
   animation-delay: 220ms;
}

.hero-node-flow span:nth-child(3) {
   animation-delay: 440ms;
}

.hero-flow-lines {
   display: grid;
   gap: 10px;
}

.hero-flow-lines i {
   display: block;
   height: 8px;
   border-radius: 999px;
   background: linear-gradient(90deg, rgba(30, 64, 175, 0.82), rgba(143, 168, 214, 0.26));
   animation: line-shift 6.6s ease-in-out infinite;
}

.hero-flow-lines i:nth-child(2) {
   width: 82%;
   animation-delay: 240ms;
}

.hero-flow-lines i:nth-child(3) {
   width: 68%;
   animation-delay: 480ms;
}

.hero-card p,
.service-card p,
.support-copy,
.contact-copy,
.section-heading p {
   margin: 0;
   color: var(--muted);
   line-height: 1.72;
}

.hero-mini-grid {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 18px;
}

.stat {
   display: block;
   margin-bottom: 12px;
   color: var(--brand-strong);
   font-family: "Space Grotesk", "Segoe UI", sans-serif;
   font-size: 1.35rem;
   font-weight: 700;
}

.section {
   padding: 44px 0 52px;
}

.section-alt {
   background: linear-gradient(180deg, rgba(15, 31, 58, 0.04), rgba(255, 255, 255, 0));
}

.section-heading {
   max-width: 900px;
   margin-bottom: 28px;
}

.section-heading h2,
.section-contrast h2 {
   font-size: clamp(2rem, 4vw, 3.45rem);
   line-height: 1.02;
}

.section-heading.compact {
   max-width: 620px;
}

.services-grid {
   display: grid;
   gap: 20px;
}

.services-grid {
   grid-template-columns: repeat(3, minmax(0, 1fr));
}

.service-card {
   position: relative;
   overflow: hidden;
   padding: 28px;
   border: 1px solid var(--line);
   border-radius: var(--radius-lg);
   background: rgba(255, 255, 255, 0.82);
   box-shadow: 0 16px 36px rgba(15, 23, 42, 0.05);
   transition: transform 260ms ease, box-shadow 260ms ease, border-color 260ms ease;
}

.service-card::after {
   content: "";
   position: absolute;
   right: -10px;
   bottom: -16px;
   width: 120px;
   height: 84px;
   opacity: 0.18;
   background-image: radial-gradient(circle, rgba(15, 31, 58, 0.28) 0, rgba(15, 31, 58, 0.28) 4px, transparent 5px);
   background-size: 18px 18px;
}

.service-visual {
   display: flex;
   align-items: center;
   gap: 10px;
   margin-top: 20px;
   min-height: 42px;
   position: relative;
   z-index: 1;
}

.service-visual span {
   display: block;
   border-radius: 999px;
   background: linear-gradient(90deg, rgba(30, 64, 175, 0.9), rgba(143, 168, 214, 0.35));
}

.service-visual-code span:nth-child(1) {
   width: 26%;
   height: 8px;
   animation: line-shift 6.2s ease-in-out infinite;
}

.service-visual-code span:nth-child(2) {
   width: 44%;
   height: 8px;
   animation: line-shift 6.2s ease-in-out infinite 180ms;
}

.service-visual-code span:nth-child(3) {
   width: 18%;
   height: 26px;
   margin-left: auto;
   border-radius: 8px;
   background: linear-gradient(180deg, rgba(30, 64, 175, 0.24), rgba(30, 64, 175, 0.74));
   animation: metric-rise 5.6s ease-in-out infinite;
}

.service-visual-flow {
   justify-content: space-between;
}

.service-visual-flow span {
   position: relative;
   width: 18px;
   height: 18px;
   border-radius: 50%;
   background: linear-gradient(135deg, rgba(30, 64, 175, 0.86), rgba(143, 168, 214, 0.9));
   box-shadow: 0 0 0 7px rgba(30, 64, 175, 0.07);
   animation: node-ping 4.2s ease-in-out infinite;
}

.service-visual-flow span:nth-child(2) {
   animation-delay: 160ms;
}

.service-visual-flow span:nth-child(3) {
   animation-delay: 320ms;
}

.service-visual-flow span::after {
   content: "";
   position: absolute;
   top: 50%;
   left: calc(100% + 8px);
   width: 38px;
   height: 4px;
   border-radius: 999px;
   background: linear-gradient(90deg, rgba(30, 64, 175, 0.8), rgba(143, 168, 214, 0.25));
   transform: translateY(-50%);
}

.service-visual-flow span:last-child::after {
   display: none;
}

.service-visual-support span:nth-child(1),
.service-visual-support span:nth-child(2),
.service-visual-support span:nth-child(3) {
   flex: 1;
   height: 10px;
   animation: line-shift 6.1s ease-in-out infinite;
}

.service-visual-support span:nth-child(2) {
   height: 24px;
   border-radius: 8px;
   animation: metric-rise 5.4s ease-in-out infinite;
}

.service-visual-support span:nth-child(3) {
   animation-delay: 220ms;
}

.service-card.featured .service-visual span,
.service-card.featured .service-visual-flow span::after {
   background: linear-gradient(90deg, rgba(255, 255, 255, 0.92), rgba(143, 168, 214, 0.35));
}

.service-card.featured .service-visual-flow span {
   background: linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(143, 168, 214, 0.8));
   box-shadow: 0 0 0 7px rgba(255, 255, 255, 0.08);
}

.service-card.featured {
   background: linear-gradient(135deg, #10213f, #1e3a78 92%);
   background-size: 140% 140%;
   border-color: transparent;
   animation: featured-breathe 6.5s ease-in-out infinite;
}

.service-card.featured h3,
.service-card.featured p,
.service-card.featured .service-icon {
   color: #ffffff;
}

.service-icon {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 54px;
   height: 54px;
   margin-bottom: 18px;
   border-radius: 16px;
   color: var(--brand);
   background: rgba(30, 64, 175, 0.08);
   font-size: 1.25rem;
}

.service-card h3 {
   margin: 0 0 12px;
   font-family: "Space Grotesk", "Segoe UI", sans-serif;
   font-size: 1.45rem;
   line-height: 1.08;
}

.service-link,
.resource-link {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: fit-content;
   min-width: 108px;
   margin-top: 18px;
   padding: 10px 14px;
   border: 1px solid rgba(30, 64, 175, 0.2);
   border-radius: 999px;
   color: var(--brand-strong);
   font-size: 0.92rem;
   font-weight: 700;
   transition: transform 180ms ease, background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

.service-link:hover,
.resource-link:hover {
   transform: translateY(-2px);
   color: #ffffff;
   background: var(--brand);
   border-color: var(--brand);
}

.service-card.featured .service-link {
   color: #10213f;
   background: rgba(255, 255, 255, 0.94);
   border-color: rgba(255, 255, 255, 0.12);
}

.service-card.featured .service-link:hover {
   color: #ffffff;
   background: rgba(255, 255, 255, 0.18);
   border-color: rgba(255, 255, 255, 0.24);
}

.support-strip {
   margin-top: 22px;
   padding: 22px 24px;
   border: 1px dashed rgba(15, 31, 58, 0.16);
   border-radius: var(--radius-md);
   background: rgba(255, 255, 255, 0.68);
}

.support-title {
   margin: 0 0 8px;
   font-weight: 700;
}

.resources-section {
   background: linear-gradient(180deg, rgba(15, 31, 58, 0.03), rgba(255, 255, 255, 0));
}

.resources-grid {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 20px;
}

.coverage-section {
   padding-top: 6px;
}

.coverage-grid {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 20px;
}

.sector-section {
   padding-top: 6px;
}

.sector-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 20px;
}

.resource-card {
   padding: 28px;
   border: 1px solid var(--line);
   border-radius: var(--radius-lg);
   background: rgba(255, 255, 255, 0.82);
   box-shadow: 0 16px 36px rgba(15, 23, 42, 0.05);
   transition: transform 260ms ease, box-shadow 260ms ease, border-color 260ms ease;
}

.resource-type {
   margin: 0 0 12px;
   color: var(--brand);
   font-size: 0.84rem;
   font-weight: 700;
   letter-spacing: 0.12em;
   text-transform: uppercase;
}

.resource-card h3 {
   margin: 0 0 12px;
   font-family: "Space Grotesk", "Segoe UI", sans-serif;
   font-size: 1.5rem;
   line-height: 1.08;
}

.resource-card p {
   margin: 0;
   color: var(--muted);
   line-height: 1.72;
}

.section-contrast {
   position: relative;
   overflow: hidden;
   color: #ffffff;
   background:
      radial-gradient(circle at top left, rgba(143, 168, 214, 0.12), transparent 22%),
      linear-gradient(135deg, #0c1628, #11284a 68%, #1a3f7f);
}

.contact-dots {
   right: -60px;
   bottom: -10px;
   width: 420px;
   height: 210px;
   color: rgba(255, 255, 255, 0.2);
   animation-duration: 26s;
   background-image: radial-gradient(circle, currentColor 0, currentColor 5px, transparent 6px);
   mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.95), rgba(0, 0, 0, 0));
}

.contact-panel {
   position: relative;
   z-index: 2;
   display: grid;
   grid-template-columns: 1.2fr 0.8fr;
   gap: 26px;
   align-items: center;
}

.contact-side {
   display: grid;
   gap: 18px;
}

.contact-meta {
   margin: 10px 0 0;
   color: rgba(255, 255, 255, 0.76);
}

.contact-meta a {
   text-decoration: underline;
}

.contact-form {
   display: grid;
   gap: 14px;
   padding: 20px;
   border: 1px solid rgba(255, 255, 255, 0.12);
   border-radius: 24px;
   background: rgba(255, 255, 255, 0.06);
   backdrop-filter: blur(10px);
}

.form-grid {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 14px;
}

.form-field {
   display: grid;
   gap: 8px;
}

.form-field span {
   color: rgba(255, 255, 255, 0.86);
   font-size: 0.92rem;
   font-weight: 600;
}

.form-field input,
.form-field textarea {
   width: 100%;
   border: 1px solid rgba(255, 255, 255, 0.14);
   border-radius: 14px;
   padding: 13px 14px;
   color: #ffffff;
   font: inherit;
   background: rgba(255, 255, 255, 0.07);
   transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.form-field input::placeholder,
.form-field textarea::placeholder {
   color: rgba(255, 255, 255, 0.44);
}

.form-field input:focus,
.form-field textarea:focus {
   outline: none;
   border-color: rgba(143, 168, 214, 0.75);
   box-shadow: 0 0 0 4px rgba(143, 168, 214, 0.12);
   background: rgba(255, 255, 255, 0.1);
}

.form-field textarea {
   min-height: 128px;
   resize: vertical;
}

.form-field-wide {
   grid-column: 1 / -1;
}

.form-submit {
   width: fit-content;
}

.form-note {
   margin: 0;
   color: rgba(255, 255, 255, 0.64);
   font-size: 0.9rem;
}

.form-status {
   margin: 0;
   padding: 12px 14px;
   border-radius: 14px;
   font-size: 0.95rem;
   font-weight: 600;
}

.form-status.is-success {
   color: #dff7e9;
   background: rgba(17, 104, 61, 0.36);
   border: 1px solid rgba(109, 219, 160, 0.28);
}

.form-status.is-error {
   color: #ffe4e4;
   background: rgba(129, 24, 24, 0.3);
   border: 1px solid rgba(255, 142, 142, 0.24);
}

.hp-field {
   position: absolute;
   left: -9999px;
   width: 1px;
   height: 1px;
   opacity: 0;
   pointer-events: none;
}

.site-footer {
   padding: 26px 0 36px;
}

.footer-inner {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: space-between;
   gap: 10px 18px;
   color: #607089;
   font-size: 0.94rem;
}

.reveal {
   opacity: 0;
   transform: translateY(30px) scale(0.985);
   filter: blur(8px);
   transition:
      opacity 700ms cubic-bezier(0.2, 0.65, 0.2, 1),
      transform 700ms cubic-bezier(0.2, 0.65, 0.2, 1),
      filter 700ms cubic-bezier(0.2, 0.65, 0.2, 1);
   transition-delay: var(--reveal-delay, 0ms);
}

.reveal.is-visible {
   opacity: 1;
   transform: translateY(0) scale(1);
   filter: blur(0);
}

@media (hover: hover) and (pointer: fine) {
   .hero-card:hover,
   .service-card:hover,
   .resource-card:hover {
      transform: translateY(-8px);
      box-shadow: 0 24px 48px rgba(15, 23, 42, 0.12);
      border-color: rgba(30, 64, 175, 0.22);
   }

   .service-card.featured:hover {
      box-shadow: 0 28px 54px rgba(16, 33, 63, 0.22);
   }

   .button-primary:hover,
   .nav-cta:hover {
      box-shadow: 0 22px 44px rgba(23, 53, 143, 0.24);
   }
}

@keyframes dot-drift {
   0% {
      transform: translate3d(0, 0, 0);
   }
   50% {
      transform: translate3d(-12px, 8px, 0);
   }
   100% {
      transform: translate3d(0, 0, 0);
   }
}

@keyframes fade-up {
   from {
      opacity: 0;
      transform: translateY(28px);
   }
   to {
      opacity: 1;
      transform: translateY(0);
   }
}

@keyframes float-card {
   0% {
      transform: translateY(0);
   }
   50% {
      transform: translateY(-8px);
   }
   100% {
      transform: translateY(0);
   }
}

@keyframes bar-pulse {
   0%,
   100% {
      opacity: 0.88;
      transform: scaleY(1);
   }
   50% {
      opacity: 1;
      transform: scaleY(1.06);
   }
}

@keyframes line-shift {
   0%,
   100% {
      transform: translateX(0);
      opacity: 0.7;
   }
   50% {
      transform: translateX(6px);
      opacity: 1;
   }
}

@keyframes node-ping {
   0%,
   100% {
      transform: scale(1);
      box-shadow: 0 0 0 7px rgba(30, 64, 175, 0.07);
   }
   50% {
      transform: scale(1.08);
      box-shadow: 0 0 0 11px rgba(30, 64, 175, 0.04);
   }
}

@keyframes metric-rise {
   0%,
   100% {
      transform: translateY(0);
      opacity: 0.92;
   }
   50% {
      transform: translateY(-3px);
      opacity: 1;
   }
}

@keyframes cta-glow {
   0%,
   100% {
      box-shadow: 0 12px 24px rgba(30, 64, 175, 0.16);
   }
   50% {
      box-shadow: 0 16px 30px rgba(30, 64, 175, 0.26);
   }
}

@keyframes button-sheen {
   0%,
   100% {
      transform: rotate(18deg) translateX(-260%);
   }
   16% {
      transform: rotate(18deg) translateX(360%);
   }
   17%,
   99% {
      transform: rotate(18deg) translateX(360%);
   }
}

@keyframes featured-breathe {
   0%,
   100% {
      background-position: 0% 50%;
      filter: saturate(1);
   }
   50% {
      background-position: 100% 50%;
      filter: saturate(1.06);
   }
}

@media (prefers-reduced-motion: reduce) {
   *,
   *::before,
   *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
   }
}

@media (max-width: 1024px) {
   .hero-grid,
   .contact-panel {
      grid-template-columns: 1fr;
   }

   .services-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }

   .form-grid {
      grid-template-columns: 1fr;
   }

   .form-field-wide {
      grid-column: auto;
   }

   .resources-grid {
      grid-template-columns: 1fr;
   }

   .coverage-grid {
      grid-template-columns: 1fr;
   }

   .sector-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }
}

@media (max-width: 760px) {
   .topbar-inner {
      flex-direction: column;
      align-items: flex-start;
   }

   .nav-inner {
      position: relative;
      align-items: center;
   }

   .nav-toggle {
      display: inline-flex;
   }

   .nav-menu {
      position: absolute;
      top: calc(100% + 12px);
      left: 0;
      right: 0;
      display: none;
      flex-direction: column;
      align-items: stretch;
      gap: 14px;
      padding: 18px;
      border: 1px solid rgba(16, 24, 40, 0.08);
      border-radius: 22px;
      background: rgba(255, 255, 255, 0.95);
      box-shadow: var(--shadow);
   }

   .nav-menu.is-open {
      display: flex;
   }

    .nav-menu > a::after {
      display: none;
   }

   .nav-cta {
      text-align: center;
   }

   .hero {
      padding-top: 34px;
   }

   .hero h1 {
      max-width: none;
   }

   .hero-mini-grid,
   .services-grid,
   .sector-grid {
      grid-template-columns: 1fr;
   }

   .hero-visual {
      grid-template-columns: 1fr;
   }

   .hero-visual-panel-side {
      min-height: 120px;
   }

   .hero-dots-dark,
   .hero-dots-light,
   .contact-dots {
      opacity: 0.35;
      transform: scale(0.82);
      transform-origin: center;
   }

   .section,
   .hero {
      padding-bottom: 40px;
   }

   .footer-inner {
      flex-direction: column;
      align-items: flex-start;
   }
}
