.homepage {
  --hp-primary: #4a3aff;
  --hp-muted: #aaa9c0;
  --hp-bg: #06042e;
  --hp-line: rgba(167, 139, 250, .17);
  margin: 0; color: #fff; background: var(--hp-bg); font-family: Inter, system-ui, sans-serif;
  -webkit-font-smoothing: antialiased; overflow-anchor: none;
  background-image: linear-gradient(rgba(74,58,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(74,58,255,.045) 1px,transparent 1px);
  background-size: 40px 40px;
}
.homepage *, .homepage *::before, .homepage *::after { box-sizing: border-box; }
.homepage h1, .homepage h2, .homepage h3, .homepage p { margin: 0; }
.homepage a { color: inherit; text-decoration: none; }
.homepage a:focus-visible, .homepage button:focus-visible, .homepage video:focus-visible { outline: 3px solid #a78bfa; outline-offset: 5px; }
.homepage img { max-width: 100%; }
.homepage [id] { scroll-margin-top: 134px; }
.homepage .hp-inner { width: min(1140px, calc(100% - 96px)); margin-inline: auto; }
.homepage .skip-link { position: fixed; top: -100px; left: 16px; z-index: 200; padding: 12px; background: #fff; color: #06042e; }
.homepage .skip-link:focus { top: 12px; }
.homepage .hp-header { position: fixed; inset: 0 0 auto; z-index: 100; background: rgba(6,4,46,.96); border-bottom: 1px solid var(--hp-line); }
.homepage .hp-nav { height: 64px; padding: 0 40px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.homepage .hp-nav img { display: block; width: 145px; height: auto; }
.homepage .hp-nav-actions { display: flex; gap: 10px; }
.homepage .hp-button { display: inline-flex; justify-content: center; align-items: center; min-height: 40px; padding: 10px 22px; background: var(--hp-primary); border: 1px solid transparent; border-radius: 6px; font-size: 14px; font-weight: 600; line-height: 1.2; }
.homepage .hp-button:hover { background: #3f31de; }
.homepage .hp-button-outline { background: transparent; border-color: rgba(255,255,255,.22); }
.homepage .hp-audience { height: 54px; display: flex; justify-content: center; align-items: center; }
.homepage .hp-audience > div { display: flex; padding: 4px; gap: 3px; background: rgba(255,255,255,.06); border: 1px solid var(--hp-line); border-radius: 8px; }
.homepage .hp-audience a { padding: 8px 14px; color: #b9b7d0; border-radius: 5px; font-size: 13px; font-weight: 600; }
.homepage .hp-audience a[aria-current] { color: #fff; background: var(--hp-primary); }
.homepage .hp-hero { position: relative; padding-block: 238px 100px; text-align: center; }
.homepage .hp-hero h1 { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px; font: 600 clamp(36px,4.7vw,60px)/1.15 Fraunces, Georgia, serif; }
.homepage .hp-hero h1 img { width: clamp(200px,24vw,290px); height: auto; }
.homepage .hp-hero p { max-width: 470px; margin: 20px auto 0; color: var(--hp-muted); font: italic 500 clamp(19px,2vw,24px)/1.65 Fraunces, Georgia, serif; }
.homepage .hp-scroll-cue { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 8px 14px; color: #b9b0d5; font-size: 12px; white-space: nowrap; }
.homepage .hp-scroll-cue:hover { color: #fff; }
.homepage .hp-scroll-cue svg { color: #a58cff; }
.homepage .hp-heading { font: 500 clamp(25px,2.6vw,34px)/1.3 Fraunces, Georgia, serif; }
.homepage .hp-description { color: var(--hp-muted); font-size: 16px; line-height: 1.65; margin-top: 12px; max-width: 600px; }
.homepage .hp-section-copy { margin-bottom: 24px; }
.homepage main .hp-section-copy + * { margin-top: 0; }
.homepage .hp-panel { border: 1px solid var(--hp-line); border-radius: 12px; }
.homepage .hp-icon { width: 18px; height: 18px; flex-shrink: 0; }
.homepage .hp-scene { padding-block: 32px; }
.homepage .hp-sticky { padding-block: 40px; }
.homepage .hp-reveal-section { padding-block: 80px; }
.homepage .hp-tiles { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.homepage .hp-tile { min-width: 0; padding: 26px; border: 1px solid var(--hp-line); border-radius: 12px; background: rgba(74,58,255,.055); }
.homepage .hp-tile h3 { font-size: 20px; font-weight: 600; }
.homepage .hp-tile > p { color: var(--hp-muted); font-size: 14px; line-height: 1.65; margin: 12px 0 24px; }
.homepage .hp-tile h3 + .hp-tile-preview { margin-top: 16px; }
.homepage .hp-tile-preview { overflow: hidden; background: #fff; color: #111827; border-radius: 6px; min-height: 135px; }
.homepage .hp-mini-title { padding: 9px; border-bottom: 1px solid #e5e7eb; font-size: 10px; font-weight: 700; }
.homepage .hp-tile-preview table { width: 100%; border-collapse: collapse; font-size: 7px; text-align: left; }
.homepage .hp-tile-preview td, .homepage .hp-tile-preview th { padding: 8px 5px; border-bottom: 1px solid #e5e7eb; }
.homepage .hp-tile-preview td:last-child { color: #4a3aff; }
.homepage .hp-cta { text-align: center; padding-block: 100px 120px; }
.homepage .hp-cta .hp-section-copy { margin: 38px auto 26px; }
.homepage .hp-cta .hp-description { margin-inline: auto; }
.homepage .hp-cta .hp-button { padding: 15px 30px; font-size: 16px; }
.homepage .hp-video { position: relative; width: min(100%,820px); aspect-ratio: 16 / 9; margin: 0 auto; border: 1px solid var(--hp-line); border-radius: 12px; overflow: hidden; background: #030118; }
.homepage .hp-video video { display: block; width: 100%; height: 100%; border: 0; object-fit: contain; }
.homepage [data-video-frame] > video { position: relative; z-index: 1; }
.homepage .hp-video-fallback { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.homepage .hp-video-failed > video { visibility: hidden; }
.homepage .hp-video-retry { position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%, -50%); cursor: pointer; }
.homepage [data-video-retry][hidden] { display: none; }
.homepage .hp-footer { padding: 64px 0 24px; background: #030118; border-top: 1px solid var(--hp-line); }
.homepage .hp-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 36px; }
.homepage .hp-footer h2 { color: #918aa9; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 18px; }
.homepage .hp-footer a { display: block; font-size: 13px; margin-bottom: 12px; }
.homepage .footer-brand p { max-width: 265px; font-size: 13px; color: #9b96b5; line-height: 1.7; margin-top: 16px; }
.homepage .hp-legal { border-top: 1px solid var(--hp-line); margin-top: 40px; padding-top: 24px; color: #9690aa; font-size: 11px; line-height: 1.6; }
@media (max-width: 900px) {
  .homepage .hp-inner { width: calc(100% - 40px); }
  .homepage .hp-hero { padding-block: 200px 70px; }
  .homepage .hp-hero h1 { flex-direction: column; }
  .homepage .hp-tiles { grid-template-columns: 1fr; }
  .homepage .hp-tile > p { min-height: auto; }
  .homepage .hp-tile h3 + .hp-tile-preview { margin-top: 16px; }
.homepage .hp-tile-preview { min-height: 150px; }
  .homepage .hp-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .homepage .hp-reveal-section { padding-block: 50px; }
}
@media (max-width: 700px) {
  .homepage .hp-nav { padding-inline: 16px; gap: 10px; }
  .homepage .hp-nav img { width: 112px; }
  .homepage .hp-button { font-size: 12px; padding: 9px 12px; }
  .homepage .hp-nav-actions { gap: 6px; }
  .homepage .hp-description { font-size: 14px; }
  .homepage .hp-audience a { font-size: 12px; }
  .homepage .hp-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 16px; }
  .homepage .footer-brand { grid-column: 1 / -1; }
}
.homepage .hp-mini-stats { display: flex; gap: 14px; padding: 10px; background: #f9fafb; }
.homepage .hp-mini-stats b { display: block; font-size: 12px; }
.homepage .hp-mini-stats span { display: block; font-size: 6px; color: #64748b; margin-top: 3px; }
.homepage .hp-mini-firm { font-size: 8px; color: #4a3aff; font-weight: 600; padding: 8px 10px; }
.homepage .hp-mini-gaps { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 0 8px 12px; font-size: 6px; }
.homepage .hp-mini-gaps > div { border: 1px solid #e5e7eb; border-radius: 4px; padding: 7px; }
.homepage .hp-mini-gaps b span { float: right; }
.homepage .hp-mini-gaps p { padding-top: 8px; }
.homepage .hp-mini-gaps strong { color: #4a3aff; }
.homepage .hp-mini-bars { padding: 5px 10px 12px; font-size: 7px; }
.homepage .hp-mini-bars > div { display: grid; grid-template-columns: 1fr 50px 24px 32px; gap: 6px; align-items: center; margin-bottom: 7px; }
.homepage .hp-mini-bars i { display: block; height: 4px; background: #ececf4; }
.homepage .hp-mini-bars i i { background: #4a3aff; }
.homepage .hp-mini-note { font-size: 7px; padding: 8px; background: #fef3c7; color: #92400e; }
.homepage .hp-mini-inbox { padding: 0 10px 10px; }
.homepage .hp-mini-inbox > div { position: relative; padding-block: 7px; border-bottom: 1px solid #e5e7eb; }
.homepage .hp-mini-inbox b, .homepage .hp-mini-inbox span { display: block; font-size: 7px; }
.homepage .hp-mini-inbox span { font-size: 6px; margin-top: 4px; color: #64748b; }
.homepage .hp-mini-inbox small { position: absolute; right: 0; top: 7px; font-size: 6px; color: #64748b; }
.homepage.hp-motion .hp-project-headings { display: grid; }
.homepage.hp-motion .hp-project-headings > div { grid-area: 1 / 1; margin-top: 0; }
.homepage.hp-motion .hp-sticky { padding-block: 24px; }
.homepage.hp-motion .hp-pinned { height: calc(var(--hp-frame-height) + var(--hp-travel)); padding-block: 0; }
.homepage.hp-motion .hp-pinned > .hp-sticky { position: sticky; top: var(--hp-sticky-top, 118px); }
.homepage.hp-motion .hp-analytics .hp-inner { position: relative; }
.homepage.hp-motion .hp-analytics-mini-grid { position: absolute; top: 150px; left: 0; right: 0; z-index: 2; pointer-events: none; }
.homepage.hp-motion .hp-project-envelope { will-change: transform, opacity; }
.homepage.hp-motion [data-bar] { transform-origin: left; }
@media (prefers-reduced-motion: no-preference) {
  .homepage .hp-hero h1, .homepage .hp-hero p { animation: hp-hero-in .7s both; }
  .homepage .hp-hero p { animation-delay: .12s; }
  .homepage .hp-scroll-cue svg { animation: hp-scroll-nudge 2s .8s ease-in-out 2; }
  @keyframes hp-scroll-nudge { 0%, 100% { transform: translateY(-2px); opacity: .6; } 50% { transform: translateY(4px); opacity: 1; } }
  @keyframes hp-hero-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
}

.homepage.hp-motion .hp-source-cursor { left: 0; top: 0; }

.homepage .hp-footer .hp-linkedin { display: flex; align-items: center; gap: 8px; }

@media (max-width: 899px) {
  .homepage .hp-section-copy { margin-bottom: 16px; }
}
