:root { --ink: #071b2e; --ink-2: #0d2944; --paper: #f6fbff; --white: #fff; --muted: #5d7185; --cyan: #27d3dc; --cyan-2: #0697aa; --violet: #7057ff; --lime: #8de36c; --line: rgba(9, 42, 68, .12); --shadow: 0 24px 70px rgba(5, 26, 45, .14); --shadow-sm: 0 12px 35px rgba(5, 26, 45, .10); --radius: 1.45rem; --radius-sm: .9rem; --header-h: 5.25rem; } html { scroll-behavior: smooth; background: var(--paper) } body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--paper); line-height: 1.6; overflow-x: hidden } a { color: var(--cyan-2); text-decoration: none } a:hover { color: var(--violet) } h1, h2, h3, h4 { font-weight: 760; line-height: 1.08; letter-spacing: -.03em; color: var(--ink); margin-top: 0 } h1 { font-size: clamp(2.7rem, 7vw, 5.8rem); max-width: 13ch } h2 { font-size: clamp(2rem, 4.4vw, 3.8rem) } h3 { font-size: clamp(1.25rem, 2vw, 1.65rem) } p { margin-top: 0 } .lead { font-size: clamp(1.1rem, 2vw, 1.35rem); color: var(--muted); max-width: 58ch } .eyebrow { display: inline-flex; align-items: center; gap: .55rem; text-transform: uppercase; letter-spacing: .14em; font-size: .76rem; font-weight: 800; color: var(--cyan-2); margin-bottom: 1.1rem } .eyebrow::before { content: ""; width: 1.8rem; height: 2px; background: linear-gradient(90deg, var(--cyan), var(--violet)) } .skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 9999; background: var(--ink); color: white; padding: .7rem 1rem; border-radius: .5rem } .skip-link:focus { top: 1rem } .site-header { position: sticky; top: 0; z-index: 1000; background: rgba(246, 251, 255, .86); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(9, 42, 68, .08) } .nav-shell { min-height: var(--header-h); display: flex; align-items: center; justify-content: space-between; gap: 1rem } .brand { display: flex; align-items: center; gap: .72rem; color: var(--ink); font-weight: 820; font-size: 1.2rem; letter-spacing: -.03em } .brand img { width: 3rem; height: 3rem; object-fit: contain; filter: drop-shadow(0 6px 10px rgba(13, 41, 68, .15)) } .brand small { display: block; font-size: .62rem; line-height: 1.1; color: var(--muted); font-weight: 700; letter-spacing: .11em; text-transform: uppercase } .desktop-nav { display: flex; align-items: center; gap: .2rem } .desktop-nav a { padding: .65rem .8rem; color: var(--ink-2); font-weight: 700; font-size: .92rem; border-radius: .7rem } .desktop-nav a[aria-current="page"], .desktop-nav a:hover { background: white; color: var(--violet); box-shadow: 0 6px 18px rgba(7, 27, 46, .06) } .lang-switch { display: inline-flex; border: 1px solid var(--line); background: white; border-radius: 999px; padding: .18rem } .lang-switch a { padding: .4rem .62rem; border-radius: 999px; font-size: .76rem } .lang-switch a.active { background: var(--ink); color: white } .nav-cta { background: linear-gradient(135deg, var(--violet), #4e9cff) !important; color: white !important; padding: .68rem 1rem !important; box-shadow: 0 10px 24px rgba(112, 87, 255, .25) } .menu-toggle { display: none; width: 2.8rem; height: 2.8rem; border: 1px solid var(--line); border-radius: .8rem; background: white; align-items: center; justify-content: center; cursor: pointer } .menu-toggle span, .menu-toggle::before, .menu-toggle::after { display: block; content: ""; width: 1.25rem; height: 2px; background: var(--ink); transition: .25s } .menu-toggle span { margin: .25rem 0 } .menu-toggle.open span { opacity: 0 } .menu-toggle.open::before { transform: translateY(.375rem) rotate(45deg) } .menu-toggle.open::after { transform: translateY(-.375rem) rotate(-45deg) } .mobile-nav { display: none; padding: .5rem 0 1rem } .mobile-nav.open { display: block } .mobile-nav a { display: block; color: var(--ink); padding: .8rem 0; border-bottom: 1px solid var(--line); font-weight: 700 } .hero { position: relative; min-height: calc(100vh - var(--header-h)); display: flex; align-items: center; padding: 5rem 0 4rem; overflow: hidden } .hero::before { content: ""; position: absolute; inset: -20% -10%; background: radial-gradient(circle at 72% 25%, rgba(39, 211, 220, .25), transparent 29%), radial-gradient(circle at 16% 65%, rgba(112, 87, 255, .18), transparent 30%), linear-gradient(130deg, #f9fdff 20%, #eaf9ff 100%); z-index: 0 } .hero-grid { position: relative; z-index: 1 } .hero h1 .gradient { background: linear-gradient(100deg, var(--cyan-2), var(--violet)); -webkit-background-clip: text; background-clip: text; color: transparent } .hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem } .button.primary, .button.secondary, .button.ghost { border: 0; border-radius: 999px; padding: .95rem 1.35rem; font-weight: 800; margin: 0; transition: transform .2s, box-shadow .2s } .button.primary { background: linear-gradient(135deg, var(--violet), #3e9cff); box-shadow: 0 14px 32px rgba(112, 87, 255, .30) } .button.secondary { background: var(--ink); color: white; box-shadow: 0 14px 32px rgba(7, 27, 46, .20) } .button.ghost { background: rgba(255, 255, 255, .7); color: var(--ink); border: 1px solid var(--line) } .button:hover { transform: translateY(-2px) } .trust-row { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 2.5rem; color: var(--muted); font-weight: 700; font-size: .9rem } .trust-row span { display: flex; align-items: center; gap: .45rem } .trust-row span::before { content: "✓"; display: grid; place-items: center; width: 1.35rem; height: 1.35rem; border-radius: 50%; background: rgba(39, 211, 220, .18); color: #007f8f; font-weight: 900 } .hero-art { position: relative; padding: 2rem } .hero-art img { width: 100%; filter: drop-shadow(0 35px 70px rgba(7, 27, 46, .20)); animation: float 8s ease-in-out infinite } .orbit-note { position: absolute; background: rgba(255, 255, 255, .88); backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, .85); box-shadow: var(--shadow-sm); border-radius: 1rem; padding: .75rem .9rem; font-weight: 800; font-size: .82rem } .orbit-note.one { left: 2%; top: 16% } .orbit-note.two { right: 0; bottom: 18% } .orbit-note i { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 6px rgba(141, 227, 108, .17); margin-right: .45rem } @keyframes float { 0%, 100% { transform: translateY(0) rotate(-.4deg) } 50% { transform: translateY(-12px) rotate(.4deg) } } .section { padding: clamp(4rem, 8vw, 7.5rem) 0 } .section.white { background: white } .section.dark { background: var(--ink); color: white; position: relative; overflow: hidden } .section.dark h2, .section.dark h3 { color: white } .section.dark .lead, .section.dark p { color: #bfd1df } .section.dark::after { content: ""; position: absolute; width: 32rem; height: 32rem; border-radius: 50%; right: -12rem; top: -8rem; background: radial-gradient(circle, rgba(39, 211, 220, .19), transparent 70%) } .section-head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.5rem } .section-head p { max-width: 42rem } .solution-grid { display: grid; grid-template-columns:repeat(12, 1fr); gap: 1.25rem } .solution-card { position: relative; overflow: hidden; min-height: 21rem; background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); padding: 1.8rem; transition: .3s } .solution-card:hover { transform: translateY(-6px); box-shadow: var(--shadow) } .solution-card.large { grid-column: span 7 } .solution-card.small { grid-column: span 5 } .solution-card.third { grid-column: span 4 } .solution-card .icon { width: 4rem; height: 4rem; border-radius: 1.1rem; display: grid; place-items: center; background: linear-gradient(135deg, rgba(39, 211, 220, .18), rgba(112, 87, 255, .14)); margin-bottom: 1.5rem } .solution-card .icon img { width: 2.5rem; height: 2.5rem } .solution-card p { color: var(--muted); max-width: 42ch } .solution-card .card-link { position: absolute; bottom: 1.5rem; left: 1.8rem; font-weight: 850; color: var(--ink) } .solution-card .card-link::after { content: " →"; color: var(--violet) } .solution-card .glow { position: absolute; width: 11rem; height: 11rem; border-radius: 50%; right: -4rem; top: -4rem; background: radial-gradient(circle, rgba(39, 211, 220, .27), transparent 70%) } .architecture { border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .05); border-radius: var(--radius); padding: clamp(1.2rem, 3vw, 2.2rem); position: relative; z-index: 2 } .architecture img { width: 100% } .feature-list { list-style: none; margin: 1.5rem 0 0; padding: 0 } .feature-list li { position: relative; padding: .65rem 0 .65rem 2rem; border-bottom: 1px solid var(--line); color: var(--muted) } .feature-list li::before { content: ""; position: absolute; left: 0; top: 1.08rem; width: .7rem; height: .7rem; border-radius: 50%; background: linear-gradient(135deg, var(--cyan), var(--violet)); box-shadow: 0 0 0 5px rgba(39, 211, 220, .12) } .dark .feature-list li { border-bottom-color: rgba(255, 255, 255, .12); color: #c8d8e5 } .metric-strip { display: grid; grid-template-columns:repeat(4, 1fr); gap: 1rem; margin-top: 2.5rem } .metric { padding: 1.4rem; border-radius: 1.1rem; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .11) } .metric strong { font-size: 1.5rem; display: block; color: white } .metric span { font-size: .86rem; color: #aec4d5 } .industry-card { height: 100%; padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: linear-gradient(180deg, #fff, #f7fcff) } .industry-card .num { font-size: .78rem; color: var(--violet); font-weight: 900; letter-spacing: .12em } .industry-card p { color: var(--muted) } .process-steps { counter-reset: steps; display: grid; grid-template-columns:repeat(4, 1fr); gap: 1rem } .process-step { counter-increment: steps; padding: 1.5rem; border: 1px solid var(--line); border-radius: 1.15rem; background: white } .process-step::before { content: "0" counter(steps); display: block; font-size: .78rem; letter-spacing: .12em; font-weight: 900; color: var(--cyan-2); margin-bottom: 1.8rem } .process-step p { color: var(--muted); font-size: .94rem } .quote { font-size: clamp(1.6rem, 3.4vw, 2.7rem); line-height: 1.25; max-width: 30ch; color: white } .cta-panel { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--ink), #113d61); color: white; border-radius: 2rem; padding: clamp(2rem, 5vw, 4rem); box-shadow: var(--shadow) } .cta-panel::after { content: ""; position: absolute; width: 20rem; height: 20rem; border-radius: 50%; right: -7rem; top: -8rem; background: radial-gradient(circle, rgba(39, 211, 220, .45), transparent 68%) } .cta-panel h2 { color: white; position: relative; z-index: 1 } .cta-panel p { color: #c5d8e7; position: relative; z-index: 1 } .page-hero { padding: 5rem 0 3rem; background: radial-gradient(circle at 85% 15%, rgba(39, 211, 220, .22), transparent 30%), linear-gradient(150deg, #f8fdff, #eaf7ff) } .page-hero h1 { font-size: clamp(2.6rem, 6vw, 5rem); max-width: 16ch } .product-row { padding: 3rem 0; border-bottom: 1px solid var(--line) } .product-row:last-child { border-bottom: 0 } .product-visual { background: linear-gradient(145deg, #edfaff, #f5f1ff); border: 1px solid var(--line); border-radius: var(--radius); padding: 2rem; min-height: 22rem; display: grid; place-items: center } .product-visual img { max-height: 18rem } .badge { display: inline-flex; padding: .35rem .7rem; border-radius: 999px; background: rgba(112, 87, 255, .11); color: var(--violet); font-size: .76rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em } .company-values { display: grid; grid-template-columns:repeat(3, 1fr); gap: 1rem } .value { padding: 1.5rem; border-radius: 1rem; background: white; border: 1px solid var(--line) } .value strong { font-size: 1.15rem } .contact-card { background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); padding: clamp(1.5rem, 4vw, 2.6rem) } .contact-card input, .contact-card textarea, .contact-card select { border-radius: .75rem; border-color: #cbdbe7; background: #fbfdff; box-shadow: none } .contact-card input:focus, .contact-card textarea:focus, .contact-card select:focus { border-color: var(--violet); box-shadow: 0 0 0 3px rgba(112, 87, 255, .12) } .form-grid { display: grid; grid-template-columns:1fr 1fr; gap: 0 1rem } .form-grid .full { grid-column: 1/-1 } .checkbox-line { display: flex; align-items: flex-start; gap: .65rem; font-size: .9rem; color: var(--muted) } .checkbox-line input { width: auto; height: auto; margin-top: .3rem } .form-status { display: none; padding: .8rem 1rem; border-radius: .7rem; background: #eafbea; color: #216b2a; margin-top: 1rem } .legal { max-width: 56rem } .legal h2 { font-size: 1.7rem; margin-top: 2.3rem } .legal h3 { font-size: 1.2rem; margin-top: 1.7rem } .legal p, .legal li { color: #3f566b } .legal-note { border-left: 4px solid #f1b842; background: #fff8df; padding: 1rem 1.2rem; border-radius: .5rem; margin: 1.5rem 0 } .footer { background: #061625; color: #a9bfd1; padding: 4rem 0 1.5rem } .footer h3, .footer strong { color: white } .footer-logo { display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem } .footer-logo img { width: 3.2rem } .footer a { color: #c9dce9 } .footer a:hover { color: var(--cyan) } .footer ul { list-style: none; margin: 0; padding: 0 } .footer li { margin: .45rem 0 } .footer-bottom { margin-top: 3rem; padding-top: 1.3rem; border-top: 1px solid rgba(255, 255, 255, .1); display: flex; justify-content: space-between; gap: 1rem; font-size: .85rem } .reveal-on-scroll { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease } .reveal-on-scroll.visible { opacity: 1; transform: none } .cookie-notice { position: fixed; z-index: 2000; left: 1rem; right: 1rem; bottom: 1rem; max-width: 40rem; margin: auto; background: white; border: 1px solid var(--line); border-radius: 1rem; box-shadow: var(--shadow); padding: 1rem 1.2rem; display: none } .cookie-notice.show { display: block } .cookie-actions { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: .7rem } .cookie-actions button { border: 0; border-radius: 999px; padding: .55rem .9rem; font-weight: 800; cursor: pointer } .cookie-actions .accept { background: var(--ink); color: white } .cookie-actions .decline { background: #edf3f7; color: var(--ink) } @media (max-width: 63.999em) { .desktop-nav { display: none } .menu-toggle { display: block } .hero { min-height: auto } .hero-art { margin-top: 2rem } .solution-card.large, .solution-card.small { grid-column: span 6 } .solution-card.third { grid-column: span 6 } .process-steps { grid-template-columns:repeat(2, 1fr) } .metric-strip { grid-template-columns:repeat(2, 1fr) } } @media (max-width: 39.999em) { :root { --header-h: 4.5rem } .grid-container { padding-left: 1.1rem; padding-right: 1.1rem } .brand img { width: 2.6rem; height: 2.6rem } .brand small { display: none } .hero { padding: 3.2rem 0 } .hero-art { padding: .5rem } .orbit-note { font-size: .72rem } .solution-card.large, .solution-card.small, .solution-card.third { grid-column: span 12; min-height: 19rem } .section-head { display: block } .section-head .button { margin-top: 1rem } .process-steps, .company-values, .metric-strip { grid-template-columns:1fr } .form-grid { grid-template-columns:1fr } .form-grid .full { grid-column: auto } .footer-bottom { display: block } .page-hero { padding: 3rem 0 2rem } .product-row { padding: 2rem 0 } .product-visual { min-height: 15rem; margin-bottom: 1.5rem } .trust-row { display: block } .trust-row span { margin: .6rem 0 } } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important } } /* Visually hidden bot trap; never accept it as a visible form field. */ .contact-card .honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; } .form-status.error { background: #fff1f0; color: #8c2424; }