/* PIVOT: the team hub's shared frame (2026-10-15), used by /hub/ and /hub/library/.
   Base, the top bar, section heads and the footer live here once; each page keeps only
   its own parts inline. Tokens come from /css/field-system.css. */
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body{margin:0;background:var(--paper);color:var(--navy);font-family:var(--font-body);font-weight:var(--w-prose)}
a{color:inherit}

/* top bar: quiet chrome, the way a workspace opens (Linear) */
.top{background:var(--void);color:var(--paper);border-bottom:1px solid var(--hair)}
.top__in{display:flex;align-items:center;gap:1.1rem;min-height:4rem}
.top .lockup{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--paper)}
.top .lockup svg{width:1.55rem;height:auto}
.top .wordmark{font-family:var(--font-display);font-weight:var(--w-display);letter-spacing:.18em;font-size:.95rem}
.top__tag{font-family:var(--font-mono);font-size:var(--t-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-55);padding-left:1.1rem;border-left:1px solid var(--hair-2);text-decoration:none}
a.top__tag:hover,a.top__tag:focus-visible{color:var(--paper)}
.top__back{margin-left:auto;font-size:.875rem;color:var(--ink-72);text-decoration:none;padding:.5rem 0}
.top__back:hover,.top__back:focus-visible{color:var(--paper)}

/* sections on paper */
.sec{padding:clamp(4rem,9vh,6.5rem) 0}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:2rem;border-top:1px solid var(--line-light);padding-top:1.4rem}
.sec-head .eyebrow{color:var(--terra);margin:0}
.sec-head h2{font-family:var(--font-display);font-weight:var(--w-display);font-size:clamp(1.75rem,3vw,2.5rem);letter-spacing:-.035em;line-height:1;margin:0;color:var(--navy)}

.foot{background:var(--void);color:var(--ink-55);font-size:.8125rem;padding:2.2rem 0}
.foot__in{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.foot a{color:var(--ink-72)}

/* arrival: the first screen is painted in place (2026-10-15, the site's first-screen rule);
   only blocks further down glide up as they arrive. hub.js arms the page after marking
   what is already in view. */
.hub-armed [data-rise]:not(.is-in){transform:translateY(14px)}
[data-rise].is-in{transform:none;transition:transform .85s cubic-bezier(.22,.8,.26,1)}

@media (max-width:560px){.top__tag{display:none}}
@media (prefers-reduced-motion:reduce){.hub-armed [data-rise]:not(.is-in){transform:none}[data-rise].is-in{transition:none}}
