:root {
    --primary: #2541B2;
    --secondary: #06BEE1;
    --bg-color: #FFFFFF;
    --bg-color-alt: #f0f8ff;
    --text-main: #03256C;
    --text-muted: #1768AC;
    --line-light: rgba(3, 37, 108, 0.08);
    --line-strong: rgba(3, 37, 108, 0.16);
    --grid-color: rgba(3, 37, 108, 0.06);
    --mono: 'JetBrains Mono', 'Courier New', monospace;
    --maxw: 1180px;
}
html.lenis { scroll-behavior: auto; }
.lenis-smooth { scroll-behavior: auto; }
.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
body {
    font-family: 'Space Grotesk', sans-serif;
    background-color: var(--bg-color);
    color: var(--text-main);
    overflow-x: hidden;
}
*:focus-visible { outline: 3px solid var(--secondary); outline-offset: 2px; }
.bg-grid {
    position: fixed; top: -50%; left: -50%;
    width: 200%; height: 200%;
    background-size: 50px 50px;
    background-image:
      linear-gradient(to right, var(--grid-color) 1px, transparent 1px),
      linear-gradient(to bottom, var(--grid-color) 1px, transparent 1px);
    z-index: -1;
    animation: panGrid 20s linear infinite;
}
@keyframes panGrid {
    0% { transform: translate(0, 0); }
    100% { transform: translate(50px, 50px); }
}
.font-hero { font-family: 'Anton', sans-serif; letter-spacing: 0.05em; }
.brutal-border { border: 2px solid var(--text-main); }
.brutal-card {
    background-color: var(--bg-color);
    border: 2px solid var(--text-main);
    box-shadow: 8px 8px 0px var(--line-strong);
    transition: all 0.3s ease;
}
.brutal-card:hover { transform: translate(-4px, -4px); box-shadow: 12px 12px 0px var(--primary); }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--bg-color); border-left: 2px solid var(--text-main); }
::-webkit-scrollbar-thumb { background: var(--text-main); }

.cursor-dot, .cursor-ring { position: fixed; pointer-events: none; z-index: 9999; transform: translate(-50%, -50%); border-radius: 50%; will-change: transform, width, height; }
.cursor-dot { width: 8px; height: 8px; background: var(--primary); }
.cursor-ring { width: 36px; height: 36px; border: 1.5px solid var(--primary); opacity: 0.35; transition: width .3s, height .3s, background .3s, border-color .3s; }
.cursor-ring.is-active { width: 56px; height: 56px; opacity: 0.15; background: var(--secondary); border-color: var(--secondary); }
@media (hover: none), (pointer: coarse) { .cursor-dot, .cursor-ring { display: none !important; } }

