:root {
  --ink: #323234;
  --muted: #65656e;
  --purple: #6659df;
  --violet: #7266ee;
  --lavender: #bcb4ff;
  --paper: #f7f7f5;
  --white: #fff;
  --line: #dcdce1;
  --max: 1240px;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
h1, h2, h3, p { margin-top: 0; }
p { line-height: 1.65; }
:focus-visible { outline: 2px solid var(--violet); outline-offset: 5px; }
[id] { scroll-margin-top: 100px; }
.shell { width: min(100%, var(--max)); margin-inline: auto; padding-inline: 32px; }
.section { padding-block: 88px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 200; top: -100px; left: 16px; padding: 12px 20px; background: var(--lavender); }
.skip-link:focus-visible { top: 12px; }
.eyebrow { font-size: .8125rem; color: var(--purple); letter-spacing: .105em; text-transform: uppercase; font-weight: 750; margin-bottom: 20px; }
h2 { font-size: clamp(2rem, 3.6vw, 3.1rem); font-weight: 630; line-height: 1.08; letter-spacing: -.045em; }
h3 { font-size: clamp(1.5rem, 2.7vw, 2.1rem); font-weight: 640; line-height: 1.15; letter-spacing: -.035em; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 50px; padding: 13px 22px; border-radius: 99px; font-size: .9375rem; line-height: 1.4; font-weight: 650; transition: background .2s; }
.button-primary { color: white; background: var(--ink); }
.button-primary:hover { background: var(--purple); }
.text-link { display: inline-flex; align-items: center; gap: 12px; padding-block: 8px; font-size: .9375rem; font-weight: 650; border-bottom: 1px solid #b5b5be; }
.text-link:hover { color: var(--purple); }
.site-header { position: fixed; z-index: 100; inset: 0 0 auto; height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-inline: clamp(20px, 4vw, 64px); background: rgba(247,247,245,.96); backdrop-filter: blur(16px); border-bottom: 1px solid transparent; }
.site-header.scrolled { border-color: var(--line); }
.brand { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; }
.hubu-wordmark { display: inline-block; width: 70px; height: 30px; background: url("./assets/hubu-logo.png") center/70px 70px no-repeat; }
.brand-vertical { padding-left: 10px; border-left: 1px solid #cfcfd4; color: var(--purple); font-size: .75rem; font-weight: 800; letter-spacing: .16em; }
.desktop-nav { display: flex; gap: 32px; margin-left: auto; margin-right: auto; }
.desktop-nav a, .header-cta { font-size: .875rem; white-space: nowrap; }
.desktop-nav a:hover { color: var(--purple); }
.header-cta { padding: 10px 16px; border: 1px solid #c6c6ce; border-radius: 99px; font-weight: 650; }
.header-cta span { margin-left: 10px; }
.menu-button, .mobile-nav { display: none; }
.hero { display: grid; grid-template-columns: minmax(0,1.06fr) minmax(0,1fr); align-items: center; gap: clamp(32px, 4.7vw, 68px); padding-top: 140px; padding-bottom: 72px; }
.hero h1 { font-size: clamp(2.75rem, 4.2vw, 3.65rem); font-weight: 640; letter-spacing: -.045em; line-height: 1.04; margin-bottom: 26px; }
.hero h1 span { color: var(--purple); }
.hero-lede { color: var(--ink); font-size: 1.125rem; margin-bottom: 14px; }
.hero-support { color: var(--muted); font-size: 1rem; margin-bottom: 0; }
.hero-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 28px; }
.platform-map { padding: 24px; color: white; background: var(--ink); border-radius: 8px; box-shadow: 0 20px 48px #32323412; }
.map-caption { display: flex; justify-content: space-between; gap: 12px; font-size: .75rem; font-weight: 650; letter-spacing: .08em; color: #bebec7; padding-bottom: 22px; }
.map-layers { list-style: none; padding: 0; margin: 0; }
.map-layers li { border: 1px solid #ffffff24; background: #ffffff05; border-radius: 5px; position: relative; }
.map-layers li + li { margin-top: 18px; }
.map-layers li + li::before { content: ""; position: absolute; width: 1px; height: 18px; background: #ffffff45; top: -19px; left: 30px; }
.map-layers a { display: grid; grid-template-columns: 24px 1fr 12px; gap: 12px; padding: 17px 16px; align-items: start; }
.layer-number { color: var(--lavender); font-size: .8125rem; padding-top: 3px; }
.map-layers strong { font-size: 1.0625rem; line-height: 1.3; display: block; }
.map-layers p { margin: 6px 0 0; color: #c4c4ce; font-size: .875rem; line-height: 1.5; }
.map-link { color: #c4c4ce; font-size: .875rem; }
.map-layers li:hover { border-color: var(--lavender); }
.map-layers .map-intelligence { border-color: #aaa0f67a; background: #aaa0f615; }
.map-outcome { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid #ffffff24; color: #c4c4ce; font-size: .875rem; }
.map-outcome strong { color: white; font-weight: 550; }
.section-label { display: flex; gap: 14px; align-items: center; padding-bottom: 16px; margin-bottom: 38px; border-bottom: 1px solid var(--line); font-size: .8125rem; letter-spacing: .09em; text-transform: uppercase; font-weight: 650; color: var(--muted); }
.section-label > span:first-child { color: var(--purple); }
.section-intro { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); align-items: end; gap: 64px; margin-bottom: 38px; }
.section-intro h2 { margin-bottom: 0; }
.section-intro > p { margin: 0; color: var(--muted); font-size: 1rem; }
.capability-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.capability { display: flex; flex-direction: column; min-width: 0; padding: clamp(24px,3vw,40px); background: white; border: 1px solid var(--line); border-radius: 8px; }
.capability-label { display: flex; align-items: baseline; gap: 14px; color: var(--purple); font-size: .875rem; font-weight: 700; margin-bottom: 24px; }
.capability-label > span { font-size: .8125rem; font-weight: 500; }
.capability h3 { margin-bottom: 16px; }
.capability > p:not(.capability-label) { font-size: 1rem; color: var(--muted); }
.capability .capability-purpose { border-top: 1px solid var(--line); margin: 24px 0 0; padding-top: 16px; font-size: .875rem; }
.data-visual { margin: auto 0 0; padding-top: 24px; }
.source-chips { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.source-chips span { padding: 12px 8px; background: var(--paper); border: 1px solid var(--line); border-radius: 4px; font-size: .875rem; text-align: center; }
.data-connector { text-align: center; color: var(--purple); padding: 8px; }
.data-destination { padding: 18px; border: 1px solid #d8d3f9; background: #f5f3ff; border-radius: 4px; text-align: center; }
.data-destination strong, .data-destination span { display: block; font-size: .875rem; }
.data-destination span { margin-top: 8px; color: var(--muted); font-size: .8125rem; line-height: 1.6; }
.intelligence-card { background: var(--ink); color: white; border-color: var(--ink); }
.intelligence-card .capability-label { color: var(--lavender); }
.intelligence-card > p:not(.capability-label) { color: #d0d0d6; }
.intelligence-card > p strong { color: white; font-weight: 600; }
.relation-model { display: grid; grid-template-columns: .65fr 1.35fr; gap: 36px; align-items: center; margin: 18px 0 26px; }
.relation-client { position: relative; padding: 14px 10px; background: var(--lavender); color: var(--ink); text-align: center; border-radius: 4px; font-size: .875rem; font-weight: 650; }
.relation-client::after { content: ""; position: absolute; left: 100%; top: 50%; width: 18px; border-top: 1px solid #aaa0f67a; }
.relation-branches { position: relative; display: grid; gap: 8px; }
.relation-branches::before { content: ""; position: absolute; left: -18px; top: 22px; bottom: 22px; border-left: 1px solid #aaa0f67a; }
.relation-branches span { position: relative; padding: 12px; border: 1px solid #ffffff26; border-radius: 4px; font-size: .8125rem; line-height: 1.4; }
.relation-branches span::before { content: ""; position: absolute; right: 100%; top: 50%; width: 18px; border-top: 1px solid #aaa0f67a; }
.analytics-explanation { border-top: 1px solid #ffffff26; padding-top: 18px; margin-top: auto; }
.analytics-explanation strong { font-size: 1rem; line-height: 1.5; font-weight: 600; }
.analytics-explanation p { color: #c9c9d1; margin: 8px 0 0; font-size: .9375rem; }
.agent-flow { list-style: none; padding: 0; margin: auto 0 0; }
.agent-flow li { display: flex; gap: 16px; align-items: center; padding: 15px 12px; border-bottom: 1px solid var(--line); }
.agent-flow li > span { display: grid; place-items: center; width: 28px; height: 28px; flex-shrink: 0; background: #efedff; color: var(--purple); border-radius: 50%; font-size: .875rem; }
.agent-flow strong, .agent-flow small { display: block; }
.agent-flow strong { font-size: .9375rem; font-weight: 600; }
.agent-flow small { font-size: .8125rem; color: var(--muted); margin-top: 4px; line-height: 1.5; }
.agent-flow .agent-review { background: #f5f3ff; border-bottom: none; border-radius: 4px; }
.app-list { list-style: none; padding: 0; margin: auto 0 0; }
.app-list li { display: flex; align-items: center; gap: 14px; padding-block: 15px; border-bottom: 1px solid var(--line); }
.app-list li:last-child { border-bottom: none; }
.app-initial { display: grid; place-items: center; width: 38px; height: 38px; flex-shrink: 0; border-radius: 4px; background: var(--ink); color: var(--lavender); font-size: .75rem; }
.app-list strong, .app-list div > span { display: block; font-size: .9375rem; }
.app-list strong { font-weight: 600; }
.app-list div > span { margin-top: 4px; color: var(--muted); font-size: .8125rem; line-height: 1.5; }
.growth-case { background: #eeedf2; }
.example-label { margin-left: auto; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: .8125rem; }
.case-journey { list-style: none; margin: 44px 0 0; padding: 0; border-top: 1px solid #d2d0d9; }
.case-journey li { display: grid; grid-template-columns: 210px minmax(0,1fr) 190px; gap: 30px; align-items: start; padding: 28px 0; border-bottom: 1px solid #d2d0d9; }
.case-layer { display: flex; align-items: baseline; gap: 12px; font-size: .875rem; font-weight: 650; line-height: 1.5; }
.case-layer b { color: var(--purple); font-weight: 500; font-size: .8125rem; }
.case-journey h3 { font-size: 1.1875rem; line-height: 1.4; letter-spacing: -.02em; margin-bottom: 8px; }
.case-journey p { color: var(--muted); margin-bottom: 0; font-size: .9375rem; }
.case-output { font-size: .8125rem; line-height: 1.5; padding: 8px 12px; border: 1px solid #d1cce9; border-radius: 4px; color: #5549ba; background: #ffffff60; }
.case-learning { display: flex; align-items: baseline; gap: 14px; padding-top: 22px; color: var(--purple); }
.case-learning p { margin: 0; font-size: .9375rem; color: var(--ink); }
.depth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 42px; }
.depth-grid article { border-top: 1px solid var(--line); padding-top: 26px; }
.depth-grid h3 { font-size: 1.5rem; }
.depth-grid article > p:not(.eyebrow) { color: var(--muted); font-size: 1rem; margin-bottom: 0; }
details { margin-top: 20px; border-top: 1px solid var(--line); padding-top: 16px; font-size: .875rem; line-height: 1.6; }
summary { cursor: pointer; font-weight: 600; padding-block: 4px; }
details p { color: var(--muted); margin: 12px 0 0; }
.closing { border-top: 1px solid var(--line); background: #efedf7; padding-block: 76px; }
.closing-inner { max-width: 840px; text-align: center; }
.closing h2 { max-width: 720px; margin-inline: auto; }
.closing-inner > p:not(.eyebrow) { color: var(--muted); max-width: 600px; margin: 0 auto 28px; }
footer { display: grid; grid-template-columns: auto 1fr auto; gap: 24px; align-items: center; padding-block: 36px; }
footer p { font-size: .8125rem; margin: 0; color: var(--muted); }
footer nav { display: flex; gap: 24px; font-size: .8125rem; }
footer small { grid-column: 1/-1; font-size: .75rem; color: var(--muted); }
@media (max-width: 1000px) {
  .site-header { height: 68px; }
  .desktop-nav, .header-cta { display: none; }
  .menu-button { display: flex; flex-direction: column; gap: 5px; width: 44px; height: 44px; align-items: center; justify-content: center; border: 0; background: transparent; cursor: pointer; }
  .menu-button i { width: 22px; height: 2px; background: var(--ink); }
  .menu-button[aria-expanded="true"] i:first-of-type { transform: translateY(3.5px) rotate(45deg); }
  .menu-button[aria-expanded="true"] i:last-of-type { transform: translateY(-3.5px) rotate(-45deg); }
  .mobile-nav { position: absolute; top: 68px; left: 0; right: 0; padding: 12px 24px 24px; background: var(--paper); border-bottom: 1px solid var(--line); }
  .mobile-nav.open { display: grid; }
  .mobile-nav a { padding-block: 14px; }
  .hero { padding-top: 116px; gap: 32px; }
  .hero h1 { font-size: clamp(2.5rem,4.8vw,3rem); }
  .platform-map { padding: 18px; }
  .map-layers a { padding: 14px 10px; gap: 8px; }
  .section-intro { gap: 32px; }
  .case-journey li { grid-template-columns: 190px minmax(0,1fr); }
  .case-output { grid-column: 2; width: fit-content; }
  footer { grid-template-columns: auto 1fr; }
  footer nav { grid-column: 1/-1; }
}
@media (max-width: 820px) {
  .shell { padding-inline: 24px; }
  .section { padding-block: 64px; }
  .hero { grid-template-columns: 1fr; padding-bottom: 56px; gap: 36px; }
  .hero-copy { max-width: 620px; }
  .hero h1 { font-size: clamp(2.5rem,7vw,3.6rem); max-width: 640px; }
  .platform-map { padding: 24px; }
  .map-layers a { padding: 18px; grid-template-columns: 24px 1fr 12px; gap: 14px; }
  .section-intro { grid-template-columns: 1fr; gap: 20px; }
  .section-intro > p { max-width: 640px; }
  .capability-grid { grid-template-columns: 1fr; }
  .capability { padding: 30px; }
  .depth-grid { gap: 32px; }
}
@media (max-width: 540px) {
  .shell { padding-inline: 20px; }
  .hero { padding-top: 106px; }
  .hero h1 { font-size: clamp(2.25rem,9.6vw,3rem); }
  .hero-lede { font-size: 1.0625rem; }
  .hero-actions { gap: 18px; margin-top: 24px; }
  .platform-map { padding: 16px; }
  .map-layers a { padding: 15px 12px; grid-template-columns: 20px 1fr 12px; gap: 9px; }
  .map-layers strong { font-size: 1rem; }
  .map-layers p { font-size: .875rem; }
  .map-layers li + li::before { left: 22px; }
  .section-label { gap: 10px; flex-wrap: wrap; margin-bottom: 28px; }
  .capability { padding: 24px; }
  .capability-label { margin-bottom: 20px; }
  .relation-model { gap: 30px; grid-template-columns: .65fr 1.35fr; }
  .relation-client::after { width: 15px; }
  .relation-branches::before { left: -15px; }
  .relation-branches span::before { width: 15px; }
  .case-journey li { grid-template-columns: 1fr; gap: 14px; }
  .case-output { grid-column: auto; }
  .example-label { margin-left: 0; }
  .depth-grid { grid-template-columns: 1fr; margin-top: 30px; }
  .closing { padding-block: 56px; }
  footer { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
