@font-face { font-family: Geist; src: url("../fonts/Geist-Variable.dfa48d5a8537.woff2") format('woff2'); font-weight: 100 900; font-display: swap; }
.public-page {
    --public-paper: #f8f9f5; --public-ink: #222b27; --public-muted: #626d64;
    --public-line: #dce1d9; --public-green: #315845; --public-sage: #eaf0e5;
    background: var(--public-paper); color: var(--public-ink);
    display: flex; flex-direction: column; min-height: 100svh;
}
.public-page, .public-page * { font-family: Geist, system-ui, -apple-system, sans-serif; }
/* The public product story and the account pages keep the scale they were
   approved with on the morning of 2026-09-21. The afternoon's tightening
   pass re-cut the roles in tokens.css for the workspace's chrome, lists and
   cards; a marketing page is read once, at arm's length, and keeps its own
   scale by design (map §10.1: three intentional modes). Same eight names. */
.public-page { --fs-body:15px; --fs-prose:15px; --fs-lead:17px; --fs-h2:20px; --fs-h1:26px; --fs-display:34px; --lh-tight:1.25; --lh-snug:1.45; --lh-body:1.6; --lh-loose:1.75; }
.public-page main { flex: 1; padding: 0; margin: 0; min-height: 0; }
.public-page a { color: inherit; text-underline-offset: 4px; }
.public-page :focus-visible { outline: 2px solid var(--public-green); outline-offset: 4px; }
.public-header, .public-footer { width: calc(100% - 96px); max-width: 1224px; margin-inline: auto; }
.public-header { min-height: 108px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.public-wordmark { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-size:var(--fs-h1); font-weight: 600; letter-spacing: -1px; }
.public-wordmark img { object-fit: contain; width:32px; height:32px; flex-shrink:0; }
.public-header nav, .public-footer nav { display: flex; align-items: center; gap: 28px; }
.public-header nav { font-size:var(--fs-sm); }
.public-header nav a, .public-footer a { text-decoration: none; }
.public-header nav a:hover, .public-footer a:hover { text-decoration: underline; }
.public-button { display: inline-flex; align-items: center; justify-content: center; gap: 22px; padding: 12px 18px; border: 1px solid var(--public-green); border-radius: 6px; background: var(--public-green); color: var(--public-paper) !important; font-size:var(--fs-sm); font-weight: 500; text-decoration: none; }
.public-button:hover { background: #254734; }
.public-eyebrow { color: var(--public-muted); font-size:var(--fs-meta); font-weight: 550; letter-spacing: .15em; text-transform: uppercase; line-height: 1.5; }
.public-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 25px 0; border-top: 1px solid var(--public-line); color: var(--public-muted); font-size:var(--fs-sm); }
.public-skip { position: fixed; top: -100px; left: 20px; z-index: 100; padding: 12px 18px; background: white; }
.public-skip:focus { top: 16px; }
/* Reading pages share the entrance typography without changing their content. */
.public-reading { max-width: 1120px; margin: 0 auto; padding: 64px 40px 88px; }
.legal-page { max-width: 790px; }
.legal-header { padding-bottom: 36px; margin-bottom: 36px; border-bottom: 1px solid var(--public-line); }
.public-reading h1 { font-size:var(--fs-display); line-height: 1.08; letter-spacing: -.055em; font-weight: 470; margin-bottom: 20px; }
.public-reading h2 { font-size:var(--fs-h2); font-weight: 500; line-height: 1.25; letter-spacing: -.035em; margin: 36px 0 16px; }
.public-reading h3 { font-size:var(--fs-lead); font-weight: 550; line-height: 1.4; margin-bottom: 12px; }
.public-reading p, .public-reading li { font-size:var(--fs-body); line-height: 1.8; color: var(--public-muted); }
.public-reading p { margin-bottom: 18px; }
.public-reading ul { padding-left: 22px; margin: 12px 0 24px; }
.public-reading li { padding-left: 4px; margin-bottom: 8px; }
.public-reading strong { color: var(--public-ink); font-weight: 550; }
.public-reading a:not(.public-button) { color: var(--public-green); }
.legal-header p { font-size:var(--fs-body); margin: 0; }
.about-hero { max-width: 770px; padding-bottom: 36px; }
.about-hero .public-eyebrow { font-size:var(--fs-meta); margin-bottom: 22px; }
.about-hero > p:last-child { max-width: 620px; font-size:var(--fs-body); line-height: 1.5; letter-spacing: -.025em; }
.about-section { border-top: 1px solid var(--public-line); padding-top: 8px; }
.about-section > p { max-width: 800px; }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; margin-top: 36px; }
.about-card { padding: 26px 0; border-top: 1px solid var(--public-line); }
.about-card h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.about-card-icon { display: inline-flex; color: var(--public-green); }
.about-card p { margin: 0; font-size:var(--fs-body); }
.team-section { margin-top: 36px; padding: 8px 32px 22px; border-radius: 16px; background: var(--public-sage); }
.cta-section { padding-top: 24px; }
.error-page { max-width: 680px; padding-block: 100px; }
@media (max-width: 900px) {
    .public-header, .public-footer { width: calc(100% - 64px); }
    .public-header { min-height: 88px; }
}
@media (max-width: 600px) {
    .public-header, .public-footer { width: calc(100% - 40px); }
    .public-header { min-height: 80px; gap: 16px; }
    .public-wordmark { font-size:var(--fs-h2); gap: 8px; }
    .public-wordmark img { width: 28px; height: 28px; }
    .public-header nav { gap: 16px; font-size:var(--fs-sm); }
    .public-header .public-button { padding: 9px 13px; gap: 14px; font-size:var(--fs-sm); }
    .public-footer { align-items: flex-start; flex-direction: column; padding-block: 22px; gap: 14px; }
    .public-footer nav { gap: 24px; flex-wrap: wrap; }
    .public-reading { padding: 40px 24px 60px; }
    .about-grid { grid-template-columns: 1fr; }
    .team-section { padding-inline: 20px; }
    .error-page { padding-block: 72px; }
}