.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 50; padding: 22px 32px; pointer-events: none; }
.nav-inner {
    pointer-events: auto;
    max-width: var(--maxw); margin: 0 auto;
    display: flex; align-items: center; justify-content: space-between;
    background: rgba(255, 255, 255, 0.75); backdrop-filter: blur(10px);
    border: 1.5px solid var(--text-main); border-radius: 999px; padding: 10px 10px 10px 22px;
}
.logo {
    font-family: var(--mono); font-weight: 700; font-size: 15px; letter-spacing: .06em;
    display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--text-main);
}
.logo .pulse {
    width: 9px; height: 9px; border-radius: 50%; background: var(--secondary);
    animation: pulse 2.4s infinite;
}
@keyframes pulse {
    0% { box-shadow: 0 0 0 0 rgba(6, 190, 225, 0.55); }
    70% { box-shadow: 0 0 0 8px rgba(6, 190, 225, 0); }
    100% { box-shadow: 0 0 0 0 rgba(6, 190, 225, 0); }
}
.nav-links { display: flex; align-items: center; gap: 28px; font-size: 14px; font-weight: 500; }
.nav-links a { position: relative; padding: 4px 2px; text-decoration: none; color: var(--text-main); }
.nav-links a::after { content: ''; position: absolute; left: 0; bottom: -3px; width: 0; height: 2px; background: var(--primary); transition: width .25s ease; }
.nav-links a:hover::after { width: 100%; }
.nav-cta { padding: 11px 22px; font-size: 13px; box-shadow: 4px 4px 0 var(--primary); background: var(--bg-color); color: var(--text-main); border: 1.5px solid var(--text-main); }
.nav-toggle { display: none; background: none; border: none; cursor: pointer; padding: 8px; }
.nav-toggle span { display: block; width: 22px; height: 2px; background: var(--text-main); margin: 4px 0; transition: .25s; }
.nav-mobile { display: none; pointer-events: auto; }
@media (max-width: 860px) {
    .nav-links { display: none; }
    .nav-toggle { display: block; }
    .nav-cta { display: none; }
    .nav.open .nav-mobile { display: flex; }
    .nav-mobile {
        flex-direction: column; gap: 4px; margin-top: 10px; background: var(--bg-color);
        border: 1.5px solid var(--text-main); border-radius: 18px; padding: 14px; font-size: 15px;
        max-width: var(--maxw); margin-left: auto; margin-right: auto;
    }
    .nav-mobile a { padding: 10px 8px; border-bottom: 1px solid var(--line-light); text-decoration: none; color: var(--text-main); }
    .nav-mobile a:last-child { border-bottom: none; }
}
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 32px; }
.hero { padding-top: 170px; padding-bottom: 80px; position: relative; z-index: 10; }
.hero-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 48px; align-items: center; }
.eyebrow {
    font-family: var(--mono); font-size: 13px; letter-spacing: .12em; text-transform: uppercase;
    color: var(--text-muted); display: flex; align-items: center; gap: 10px; margin-bottom: 18px;
}
.eyebrow::before { content: ''; display: inline-block; width: 8px; height: 8px; background: var(--primary); border: 1px solid var(--text-main); transform: rotate(45deg); }
.hero-copy h1 { font-size: clamp(46px, 7.2vw, 92px); font-weight: 700; line-height: 1.05; letter-spacing: -0.01em; }
.hero-block { background: var(--text-main); color: var(--bg-color); display: inline-block; padding: 20px 26px 26px; border-radius: 18px; box-shadow: 10px 10px 0 var(--primary); transform-style: preserve-3d; will-change: transform; }
.hero-block .line2 { color: var(--bg-color); }
.cycle-wrap { display: inline-block; position: relative; }
.cycle { color: var(--bg-color); background: var(--secondary); padding: 0 .15em; border-radius: 6px; display: inline-block; transition: opacity .25s ease, transform .25s ease; min-width: 3.5em; text-align: center; }
.cycle.swap { opacity: 0; transform: translateY(8px); }
.hero-copy p.lead { margin-top: 26px; font-size: 18px; color: var(--text-muted); max-width: 480px; line-height: 1.5; }
.hero-actions { display: flex; gap: 16px; margin-top: 34px; flex-wrap: wrap; }
.btn {
    font-family: var(--mono); font-size: 14px; letter-spacing: .04em;
    display: inline-flex; align-items: center; gap: 10px;
    padding: 15px 26px; border-radius: 999px; border: 1.5px solid var(--text-main);
    cursor: pointer; transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
    white-space: nowrap; text-decoration: none; position: relative; overflow: hidden;
}
.btn-fill { background: var(--text-main); color: var(--bg-color); box-shadow: 6px 6px 0 var(--primary); }
.btn-fill:hover { transform: translate(-3px,-3px); box-shadow: 9px 9px 0 var(--primary); }
.btn-outline { background: transparent; box-shadow: 6px 6px 0 var(--line-strong); color: var(--text-main); }
.btn-outline:hover { transform: translate(-3px,-3px); background: var(--text-main); color: var(--bg-color); box-shadow: 9px 9px 0 var(--line-strong); }
.btn svg { width: 16px; height: 16px; transition: transform .25s ease; position: relative; z-index: 2; }
.btn:hover svg { transform: translate(2px,-2px); }
.btn .btn-bg { position: absolute; inset: 0; border-radius: 999px; background: var(--primary); transform: scaleX(0); transform-origin: right; transition: transform .35s cubic-bezier(.4,0,.2,1); }
.btn-outline .btn-bg { background: var(--primary); }
.btn-outline:hover .btn-bg { transform: scaleX(1); transform-origin: left; }
.btn:hover .btn-label { color: var(--bg-color); }
.btn-label { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 10px; }

