/* ═══════════════════════════════════════════════
   VALUE STREAM — Design System
   Brand: Deep navy + electric blue + teal
═══════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600&family=Syne:wght@400;600;700;800&family=JetBrains+Mono:wght@300;400&display=swap');

:root {
  --navy:      #060d1a;
  --navy-2:    #0a1628;
  --navy-3:    #0f2040;
  --blue:      #1a6bff;
  --blue-mid:  #0ea5e9;
  --teal:      #06c8c8;
  --teal-dim:  rgba(6,200,200,0.12);
  --teal-line: rgba(6,200,200,0.25);
  --white:     #f0f6ff;
  --white-dim: rgba(240,246,255,0.55);
  --white-faint:rgba(240,246,255,0.12);
  --grad-main: linear-gradient(135deg, #1a6bff 0%, #06c8c8 100%);
  --grad-text: linear-gradient(135deg, #4d9fff 0%, #06c8c8 100%);
  --font-head: 'Syne', sans-serif;
  --font-body: 'Space Grotesk', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; font-size: 16px; }

body {
  background: var(--navy);
  color: var(--white);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;
  overflow-x: hidden;
}

/* ── Noise grain overlay ── */
body::before {
  content:'';
  position:fixed; inset:0; z-index:999; pointer-events:none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  opacity:0.6;
}

/* ── Typography ── */
h1,h2,h3,h4 { font-family: var(--font-head); line-height:1.15; }
h1 { font-size: clamp(2.4rem, 5vw, 4rem); font-weight:800; }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); font-weight:700; }
h3 { font-size: clamp(1.2rem, 2vw, 1.6rem); font-weight:600; }
h4 { font-size: 1rem; font-weight:600; }
p  { color: var(--white-dim); font-size:1.05rem; }

.grad-text {
  background: var(--grad-text);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.mono { font-family: var(--font-mono); font-size:0.8rem; letter-spacing:0.08em; }

/* ── Layout ── */
.container { max-width:1120px; margin:0 auto; padding:0 32px; }
.section   { padding: 96px 0; }
.section-sm{ padding: 64px 0; }

/* ── Nav ── */
nav {
  position: fixed; top:0; left:0; right:0; z-index:100;
  padding: 20px 0;
  background: rgba(6,13,26,0.8);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--white-faint);
  transition: all 0.3s ease;
}

.nav-inner {
  display:flex; align-items:center; justify-content:space-between;
}

.nav-logo {
  display:flex; align-items:center; gap:12px; text-decoration:none;
}
.nav-logo img { height:36px; width:auto; }
.nav-logo-text {
  font-family: var(--font-head);
  font-weight:700; font-size:1.1rem;
  color: var(--white);
  letter-spacing:0.02em;
}

.nav-links {
  display:flex; align-items:center; gap:36px; list-style:none;
}
.nav-links a {
  color: var(--white-dim); text-decoration:none;
  font-size:0.9rem; font-weight:500;
  transition: color 0.2s;
  letter-spacing:0.02em;
}
.nav-links a:hover { color: var(--teal); }
.nav-links a.active { color: var(--white); }

.nav-cta {
  background: var(--grad-main);
  color: var(--navy) !important;
  padding: 9px 22px; border-radius: 6px;
  font-weight:600 !important;
  transition: opacity 0.2s !important;
}
.nav-cta:hover { opacity:0.85; color: var(--navy) !important; }

.nav-hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; }
.nav-hamburger span {
  display:block; width:24px; height:2px;
  background: var(--white); border-radius:2px;
  transition: all 0.3s;
}

/* ── Hero ── */
.hero {
  min-height:100vh; display:flex; align-items:center;
  padding-top:80px; position:relative; overflow:hidden;
}

.hero-bg {
  position:absolute; inset:0; z-index:0;
  background: radial-gradient(ellipse 80% 60% at 60% 40%, rgba(26,107,255,0.12) 0%, transparent 70%),
              radial-gradient(ellipse 50% 50% at 80% 80%, rgba(6,200,200,0.08) 0%, transparent 60%);
}

.hero-content { position:relative; z-index:1; max-width:680px; }
.hero-eyebrow {
  font-family: var(--font-mono);
  font-size:0.75rem; letter-spacing:0.2em; text-transform:uppercase;
  color: var(--teal); margin-bottom:24px;
  display:flex; align-items:center; gap:12px;
}
.hero-eyebrow::before {
  content:''; display:block; width:32px; height:1px; background:var(--teal);
}

.hero h1 { margin-bottom:24px; }
.hero p  { font-size:1.15rem; margin-bottom:40px; max-width:520px; }

.hero-actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }

