@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400 700;
font-display: swap;
src: url('/assets/fonts/inter-latin.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400 700;
font-display: swap;
src: url('/assets/fonts/inter-latin-ext.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
U+2113, U+2C60-2C7F, U+A720-A7FF;
}
:root {
color-scheme: light;
--navy-900: #0b132b;
--navy-700: #17264f;
--ink: #0b1220;
--ink-2: #46536b;
--ink-3: #6b7789;
--bg: #ffffff;
--bg-soft: #f7f8fa;
--bg-tint: #eff3ff;
--surface: #ffffff;
--input-bg: #ffffff;
--line: #e3e7ee;
--line-strong: #cfd6e2;
--accent: #2b50f0;
--accent-ink: #1c37b8;
--brand-ink: #0b132b;
--brand-core: var(--bg);
--btn-bg: #0b132b;
--btn-bg-hover: #17264f;
--btn-ink: #ffffff;
--header-bg: rgba(255, 255, 255, 0.82);
--hero-glow-a: rgba(43, 80, 240, 0.1);
--hero-glow-b: rgba(11, 19, 43, 0.07);
--aurora-a: rgba(43, 80, 240, 0.14);
--aurora-b: rgba(120, 150, 255, 0.11);
--aurora-c: rgba(11, 19, 43, 0.06);
--beam-a: rgba(43, 80, 240, 0.11);
--beam-b: rgba(125, 150, 255, 0.08);
--grid-line: rgba(11, 19, 43, 0.07);
--star: rgba(43, 80, 240, 0.24);
--shine: rgba(43, 80, 240, 0.07);
--accent-glow: rgba(43, 80, 240, 0.16);
--glass-bg: rgba(255, 255, 255, 0.74);
--glass-head: rgba(255, 255, 255, 0.92);
--glass-line: rgba(11, 19, 43, 0.1);
--backdrop: rgba(11, 19, 43, 0.42);
--invert-bg: #0b132b;
--invert-glow: rgba(43, 80, 240, 0.22);
--invert-line: rgba(255, 255, 255, 0.12);
--invert-accent: #93a8ff;
--on-invert: #ffffff;
--on-invert-2: #b8c2d6;
--footer-bg: #0b132b;
--ok-bg: #e8f7ef;
--ok-ink: #0f7a4d;
--ok-dot: #16a06a;
--danger: #c0392b;
--danger-ink: #b03024;
--radius: 14px;
--radius-lg: 20px;
--shadow-sm: 0 1px 2px rgba(11, 19, 43, 0.05);
--shadow-md: 0 1px 2px rgba(11, 19, 43, 0.05), 0 12px 28px -12px rgba(11, 19, 43, 0.16);
--shadow-lg: 0 2px 4px rgba(11, 19, 43, 0.06), 0 24px 48px -20px rgba(11, 19, 43, 0.28);
--wrap: 1200px;
--pad: 24px;
--font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme='light']) {
color-scheme: dark;
--ink: #eaf0f9;
--ink-2: #a3b1c7;
--ink-3: #78879e;
--bg: #0a0f1c;
--bg-soft: #0e1526;
--bg-tint: #16203a;
--surface: #111a2e;
--input-bg: #0d1524;
--line: #1d2740;
--line-strong: #2b3853;
--accent: #7d97ff;
--accent-ink: #9db2ff;
--brand-ink: #eaf0f9;
--brand-core: var(--bg);
--btn-bg: #eaf0f9;
--btn-bg-hover: #ffffff;
--btn-ink: #0a0f1c;
--header-bg: rgba(10, 15, 28, 0.82);
--hero-glow-a: rgba(70, 105, 255, 0.2);
--hero-glow-b: rgba(120, 160, 255, 0.08);
--aurora-a: rgba(70, 105, 255, 0.24);
--aurora-b: rgba(140, 110, 255, 0.16);
--aurora-c: rgba(40, 90, 200, 0.16);
--beam-a: rgba(95, 125, 255, 0.17);
--beam-b: rgba(150, 120, 255, 0.12);
--grid-line: rgba(160, 190, 255, 0.08);
--star: rgba(165, 190, 255, 0.32);
--shine: rgba(160, 185, 255, 0.09);
--accent-glow: rgba(125, 151, 255, 0.22);
--glass-bg: rgba(17, 26, 46, 0.76);
--glass-head: rgba(17, 26, 46, 0.94);
--glass-line: rgba(255, 255, 255, 0.12);
--backdrop: rgba(3, 6, 14, 0.58);
--invert-bg: #101a2e;
--invert-glow: rgba(90, 120, 255, 0.2);
--invert-line: rgba(255, 255, 255, 0.1);
--invert-accent: #9db2ff;
--on-invert: #eaf0f9;
--on-invert-2: #a3b1c7;
--footer-bg: #070c17;
--ok-bg: rgba(22, 160, 106, 0.16);
--ok-ink: #5fd6a0;
--ok-dot: #2fbb80;
--danger: #e06c5f;
--danger-ink: #ef8378;
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
--shadow-md: 0 1px 2px rgba(0, 0, 0, 0.4), 0 12px 28px -12px rgba(0, 0, 0, 0.6);
--shadow-lg: 0 2px 4px rgba(0, 0, 0, 0.45), 0 24px 48px -20px rgba(0, 0, 0, 0.75);
}
}
:root[data-theme='dark'] {
color-scheme: dark;
--ink: #eaf0f9;
--ink-2: #a3b1c7;
--ink-3: #78879e;
--bg: #0a0f1c;
--bg-soft: #0e1526;
--bg-tint: #16203a;
--surface: #111a2e;
--input-bg: #0d1524;
--line: #1d2740;
--line-strong: #2b3853;
--accent: #7d97ff;
--accent-ink: #9db2ff;
--brand-ink: #eaf0f9;
--brand-core: var(--bg);
--btn-bg: #eaf0f9;
--btn-bg-hover: #ffffff;
--btn-ink: #0a0f1c;
--header-bg: rgba(10, 15, 28, 0.82);
--hero-glow-a: rgba(70, 105, 255, 0.2);
--hero-glow-b: rgba(120, 160, 255, 0.08);
--aurora-a: rgba(70, 105, 255, 0.24);
--aurora-b: rgba(140, 110, 255, 0.16);
--aurora-c: rgba(40, 90, 200, 0.16);
--beam-a: rgba(95, 125, 255, 0.17);
--beam-b: rgba(150, 120, 255, 0.12);
--grid-line: rgba(160, 190, 255, 0.08);
--star: rgba(165, 190, 255, 0.32);
--shine: rgba(160, 185, 255, 0.09);
--accent-glow: rgba(125, 151, 255, 0.22);
--glass-bg: rgba(17, 26, 46, 0.76);
--glass-head: rgba(17, 26, 46, 0.94);
--glass-line: rgba(255, 255, 255, 0.12);
--backdrop: rgba(3, 6, 14, 0.58);
--invert-bg: #101a2e;
--invert-glow: rgba(90, 120, 255, 0.2);
--invert-line: rgba(255, 255, 255, 0.1);
--invert-accent: #9db2ff;
--on-invert: #eaf0f9;
--on-invert-2: #a3b1c7;
--footer-bg: #070c17;
--ok-bg: rgba(22, 160, 106, 0.16);
--ok-ink: #5fd6a0;
--ok-dot: #2fbb80;
--danger: #e06c5f;
--danger-ink: #ef8378;
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
--shadow-md: 0 1px 2px rgba(0, 0, 0, 0.4), 0 12px 28px -12px rgba(0, 0, 0, 0.6);
--shadow-lg: 0 2px 4px rgba(0, 0, 0, 0.45), 0 24px 48px -20px rgba(0, 0, 0, 0.75);
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
-webkit-text-size-adjust: 100%;
scroll-behavior: smooth;
scroll-padding-top: 88px;
}
body {
margin: 0;
background: var(--bg);
color: var(--ink);
font-family: var(--font);
font-size: 17px;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
h1,
h2,
h3 {
margin: 0;
line-height: 1.12;
letter-spacing: -0.022em;
font-weight: 650;
}
p {
margin: 0;
}
ul,
ol {
margin: 0;
padding: 0;
list-style: none;
}
a {
color: var(--accent-ink);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
img,
svg {
max-width: 100%;
}
[hidden] {
display: none !important;
}
:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 3px;
border-radius: 4px;
}
.skip {
position: absolute;
left: -9999px;
top: 0;
z-index: 100;
background: var(--btn-bg);
color: var(--btn-ink);
padding: 10px 16px;
border-radius: 0 0 8px 0;
}
.skip:focus {
left: 0;
}
.wrap {
width: 100%;
max-width: var(--wrap);
margin: 0 auto;
padding: 0 var(--pad);
}
.wrap-narrow {
max-width: 780px;
}
.section {
padding: 96px 0;
}
.section-alt {
background: var(--bg-soft);
border-top: 1px solid var(--line);
border-bottom: 1px solid var(--line);
}
.section-head {
max-width: 720px;
margin-bottom: 48px;
}
.eyebrow {
font-size: 13px;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--accent-ink);
margin-bottom: 14px;
}
.section-title {
font-size: clamp(30px, 4vw, 44px);
}
.section-lead {
margin-top: 16px;
font-size: 19px;
color: var(--ink-2);
}
.lead {
font-size: 19px;
color: var(--ink-2);
}
.grid {
display: grid;
gap: 24px;
}
.grid-3 {
grid-template-columns: repeat(3, 1fr);
}
.brand {
display: inline-flex;
align-items: center;
gap: 10px;
color: var(--brand-ink);
font-weight: 650;
letter-spacing: -0.01em;
text-decoration: none;
}
.brand:hover {
text-decoration: none;
}
.brand-mark {
width: 30px;
height: 30px;
flex: none;
}
.brand-name {
font-size: 18px;
letter-spacing: 0.02em;
}
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
padding: 13px 22px;
border: 1px solid transparent;
border-radius: 10px;
font: inherit;
font-size: 16px;
font-weight: 550;
line-height: 1;
cursor: pointer;
text-decoration: none;
transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease,
transform 0.16s ease, box-shadow 0.16s ease;
}
.btn:hover {
text-decoration: none;
transform: translateY(-1px);
}
.btn:active {
transform: translateY(0);
}
.btn-primary {
background: var(--btn-bg);
color: var(--btn-ink);
box-shadow: var(--shadow-sm);
}
.btn-primary:hover {
background: var(--btn-bg-hover);
box-shadow: var(--shadow-md);
}
.btn-ghost {
background: transparent;
border-color: var(--line-strong);
color: var(--ink);
}
.btn-ghost:hover {
border-color: var(--ink);
background: var(--surface);
}
.btn-sm {
padding: 9px 16px;
font-size: 15px;
}
.btn-block {
width: 100%;
}
.btn-lg {
padding: 16px 28px;
font-size: 17px;
}
.btn-primary::after {
content: '';
width: 7px;
height: 7px;
border-right: 2px solid currentColor;
border-top: 2px solid currentColor;
transform: rotate(45deg);
transition: transform 0.16s ease;
}
.btn-primary:hover::after {
transform: rotate(45deg) translate(2px, -2px);
}
.site-header {
position: sticky;
top: 0;
z-index: 50;
background: var(--header-bg);
backdrop-filter: saturate(160%) blur(12px);
border-bottom: 1px solid transparent;
transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.site-header.is-stuck {
border-bottom-color: var(--line);
box-shadow: var(--shadow-md);
}
.header-inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
height: 72px;
}
.site-nav {
display: flex;
align-items: center;
gap: 32px;
}
.nav-links {
display: flex;
align-items: center;
gap: 28px;
}
.nav-links a {
color: var(--ink-2);
font-size: 15.5px;
font-weight: 500;
}
.nav-links a:hover {
color: var(--ink);
text-decoration: none;
}
.nav-actions {
display: flex;
align-items: center;
gap: 16px;
}
.lang-link {
color: var(--ink-3);
font-size: 14px;
font-weight: 550;
padding: 6px 10px;
border: 1px solid var(--line);
border-radius: 8px;
}
.lang-link:hover {
color: var(--ink);
border-color: var(--line-strong);
text-decoration: none;
}
.theme-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 33px;
padding: 0;
background: transparent;
border: 1px solid var(--line);
border-radius: 8px;
color: var(--ink-3);
cursor: pointer;
}
.theme-toggle:hover {
color: var(--ink);
border-color: var(--line-strong);
}
.theme-toggle svg {
width: 17px;
height: 17px;
}
.theme-toggle .i-sun {
display: none;
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme='light']) .theme-toggle .i-sun {
display: block;
}
:root:not([data-theme='light']) .theme-toggle .i-moon {
display: none;
}
}
:root[data-theme='dark'] .theme-toggle .i-sun {
display: block;
}
:root[data-theme='dark'] .theme-toggle .i-moon {
display: none;
}
:root[data-theme='light'] .theme-toggle .i-sun {
display: none;
}
:root[data-theme='light'] .theme-toggle .i-moon {
display: block;
}
.nav-toggle {
display: none;
flex-direction: column;
justify-content: center;
gap: 5px;
width: 42px;
height: 42px;
padding: 0;
background: transparent;
border: 1px solid var(--line);
border-radius: 10px;
cursor: pointer;
}
.nav-toggle-bar {
display: block;
width: 18px;
height: 2px;
margin: 0 auto;
background: var(--ink);
transition: transform 0.18s ease, opacity 0.18s ease;
}
.nav-toggle[aria-expanded='true'] .nav-toggle-bar:first-child {
transform: translateY(3.5px) rotate(45deg);
}
.nav-toggle[aria-expanded='true'] .nav-toggle-bar:last-child {
transform: translateY(-3.5px) rotate(-45deg);
}
.js .reveal {
opacity: 0;
transform: translateY(18px);
}
.js .reveal.is-in {
opacity: 1;
transform: none;
transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 0.7, 0.3, 1);
}
.js .grid .reveal:nth-child(2).is-in,
.js .steps .reveal:nth-child(2).is-in {
transition-delay: 70ms;
}
.js .grid .reveal:nth-child(3).is-in,
.js .steps .reveal:nth-child(3).is-in {
transition-delay: 140ms;
}
.js .steps .reveal:nth-child(4).is-in {
transition-delay: 210ms;
}
.hero {
position: relative;
padding: 72px 0 0;
background:
radial-gradient(900px 420px at 12% -10%, var(--hero-glow-a), transparent 60%),
radial-gradient(700px 380px at 88% 0%, var(--hero-glow-b), transparent 62%),
var(--bg);
overflow: hidden;
}
.bg {
position: absolute;
inset: 0;
overflow: hidden;
pointer-events: none;
z-index: 0;
display: none;
}
.bg span {
position: absolute;
display: block;
}
[data-motion='aurora'] .bg-aurora,
[data-motion='beams'] .bg-beams,
[data-motion='grid'] .bg-grid,
[data-motion='orbit'] .bg-orbit,
[data-motion='starfield'] .bg-starfield {
display: block;
}
.aurora-a,
.aurora-b,
.aurora-c {
border-radius: 50%;
}
.aurora-a {
width: 760px;
height: 760px;
top: -260px;
left: -180px;
background: radial-gradient(circle, var(--aurora-a), transparent 68%);
animation: aurora-a 28s ease-in-out infinite alternate;
}
.aurora-b {
width: 620px;
height: 620px;
top: -140px;
right: -140px;
background: radial-gradient(circle, var(--aurora-b), transparent 68%);
animation: aurora-b 34s ease-in-out infinite alternate;
}
.aurora-c {
width: 540px;
height: 540px;
bottom: -240px;
left: 42%;
background: radial-gradient(circle, var(--aurora-c), transparent 70%);
animation: aurora-c 40s ease-in-out infinite alternate;
}
@keyframes aurora-a {
from {
transform: translate3d(0, 0, 0) scale(1);
}
to {
transform: translate3d(140px, 70px, 0) scale(1.18);
}
}
@keyframes aurora-b {
from {
transform: translate3d(0, 0, 0) scale(1.1);
}
to {
transform: translate3d(-120px, 100px, 0) scale(0.92);
}
}
@keyframes aurora-c {
from {
transform: translate3d(0, 0, 0) scale(0.95);
}
to {
transform: translate3d(-160px, -60px, 0) scale(1.25);
}
}
.beam-a,
.beam-b {
top: 50%;
left: 50%;
width: 180vmax;
height: 180vmax;
margin: -90vmax 0 0 -90vmax;
border-radius: 50%;
mask: radial-gradient(circle at center, #000 0%, transparent 62%);
-webkit-mask: radial-gradient(circle at center, #000 0%, transparent 62%);
}
.beam-a {
background: conic-gradient(
from 0deg,
transparent 0deg,
var(--beam-a) 24deg,
transparent 64deg,
transparent 180deg,
var(--beam-a) 214deg,
transparent 258deg,
transparent 360deg
);
animation: spin-slow 66s linear infinite;
}
.beam-b {
background: conic-gradient(
from 40deg,
transparent 0deg,
var(--beam-b) 30deg,
transparent 78deg,
transparent 300deg,
var(--beam-b) 330deg,
transparent 360deg
);
animation: spin-slow-reverse 92s linear infinite;
}
@keyframes spin-slow {
to {
transform: rotate(360deg);
}
}
@keyframes spin-slow-reverse {
to {
transform: rotate(-360deg);
}
}
.grid-plane {
top: -50%;
left: -25%;
width: 150%;
height: 200%;
background-image:
linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
background-size: 48px 48px;
mask: radial-gradient(ellipse 70% 55% at 50% 40%, #000 0%, transparent 75%);
-webkit-mask: radial-gradient(ellipse 70% 55% at 50% 40%, #000 0%, transparent 75%);
animation: grid-drift 6s linear infinite;
}
@keyframes grid-drift {
to {
transform: translate3d(0, -48px, 0);
}
}
.orbit-ring {
top: 50%;
left: 50%;
border: 1px solid var(--grid-line);
border-radius: 50%;
transform: translate(-50%, -50%);
}
.orbit-1 {
width: 420px;
height: 420px;
border-top-color: var(--accent);
animation: orbit-spin 24s linear infinite;
}
.orbit-2 {
width: 700px;
height: 700px;
border-left-color: var(--beam-a);
animation: orbit-spin-reverse 44s linear infinite;
}
.orbit-3 {
width: 1020px;
height: 1020px;
animation: orbit-spin 76s linear infinite;
}
.orbit-dot {
top: 50%;
left: 50%;
width: 700px;
height: 700px;
margin: -350px 0 0 -350px;
animation: orbit-spin 24s linear infinite;
}
.orbit-dot::before {
content: '';
position: absolute;
top: -5px;
left: 50%;
width: 10px;
height: 10px;
margin-left: -5px;
border-radius: 50%;
background: var(--accent);
box-shadow: 0 0 0 6px var(--accent-glow);
}
@keyframes orbit-spin {
from {
transform: translate(-50%, -50%) rotate(0deg);
}
to {
transform: translate(-50%, -50%) rotate(360deg);
}
}
@keyframes orbit-spin-reverse {
from {
transform: translate(-50%, -50%) rotate(0deg);
}
to {
transform: translate(-50%, -50%) rotate(-360deg);
}
}
.stars-near,
.stars-far {
top: -50%;
left: -25%;
width: 150%;
height: 200%;
mask: radial-gradient(ellipse 75% 60% at 50% 35%, #000 0%, transparent 78%);
-webkit-mask: radial-gradient(ellipse 75% 60% at 50% 35%, #000 0%, transparent 78%);
}
.stars-near {
background-image: radial-gradient(var(--star) 1.6px, transparent 1.7px);
background-size: 90px 90px;
animation: stars-near 26s linear infinite;
}
.stars-far {
background-image: radial-gradient(var(--star) 1px, transparent 1.1px);
background-size: 46px 46px;
opacity: 0.55;
animation: stars-far 44s linear infinite;
}
@keyframes stars-near {
to {
transform: translate3d(-90px, -90px, 0);
}
}
@keyframes stars-far {
to {
transform: translate3d(-46px, -46px, 0);
}
}
.hero-inner,
.hero + .wrap,
.hero .wrap {
position: relative;
z-index: 1;
}
.hero-inner {
display: grid;
grid-template-columns: 1.05fr 0.95fr;
gap: 56px;
align-items: center;
padding-bottom: 72px;
}
.hero-title {
font-size: clamp(38px, 5.4vw, 62px);
letter-spacing: -0.03em;
margin-bottom: 22px;
}
[data-fx~='headline'] .hero-title span {
display: inline-block;
opacity: 0;
animation: word-in 0.7s cubic-bezier(0.22, 0.7, 0.3, 1) forwards;
}
@keyframes word-in {
from {
opacity: 0;
transform: translateY(0.42em);
}
to {
opacity: 1;
transform: none;
}
}
[data-fx~='headline'] .hero-title span:nth-child(1) { animation-delay: 0.05s; }
[data-fx~='headline'] .hero-title span:nth-child(2) { animation-delay: 0.11s; }
[data-fx~='headline'] .hero-title span:nth-child(3) { animation-delay: 0.17s; }
[data-fx~='headline'] .hero-title span:nth-child(4) { animation-delay: 0.23s; }
[data-fx~='headline'] .hero-title span:nth-child(5) { animation-delay: 0.29s; }
[data-fx~='headline'] .hero-title span:nth-child(6) { animation-delay: 0.35s; }
[data-fx~='headline'] .hero-title span:nth-child(7) { animation-delay: 0.41s; }
[data-fx~='headline'] .hero-title span:nth-child(8) { animation-delay: 0.47s; }
[data-fx~='headline'] .hero-title span:nth-child(9) { animation-delay: 0.53s; }
[data-fx~='headline'] .hero-title span:nth-child(n + 10) { animation-delay: 0.59s; }
[data-fx~='headline'] .hero-copy .lead,
[data-fx~='headline'] .hero-actions,
[data-fx~='headline'] .hero-note {
opacity: 0;
animation: word-in 0.7s cubic-bezier(0.22, 0.7, 0.3, 1) 0.5s forwards;
}
[data-fx~='headline'] .hero-actions {
animation-delay: 0.6s;
}
[data-fx~='headline'] .hero-note {
animation-delay: 0.7s;
}
[data-fx~='float'] .hero-panel {
animation: float 9s ease-in-out infinite;
}
@keyframes float {
0%,
100% {
transform: translateY(0);
}
50% {
transform: translateY(-8px);
}
}
@supports (animation-timeline: scroll()) {
[data-fx~='parallax'] .hero-panel-wrap {
animation: parallax linear both;
animation-timeline: scroll();
animation-range: 0 70vh;
}
}
@keyframes parallax {
to {
transform: translateY(-46px);
}
}
@media (hover: hover) and (pointer: fine) {
[data-fx~='spotlight'] .card::after {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
pointer-events: none;
opacity: 0;
transition: opacity 0.25s ease;
background: radial-gradient(
320px circle at var(--mx, 50%) var(--my, 50%),
var(--shine),
transparent 70%
);
}
[data-fx~='spotlight'] .card:hover::after {
opacity: 1;
}
}
.hero-copy .lead {
max-width: 34em;
}
.hero-actions {
display: flex;
flex-wrap: wrap;
gap: 14px;
margin-top: 32px;
}
.hero-note {
margin-top: 18px;
font-size: 14.5px;
color: var(--ink-3);
}
.hero-panel {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-lg);
padding: 22px;
}
.panel-head {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 16px;
border-bottom: 1px solid var(--line);
}
.panel-title {
font-weight: 600;
font-size: 15px;
}
.panel-status {
display: inline-flex;
align-items: center;
gap: 7px;
font-size: 12.5px;
font-weight: 600;
color: var(--ok-ink);
background: var(--ok-bg);
border-radius: 999px;
padding: 4px 11px;
}
.panel-status-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--ok-dot);
box-shadow: 0 0 0 3px var(--ok-bg);
}
.flow {
position: relative;
padding: 20px 0 4px;
}
.flow-pulse {
position: absolute;
left: 2px;
top: 26px;
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--accent);
box-shadow: 0 0 0 4px var(--accent-glow);
opacity: 0;
animation: flow-pulse 5s ease-in-out infinite;
}
@keyframes flow-pulse {
0% {
transform: translateY(0);
opacity: 0;
}
8% {
opacity: 1;
}
45% {
transform: translateY(183.3px);
opacity: 1;
}
55% {
transform: translateY(183.3px);
opacity: 0;
}
100% {
transform: translateY(183.3px);
opacity: 0;
}
}
.flow-node {
position: relative;
padding: 0 0 20px 30px;
border-left: 2px solid var(--line);
margin-left: 5px;
}
.flow-node:last-of-type {
border-left-color: transparent;
padding-bottom: 4px;
}
.flow-dot {
position: absolute;
left: -7px;
top: 4px;
width: 12px;
height: 12px;
border-radius: 50%;
background: var(--surface);
border: 2px solid var(--line-strong);
}
.flow-node.is-agent .flow-dot {
border-color: var(--accent);
background: var(--accent);
box-shadow: 0 0 0 4px var(--accent-glow);
}
.flow-label {
display: block;
font-weight: 600;
font-size: 15px;
line-height: 1.3;
}
.flow-detail {
display: block;
font-size: 13.5px;
color: var(--ink-3);
}
.panel-metrics {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
padding-top: 16px;
border-top: 1px solid var(--line);
}
.panel-metric {
background: var(--bg-soft);
border-radius: 10px;
padding: 10px 12px;
}
.panel-metric-label {
display: block;
font-size: 11.5px;
letter-spacing: 0.05em;
text-transform: uppercase;
color: var(--ink-3);
}
.panel-metric-value {
display: block;
font-size: 14px;
font-weight: 600;
line-height: 1.3;
}
.stats {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 0;
border-top: 1px solid var(--line);
border-bottom: 1px solid var(--line);
}
.stat {
padding: 32px 28px;
border-left: 1px solid var(--line);
}
.stat:first-child {
border-left: none;
padding-left: 0;
}
.stat-value {
display: block;
font-size: 27px;
font-weight: 650;
letter-spacing: -0.02em;
color: var(--ink);
}
.stat-label {
display: block;
margin-top: 6px;
font-size: 14.5px;
color: var(--ink-2);
max-width: 24em;
}
.card {
position: relative;
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
padding: 28px;
box-shadow: var(--shadow-sm);
overflow: hidden;
transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.card:hover {
transform: translateY(-3px);
border-color: var(--line-strong);
box-shadow: var(--shadow-md);
}
.card::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(105deg, transparent 38%, var(--shine) 50%, transparent 62%);
transform: translateX(-100%);
transition: transform 0.7s ease;
pointer-events: none;
}
.card:hover::before {
transform: translateX(100%);
}
.card-top {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
}
.card-num {
font-size: 13px;
font-weight: 650;
letter-spacing: 0.1em;
color: var(--accent);
background: var(--bg-tint);
border-radius: 8px;
padding: 5px 10px;
}
.icon {
width: 24px;
height: 24px;
color: var(--ink-3);
}
.card-title {
font-size: 21px;
margin-bottom: 12px;
}
.card-body {
color: var(--ink-2);
font-size: 16px;
}
.ticks {
margin-top: 20px;
padding-top: 18px;
border-top: 1px solid var(--line);
display: grid;
gap: 9px;
}
.ticks li {
position: relative;
padding-left: 26px;
font-size: 15px;
color: var(--ink-2);
}
.ticks li::before {
content: '';
position: absolute;
left: 4px;
top: 8px;
width: 5px;
height: 9px;
border-right: 2px solid var(--accent);
border-bottom: 2px solid var(--accent);
transform: rotate(42deg);
}
.steps {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 28px;
}
.step {
padding-top: 22px;
border-top: 2px solid var(--line-strong);
}
.step-num {
display: block;
font-size: 13px;
font-weight: 650;
letter-spacing: 0.1em;
color: var(--accent);
margin-bottom: 12px;
}
.step-title {
font-size: 19px;
margin-bottom: 8px;
}
.step-body {
color: var(--ink-2);
font-size: 15.5px;
}
.work-kind {
font-size: 12.5px;
font-weight: 600;
letter-spacing: 0.07em;
text-transform: uppercase;
color: var(--accent-ink);
margin-bottom: 14px;
}
.faq {
display: grid;
gap: 0;
border-top: 1px solid var(--line-strong);
}
.faq-item {
border-bottom: 1px solid var(--line-strong);
}
.faq-q {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 20px;
padding: 22px 0;
font-size: 18px;
font-weight: 600;
cursor: pointer;
list-style: none;
}
.faq-q::-webkit-details-marker {
display: none;
}
.faq-q::after {
content: '';
flex: none;
width: 13px;
height: 13px;
margin-top: 6px;
background:
linear-gradient(var(--ink-3), var(--ink-3)) center/13px 2px no-repeat,
linear-gradient(var(--ink-3), var(--ink-3)) center/2px 13px no-repeat;
transition: transform 0.2s ease;
}
.faq-item[open] .faq-q::after {
transform: rotate(45deg);
}
.faq-a {
padding: 0 44px 24px 0;
color: var(--ink-2);
}
.section-contact {
background:
radial-gradient(800px 400px at 20% 0%, var(--invert-glow), transparent 60%),
var(--invert-bg);
color: var(--on-invert);
}
.section-contact .eyebrow {
color: var(--invert-accent);
}
.section-contact .section-lead,
.section-contact .contact-mail {
color: var(--on-invert-2);
}
.section-contact a {
color: var(--on-invert);
text-decoration: underline;
text-underline-offset: 3px;
}
.contact-inner {
display: grid;
justify-items: center;
text-align: center;
}
.contact-copy {
padding-top: 8px;
max-width: 640px;
}
.contact-actions {
margin-top: 30px;
}
.contact-mail {
margin-top: 28px;
font-size: 16px;
}
.section-contact .contact-actions .btn-primary {
background: var(--on-invert);
color: var(--invert-bg);
}
.section-contact .contact-actions .btn-primary:hover {
background: var(--on-invert-2);
}
.section-contact .btn {
text-decoration: none;
}
.js .contact-nojs {
display: none;
}
.contact-form {
display: grid;
gap: 18px;
}
.field {
display: grid;
gap: 7px;
}
.field label {
font-size: 14.5px;
font-weight: 550;
}
.hint {
font-weight: 400;
color: var(--ink-3);
}
.field input,
.field select,
.field textarea {
width: 100%;
font: inherit;
font-size: 16px;
color: var(--ink);
background: var(--input-bg);
border: 1px solid var(--line-strong);
border-radius: 10px;
padding: 11px 13px;
transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.field textarea {
resize: vertical;
min-height: 110px;
}
.field input:focus,
.field select:focus,
.field textarea:focus {
outline: none;
border-color: var(--accent);
box-shadow: 0 0 0 3px var(--accent-glow);
}
.field input:user-invalid,
.field textarea:user-invalid {
border-color: var(--danger);
}
.hp {
position: absolute;
left: -9999px;
width: 1px;
height: 1px;
overflow: hidden;
}
.form-note {
font-size: 13.5px;
color: var(--ink-3);
}
.form-result h3 {
font-size: 20px;
margin-bottom: 10px;
}
.form-result p {
color: var(--ink-2);
}
.form-result .btn {
margin-top: 18px;
}
.form-result-error h3 {
color: var(--danger-ink);
}
.modal {
width: min(560px, calc(100% - 32px));
max-height: calc(100dvh - 48px);
padding: 0;
border: 0;
background: transparent;
color: var(--ink);
overflow: visible;
}
.modal::backdrop {
background: var(--backdrop);
backdrop-filter: blur(6px);
}
.modal-card {
position: relative;
max-height: calc(100dvh - 48px);
overflow-y: auto;
border: 1px solid var(--glass-line);
border-radius: var(--radius-lg);
background: var(--glass-bg);
backdrop-filter: saturate(180%) blur(20px);
box-shadow: var(--shadow-lg);
}
@supports not (backdrop-filter: blur(1px)) {
.modal-card {
background: var(--surface);
border-color: var(--line);
}
.modal-head {
background: var(--surface);
}
}
.modal-head {
position: sticky;
top: 0;
z-index: 1;
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
padding: 28px 28px 14px;
background: var(--glass-head);
backdrop-filter: saturate(180%) blur(20px);
}
.modal-body {
padding: 0 28px 28px;
}
.modal-title {
font-size: 24px;
font-weight: 650;
letter-spacing: -0.02em;
line-height: 1.2;
}
.modal-close {
display: inline-flex;
align-items: center;
justify-content: center;
flex: none;
width: 36px;
height: 36px;
margin: -6px -6px 0 0;
padding: 0;
border: 1px solid transparent;
border-radius: 10px;
background: transparent;
color: var(--ink-2);
cursor: pointer;
transition: background-color 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}
.modal-close:hover {
background: var(--bg-soft);
border-color: var(--line);
color: var(--ink);
}
.modal-close svg {
width: 18px;
height: 18px;
}
.modal[open] {
animation: modal-in 0.22s ease-out;
}
.modal[open]::backdrop {
animation: modal-veil 0.22s ease-out;
}
@keyframes modal-in {
from {
opacity: 0;
transform: translateY(12px) scale(0.98);
}
to {
opacity: 1;
transform: none;
}
}
@keyframes modal-veil {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.site-footer {
background: var(--footer-bg);
color: var(--on-invert-2);
padding: 64px 0 28px;
--brand-core: var(--footer-bg);
}
.site-footer .brand {
color: var(--on-invert);
}
.foot-top {
display: grid;
grid-template-columns: 1.1fr 2fr;
gap: 48px;
padding-bottom: 40px;
border-bottom: 1px solid var(--invert-line);
}
.foot-tagline {
margin-top: 16px;
font-size: 15px;
max-width: 26em;
}
.foot-cols {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
}
.foot-col-title {
color: var(--on-invert);
font-size: 14px;
font-weight: 600;
margin-bottom: 14px;
}
.foot-col ul {
display: grid;
gap: 10px;
font-size: 15px;
}
.foot-col a {
color: var(--on-invert-2);
}
.foot-col a:hover {
color: var(--on-invert);
}
.foot-bottom {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 12px;
padding-top: 24px;
font-size: 14px;
}
.foot-bottom a {
color: var(--on-invert-2);
}
.foot-bottom a:hover {
color: var(--on-invert);
}
.legal {
padding-top: 72px;
}
.legal-updated {
margin-top: 12px;
color: var(--ink-3);
font-size: 15px;
}
.legal-block {
margin-top: 36px;
}
.legal-block h2 {
font-size: 21px;
margin-bottom: 10px;
}
.legal-block p {
color: var(--ink-2);
}
.legal-back {
margin-top: 48px;
padding-top: 24px;
border-top: 1px solid var(--line);
}
@media (max-width: 1024px) {
.hero-inner {
grid-template-columns: 1fr;
gap: 44px;
}
.hero-panel {
max-width: 520px;
}
.grid-3,
.steps {
grid-template-columns: repeat(2, 1fr);
}
.foot-top {
grid-template-columns: 1fr;
gap: 36px;
}
}
@media (max-width: 860px) {
.nav-toggle {
display: flex;
}
.site-nav {
position: absolute;
left: 0;
right: 0;
top: 100%;
display: none;
flex-direction: column;
align-items: stretch;
gap: 0;
background: var(--bg);
border-bottom: 1px solid var(--line);
box-shadow: var(--shadow-md);
padding: 12px var(--pad) 20px;
}
.site-nav.is-open {
display: flex;
}
.nav-links {
flex-direction: column;
align-items: stretch;
gap: 0;
}
.nav-links a {
display: block;
padding: 14px 0;
border-bottom: 1px solid var(--line);
font-size: 17px;
}
.nav-actions {
margin-top: 18px;
justify-content: space-between;
}
.section {
padding: 72px 0;
}
.stats {
grid-template-columns: repeat(2, 1fr);
}
.stat {
padding: 24px 20px;
}
.stat:nth-child(odd) {
border-left: none;
padding-left: 0;
}
.stat:nth-child(n + 3) {
border-top: 1px solid var(--line);
}
}
@media (max-width: 560px) {
body {
font-size: 16.5px;
}
.hero {
padding-top: 48px;
}
.hero-inner {
padding-bottom: 52px;
}
.grid-3,
.steps,
.stats {
grid-template-columns: 1fr;
}
.stat {
border-left: none;
padding: 20px 0;
}
.stat:nth-child(n + 2) {
border-top: 1px solid var(--line);
}
.card {
padding: 22px;
}
.modal-head {
padding: 22px 22px 12px;
}
.modal-body {
padding: 0 22px 22px;
}
.hero-actions .btn {
width: 100%;
}
.panel-metrics {
grid-template-columns: 1fr;
}
.faq-a {
padding-right: 0;
}
}
@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
.card:hover {
transform: none;
}
.btn:hover {
transform: none;
}
.bg span,
.bg span::before,
.flow-pulse,
.hero-panel,
.hero-panel-wrap {
animation: none !important;
}
.modal[open],
.modal[open]::backdrop {
animation: none !important;
}
.flow-pulse {
opacity: 0;
}
[data-fx~='headline'] .hero-title span,
[data-fx~='headline'] .hero-copy .lead,
[data-fx~='headline'] .hero-actions,
[data-fx~='headline'] .hero-note {
opacity: 1;
animation: none !important;
}
}
@media print {
.site-header,
.site-footer,
.skip,
.section-contact {
display: none;
}
body {
font-size: 12pt;
}
}