.hero-visual { position: relative; height: 520px; perspective: 1200px; }
.hero-visual::before {
    content: ''; position: absolute; inset: 0;
    background: radial-gradient(circle 500px at 50% 40%, rgba(6,190,225,0.06), transparent 70%);
    pointer-events: none; z-index: 1;
}
.blob-wrap { position: absolute; inset: 0; overflow: hidden; z-index: 0; }
.blob {
    position: absolute; inset: 6% 10%; border-radius: 42% 58% 65% 35% / 45% 45% 55% 55%;
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    animation: morph 9s ease-in-out infinite, drift 11s ease-in-out infinite; opacity: .7; filter: blur(1px);
}
@keyframes morph {
    0%, 100% { border-radius: 42% 58% 65% 35% / 45% 45% 55% 55%; }
    33% { border-radius: 62% 38% 40% 60% / 60% 35% 65% 40%; }
    66% { border-radius: 35% 65% 55% 45% / 40% 65% 35% 60%; }
}
@keyframes drift { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-18px) rotate(4deg); } }
.float-shape {
    position: absolute; border-radius: 50%; z-index: 1;
    animation: floatShape 8s ease-in-out infinite;
    will-change: transform; pointer-events: none;
}
.float-shape:nth-child(1) { width: 50px; height: 50px; border: 2px solid rgba(6,190,225,0.25); top: 12%; left: 5%; animation-delay: 0s; animation-duration: 9s; }
.float-shape:nth-child(2) { width: 30px; height: 30px; background: rgba(37,65,178,0.15); border: 2px solid rgba(37,65,178,0.3); top: 60%; left: 8%; animation-delay: 1.5s; animation-duration: 7s; border-radius: 8px; }
.float-shape:nth-child(3) { width: 20px; height: 20px; background: rgba(6,190,225,0.2); top: 25%; right: 15%; animation-delay: 3s; animation-duration: 10s; }
.float-shape:nth-child(4) { width: 40px; height: 40px; border: 2px solid rgba(6,190,225,0.2); top: 70%; right: 8%; animation-delay: 4s; animation-duration: 8s; border-radius: 8px; transform: rotate(45deg); }
.float-shape:nth-child(5) { width: 12px; height: 12px; background: var(--primary); top: 45%; left: 22%; animation-delay: 2s; animation-duration: 6s; opacity: 0.4; }
@keyframes floatShape {
    0%, 100% { transform: translateY(0) translateX(0); }
    25% { transform: translateY(-18px) translateX(8px); }
    50% { transform: translateY(8px) translateX(-8px); }
    75% { transform: translateY(-8px) translateX(12px); }
}
.terminal {
    position: absolute; width: 320px; z-index: 2;
    background: #0a0f1e; border: 1.5px solid var(--text-main); border-radius: 12px;
    box-shadow: 10px 10px 0 rgba(3,37,108,0.15);
    transform-style: preserve-3d; perspective: 800px;
    pointer-events: none;
}
.terminal-1 { top: 2%; left: -2%; animation: floatTerminal 7s ease-in-out infinite; }
.terminal-2 { bottom: 2%; right: -2%; width: 280px; animation: floatTerminal2 8s ease-in-out infinite; }
@keyframes floatTerminal {
    0%, 100% { transform: translateY(0) rotate(-2deg); }
    50% { transform: translateY(-12px) rotate(0deg); }
}
@keyframes floatTerminal2 {
    0%, 100% { transform: translateY(0) rotate(3deg); }
    50% { transform: translateY(12px) rotate(5deg); }
}
.terminal-head {
    display: flex; align-items: center; gap: 8px; padding: 12px 14px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.terminal-dot { width: 9px; height: 9px; border-radius: 50%; }
.terminal-dot:nth-child(1) { background: #FF5F57; }
.terminal-dot:nth-child(2) { background: #FEBC2E; }
.terminal-dot:nth-child(3) { background: #28C840; }
.terminal-title { font-family: var(--mono); font-size: 11px; color: rgba(255,255,255,0.3); margin-left: 8px; }
.terminal-body { padding: 16px; font-family: var(--mono); font-size: 11.5px; line-height: 1.7; color: rgba(255,255,255,0.6); }
.terminal-body .green { color: #28C840; }
.terminal-body .cyan { color: var(--secondary); }
.terminal-body .yellow { color: #FEBC2E; }
.terminal-body .dim { color: rgba(255,255,255,0.25); }
.terminal-body .cursor-blink::after { content: '\258C'; animation: blink 1s step-end infinite; color: var(--secondary); margin-left: 2px; }
.term-line { opacity: 0; }
@media (max-width: 980px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-visual { height: 400px; margin-top: 40px; }
    .terminal { width: 240px; }
    .terminal-2 { width: 200px; }
}
.horizontal-section { background-color: var(--text-main); color: var(--bg-color); --mouse-x: 50vw; --mouse-y: 50vh; height: 100vh; }
.horizontal-section::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(to right, rgba(255,255,255,0.07) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,0.07) 1px, transparent 1px); background-size: 50px 50px; z-index: 0; pointer-events: none; }
.horizontal-section::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle 600px at var(--mouse-x) var(--mouse-y), rgba(6, 190, 225, 0.15), transparent 80%); z-index: 0; pointer-events: none; }
.horizontal-scroll-wrapper { width: max-content; display: flex; height: 100%; position: relative; z-index: 10; padding-right: 15vw; }
@media (max-width: 768px) {
    .horizontal-section { height: auto; padding: 100px 0; }
    .horizontal-scroll-wrapper { width: 100%; display: flex; flex-direction: column; padding-right: 0; gap: 80px; }
    .horizontal-slide-content { width: 100%; padding: 0 24px; }
}
@media (min-width: 769px) {
    .horizontal-slide-content { width: 100vw; max-width: var(--maxw); height: 100%; padding: 140px 80px 60px; display: flex; flex-direction: column; justify-content: center; flex-shrink: 0; }
}
.reveal-text { opacity: 0; transform: translateY(40px); }
.reveal-text.visible { opacity: 1; transform: translateY(0); }

.card-tilt { transform-style: preserve-3d; perspective: 1200px; }
.card-tilt-inner { transition: transform .4s cubic-bezier(.23,1,.32,1); will-change: transform; }
.card-tilt:hover .card-tilt-inner { transform: rotateX(3deg) rotateY(-3deg); }

.noise-overlay { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9998; opacity: 0.025; }
@media (hover: none), (pointer: coarse) { .noise-overlay { display: none; } }

.marquee-wrap { overflow: hidden; padding: 16px 0; background: var(--text-main); border-top: 2px solid var(--text-main); border-bottom: 4px solid var(--text-main); position: relative; z-index: 10; }
.marquee-track { display: flex; gap: 0; width: max-content; animation: marqueeScroll 45s linear infinite; will-change: transform; }
.marquee-track:hover { animation-play-state: paused; }
.marquee-item { display: flex; gap: 48px; align-items: center; white-space: nowrap; padding-right: 48px; font-family: var(--mono); font-size: 12px; font-weight: 600; color: var(--bg-color); text-transform: uppercase; letter-spacing: 0.12em; opacity: 0.6; }
.marquee-item strong { color: var(--secondary); opacity: 1; }
.marquee-item .dot { opacity: 0.2; }
@keyframes marqueeScroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

.stat-number { font-family: 'Anton', sans-serif; font-size: 3.2rem; line-height: 1; color: var(--primary); display: block; }
.stat-label { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); font-weight: 500; margin-top: 6px; display: block; }
.stat-item { text-align: center; padding: 20px 12px; }
.stat-item .divider { width: 1px; height: 50px; background: var(--line-strong); margin: 0 auto; }

.exp-item { opacity: 0; transform: translateY(30px); }