/* ── Buttons ── */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  font-family: var(--font-body); font-weight:600;
  padding: 14px 28px; border-radius:8px;
  text-decoration:none; border:none; cursor:pointer;
  font-size:0.95rem; transition: all 0.2s;
  letter-spacing:0.01em;
}
.btn-primary {
  background: var(--grad-main); color: var(--navy);
}
.btn-primary:hover { opacity:0.88; transform:translateY(-1px); }

.btn-ghost {
  background: transparent;
  color: var(--white-dim);
  border: 1px solid var(--white-faint);
}
.btn-ghost:hover {
  border-color: var(--teal-line);
  color: var(--teal);
}

.btn-outline {
  background: transparent;
  color: var(--teal);
  border: 1px solid var(--teal-line);
}
.btn-outline:hover { background: var(--teal-dim); }

/* ── Cards ── */
.card {
  background: var(--navy-2);
  border: 1px solid var(--white-faint);
  border-radius:12px;
  padding:32px;
  transition: border-color 0.3s, transform 0.3s;
}
.card:hover {
  border-color: var(--teal-line);
  transform: translateY(-3px);
}

.card-icon {
  width:48px; height:48px; border-radius:10px;
  background: var(--teal-dim);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:20px;
}

/* ── Grid ── */
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }

/* ── Section header ── */
.section-header { margin-bottom:64px; }
.section-header .eyebrow {
  font-family: var(--font-mono);
  font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase;
  color: var(--teal); margin-bottom:16px;
}
.section-header h2 { margin-bottom:16px; }
.section-header p  { max-width:560px; }

/* ── Divider ── */
.divider {
  height:1px;
  background: linear-gradient(90deg, transparent, var(--teal-line), transparent);
}

/* ── Tag / pill ── */
.tag {
  display:inline-block;
  font-family: var(--font-mono); font-size:0.7rem;
  letter-spacing:0.1em; text-transform:uppercase;
  padding: 5px 12px; border-radius:4px;
  background: var(--teal-dim);
  color: var(--teal);
  border: 1px solid var(--teal-line);
}

/* ── Footer ── */
footer {
  border-top: 1px solid var(--white-faint);
  padding: 48px 0 36px;
}
.footer-inner {
  display:flex; justify-content:space-between; align-items:flex-start;
  gap:40px; flex-wrap:wrap;
}
.footer-brand .nav-logo-text { font-size:1.2rem; margin-bottom:10px; }
.footer-brand p { font-size:0.88rem; max-width:280px; }
.footer-links { display:flex; gap:48px; flex-wrap:wrap; }
.footer-col h5 {
  font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase;
  color: var(--white); margin-bottom:16px; font-family:var(--font-mono);
}
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-col a {
  color: var(--white-dim); text-decoration:none; font-size:0.9rem;
  transition: color 0.2s;
}
.footer-col a:hover { color: var(--teal); }
.footer-bottom {
  margin-top:40px; padding-top:24px;
  border-top: 1px solid var(--white-faint);
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:12px;
}
.footer-bottom p { font-size:0.82rem; color: var(--white-dim); }

/* ── Animations ── */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(28px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes fadeIn {
  from { opacity:0; } to { opacity:1; }
}
@keyframes floatY {
  0%,100% { transform:translateY(0); }
  50%      { transform:translateY(-12px); }
}
@keyframes rotateSlow {
  from { transform:rotate(0deg); }
  to   { transform:rotate(360deg); }
}
@keyframes pulse {
  0%,100% { opacity:0.4; transform:scale(1); }
  50%      { opacity:0.8; transform:scale(1.06); }
}
@keyframes dash {
  to { stroke-dashoffset: 0; }
}

.anim-fade-up   { animation: fadeUp 0.7s ease both; }
.anim-fade-in   { animation: fadeIn 0.7s ease both; }
.delay-1 { animation-delay:0.1s; }
.delay-2 { animation-delay:0.2s; }
.delay-3 { animation-delay:0.3s; }
.delay-4 { animation-delay:0.4s; }
.delay-5 { animation-delay:0.5s; }

/* ── Scroll reveal ── */
.reveal {
  opacity:0; transform:translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── Responsive ── */
@media (max-width:768px) {
  .container { padding:0 20px; }
  .section    { padding:64px 0; }
  .grid-2,.grid-3,.grid-4 { grid-template-columns:1fr; }
  .nav-links { display:none; flex-direction:column; gap:0;
    position:fixed; top:72px; left:0; right:0;
    background:var(--navy-2); border-bottom:1px solid var(--white-faint);
    padding:20px 0;
  }
  .nav-links.open { display:flex; }
  .nav-links li { padding:0 28px; }
  .nav-links a  { display:block; padding:12px 0; border-bottom:1px solid var(--white-faint); }
  .nav-hamburger { display:flex; }
  .hero-actions { flex-direction:column; align-items:flex-start; }
  .footer-inner { flex-direction:column; }
  .footer-bottom { flex-direction:column; text-align:center; }
}