.public-cta-short{display:none}.public-reading:focus{outline:none}.public-header .public-button:hover{text-decoration:none}.public-footer nav{flex-wrap:wrap}.public-header a{min-height:40px;display:inline-flex;align-items:center}.public-reading code{overflow-wrap:anywhere}.public-reading .legal-content{max-width:720px}
@media(max-width:900px){.public-product-link{display:none!important}.public-header nav{gap:22px}}
@media(max-width:600px){.public-cta-full{display:none}.public-cta-short{display:inline}.public-header nav{gap:15px}.public-header .public-button{padding:9px 11px;gap:9px}.public-header,.public-footer{width:calc(100% - 40px)}.public-footer nav{gap:15px 24px}.public-reading h1{letter-spacing:-1px;line-height:1.16}}
@media(max-width:370px){.public-header,.public-footer{width:calc(100% - 32px)}.public-header{gap:9px}.public-header nav{gap:12px}.public-header .public-button{font-size:var(--fs-meta);padding:9px 10px}.public-header .public-button>span[aria-hidden]{display:none}.public-wordmark{font-size:var(--fs-h2);gap:7px}.public-header nav>a:not(.public-button){font-size:var(--fs-meta)}}

/* Match the approved entrance shell without inheriting app-sized display roles. */
.public-page {
    --fs-public-ui: 14px;
    --fs-public-brand: 24px;
    font-size: var(--fs-public-ui);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}
.public-wordmark { font-size: var(--fs-public-brand); font-weight: 650; letter-spacing: -1.2px; white-space: nowrap; }
.public-header nav { gap: 31px; }
.public-header .public-button { min-height: 41px; padding: 10px 15px; gap: 19px; font-size: var(--fs-meta); }
@media (max-width: 1100px) { .public-header, .public-footer { width: calc(100% - 64px); } }
@media (max-width: 850px) { .public-header { min-height: 88px; } .public-header nav { gap: 23px; } }
@media (max-width: 620px) {
    .public-page { --fs-public-brand: 21px; }
    .public-header, .public-footer { width: calc(100% - 44px); }
    .public-header { min-height: 82px; }
    .public-wordmark { gap: 8px; }
    .public-wordmark img { width: 30px; height: 30px; }
    .public-header nav { gap: 15px; font-size: var(--fs-meta); }
    .public-header .public-button { min-height: 40px; padding: 9px 12px; gap: 9px; }
    .public-cta-full { display: none; } .public-cta-short { display: inline; }
}
@media (max-width: 370px) {
    .public-page { --fs-public-brand: 20px; }
    .public-header, .public-footer { width: calc(100% - 34px); }
    .public-header nav { gap: 12px; }
    .public-wordmark { gap: 7px; }
    .public-wordmark img { width: 28px; height: 28px; }
    .public-header .public-button { padding: 9px 10px; }
}
