@layer reset, base, layout, graphic, responsive;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  body, h1, h2, p, figure { margin: 0; }
  html { scroll-behavior: smooth; scroll-padding-top: 28px; }
  img, svg { display: block; max-width: 100%; }
}
@layer base {
  :root { color-scheme: light; font-family: Arial, Helvetica, sans-serif; color: #20252d; background: #f7f6f2; --ink: #20252d; --green: #4b6482; --muted: #626d7b; --line: #dde0e4; }
  body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; -webkit-font-smoothing: antialiased; }
  p { font-size: 17px; line-height: 1.65; }
  a { color: #4b6482; text-decoration: none; text-underline-offset: 4px; }
  a:hover { text-decoration: underline; }
  a:focus-visible, [tabindex]:focus-visible { outline: 2px solid #4b6482; outline-offset: 6px; border-radius: 2px; }
  ::selection { background: #dce3ec; }
}
@layer layout {
  .shell { width: min(1080px, calc(100% - 112px)); margin-inline: auto; }
  .site-header { display: flex; align-items: center; justify-content: space-between; padding-block: 33px;  }
  .brand img { width: 36px; height: auto; }
  .header-contact { font-size: 13px; padding-block: 12px; }
  nav { display: flex; align-items: center; gap: 32px; font-size: 13px; }
  nav a { color: #626d7b; } nav a:hover { color: var(--ink); text-decoration: none; }
  nav span { margin-left: 6px; }
  .hero { padding-block: 66px 45px; display: flex; align-items: end; justify-content: space-between; gap: 40px; }
  h1 { font-size: clamp(39px, 4.5vw, 57px); font-weight: 400; line-height: 1.12; letter-spacing: -.055em; }
  .hero p { font-size: 16px; color: #626d7b; line-height: 1.75; max-width: 490px; margin-top: 22px; }
  .contact-link { font-size: 13px; display: inline-flex; align-items: center; gap: 26px; white-space: nowrap; padding: 12px 0; border-bottom: 1px solid #9baabb; margin-bottom: 5px; }
  .contact-link span { font-size: 17px; }
  .experience { padding: 0 30px 58px; background: #f7f6f2; }
  .site-footer { display: flex; flex-shrink: 0; align-items: center; justify-content: space-between; margin-top: auto; padding-block: 24px; border-top: 1px solid #e5e5e1; font-size: 12px; }
  .footer-brand { font-size: 16px; letter-spacing: -.04em; }
  .site-footer a { color: #626d7b; }
  .skip-link { position: fixed; top: -100px; left: 20px; padding: 10px 16px; background: white; z-index: 10; }
  .skip-link:focus { top: 10px; }
}
@layer graphic {
  .signal-map { position: relative; height: 320px; width: 100%; isolation: isolate; }
  .connections { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: var(--line); stroke-width: 1; overflow: visible; }
  .connections-narrow { display: none; }
  .connection { transition: stroke .4s; }
  .connection.is-active { stroke: #7891ad; }
  .output-route { stroke: #a1b1c3; }
  .source-node { position: absolute; left: 0; display: flex; width: 148px; height: 50px; align-items: center; gap: 15px; padding: 7px 10px; background: #f7f6f2; color: var(--muted); font-size: 12px; transition: color .25s; }
  .source-node svg { width: 25px; height: 29px; stroke: currentColor; stroke-width: 1; fill: #f7f6f2; flex: 0 0 auto; }
  .source-0 { top: calc(22% - 25px); }.source-1 { top: calc(50% - 25px); }.source-2 { top: calc(78% - 25px); }
  .source-node.is-active { color: var(--green); }
  .domain-center { position: absolute; width: 120px; height: 120px; left: 45.35%; top: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; }
  .orbit { position: absolute; left: 50%; top: 50%; border: 1px solid var(--line); border-radius: 50%; transform: translate(-50%, -50%); pointer-events: none; }
  .orbit-one { width: 150px; height: 150px; background: #eef0f4; z-index: -1; border-color: #dce2e9; }
  .orbit-two { width: 214px; height: 214px; border-color: #e2e6ec; opacity: .8; }
  .curation-core { padding: 17px; background: #f7f6f2; width: 88px; height: 88px; border-radius: 50%; display: grid; place-items: center; box-shadow: 0 0 0 1px #dbe1e8; }
  .task-output { position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 24.5%; min-width: 184px; padding: 21px 0 20px 20px; border-left: 1px solid #bdcbdc; background: #f7f6f2; }
  .output-kind { font-size: 10px; color: #626d7b; }
  .task-output h2 { font-size: 19px; font-weight: 400; line-height: 1.4; letter-spacing: -.025em; margin-top: 9px; }
  .task-output p { font-size: 11px; color: #626d7b; line-height: 1.7; margin-top: 8px; max-width: 170px; }
  .flow-route { stroke: #6784a4; stroke-width: 2; stroke-linecap: round; stroke-dasharray: 3 97; opacity: 0; pointer-events: none; }
  .flow-route { opacity: .6; animation: data-flow 2.1s linear infinite; }
  .flow-input[data-flow-route="1"] { animation-delay: -.7s; }
  .flow-input[data-flow-route="2"] { animation-delay: -1.4s; }
  .flow-route.is-active { opacity: 1; stroke-width: 2.3; }
  .flow-output { animation-delay: -1.15s; stroke-dasharray: 4 96; opacity: .8; }
  .curation-core { animation: context-pulse 2.1s ease-in-out infinite; }
  @keyframes data-flow { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
  @keyframes context-pulse { 0%,100% { box-shadow: 0 0 0 1px #dbe1e8, 0 0 0 0 #7891ad00; } 50% { box-shadow: 0 0 0 1px #c2cfdf, 0 0 0 9px #7891ad12; } }
}
@layer responsive {
  @media(max-width: 1000px) {
    .shell { width: calc(100% - 80px); }.experience { padding-inline: 24px; }.task-output { min-width: 162px; }.task-output h2 { font-size: 17px; }.source-node { width: 132px; gap: 10px; font-size: 11px; }
  }
  @media(max-width: 650px) {
    .shell { width: calc(100% - 40px); }.site-header { padding-block: 25px; }.brand img { width: 32px; }nav { font-size: 12px; gap: 22px; }nav a:first-child { display: none; }
    .hero { padding-block: 43px 30px; display: block; }h1 { font-size: clamp(34px, 7.5vw, 47px); }.hero p { font-size: 14px; margin-top: 18px; max-width: 330px; }.contact-link { font-size: 12px; margin-top: 18px; padding-block: 9px; }
    .experience { padding-inline: 14px; }.signal-map { height: 440px; }.connections-wide { display: none; }.connections-narrow { display: block; }
    .source-node { top: 0; left: 0; width: 30.5%; height: 81px; padding: 8px 0; flex-direction: column; text-align: center; gap: 10px; font-size: 10px; justify-content: center; }.source-1 { left: 34.75%; }.source-2 { left: 69.5%; }
    .domain-center { left: 50%; top: 49%; }.orbit-one { width: 124px; height: 124px; }.orbit-two { width: 182px; height: 182px; }
    .task-output { width: 220px; min-width: 0; right: auto; left: 50%; top: 328px; transform: translateX(-50%); padding: 14px 12px 14px 20px; }.task-output h2 { font-size: 18px; margin-top: 5px; }.task-output p { margin-top: 5px; max-width: none; }
  }
  @media(prefers-reduced-motion:reduce) {
    html { scroll-behavior: auto; }*,*::before,*::after { animation: none!important; transition: none!important; }.flow-route { stroke-dasharray: none; opacity: .45; }
  }
}

@layer layout {
  .privacy-header { display: flex; align-items: center; justify-content: space-between; padding-block: 33px; }
  .privacy-header img { width: 36px; height: auto; }
  .privacy-header > a:last-child { font-size: 13px; color: #626d7b; }
  .policy { max-width: 720px; padding-block: 44px 56px; }
  .policy h1 { font-size: 38px; line-height: 1.2; letter-spacing: -.04em; margin-bottom: 12px; }
  .policy .updated { font-size: 12px; color: #626d7b; margin-bottom: 28px; }
  .policy h2 { font-size: 18px; font-weight: 400; letter-spacing: -.02em; margin-block: 30px 10px; }
  .policy p { font-size: 15px; line-height: 1.85; color: #58616d; margin-block: 12px; }
  @media(max-width: 650px) { .policy { padding-top: 28px; }.policy h1 { font-size: 32px; }.privacy-header { padding-block: 25px; }.privacy-header img { width: 32px; }.policy p { font-size: 14px; } }
}
