/* kestrelbuild.com: shared look for every page. Copied from peachbytelabs.com's
   site.css: Nunito, the brand font in the PBL brand guideline (headings
   ExtraBold 800, subheadings SemiBold 600, body Regular 400), light and dark,
   a translucent top bar. Colours come from the Kestrel Build icon: its deep
   blue ground and the teal of the K's leg.
   Nunito is served from /fonts (SIL OFL 1.1, fonts/OFL.txt); nothing is
   downloaded from anywhere else. */

/* One variable file per script covers every weight from 400 to 800. */
@font-face {
  font-family: "Nunito";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/nunito-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Nunito";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/nunito-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  color-scheme: light dark;
  --ground:   #FFFFFF;
  --plate:    #F2F5FA;
  --plate-hi: #FFFFFF;
  --ink:      #101828;
  --ink-soft: #3B4558;
  --ink-muted:#5E6878;
  --rule:     #DCE2EC;
  --hairline: rgba(16, 24, 40, .09);
  --accent:   #1450D8;
  --on-accent:#FFFFFF;
  --shadow:   rgba(16, 24, 40, .12);
  --nav-bg:   rgba(255, 255, 255, .72);
  /* The icon's light: blue top-left, teal top-right. */
  --field:
    radial-gradient(560px 520px at 14% -4%, rgba(20, 90, 230, .16), transparent 70%),
    radial-gradient(520px 480px at 88% 2%, rgba(80, 210, 220, .18), transparent 70%),
    radial-gradient(360px 260px at 52% -6%, rgba(120, 160, 255, .08), transparent 70%),
    linear-gradient(#F3F7FF, #FFFFFF 62%);

  --text: "Nunito", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --rounded: "Nunito", ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

@media (prefers-color-scheme: dark) {
  :root {
    --ground:   #0B1020;
    --plate:    #151C30;
    --plate-hi: #1C2440;
    --ink:      #F3F6FC;
    --ink-soft: #C9D2E3;
    --ink-muted:#97A2B8;
    --rule:     #2A3350;
    --hairline: rgba(255, 255, 255, .08);
    --accent:   #6FDCE4;
    --on-accent:#0B1020;
    --shadow:   rgba(0, 0, 0, .55);
    --nav-bg:   rgba(11, 16, 32, .72);
    --field:
      radial-gradient(560px 520px at 14% -4%, rgba(20, 90, 230, .34), transparent 70%),
      radial-gradient(520px 480px at 88% 2%, rgba(80, 210, 220, .18), transparent 70%),
      radial-gradient(360px 260px at 52% -6%, rgba(120, 160, 255, .12), transparent 70%),
      linear-gradient(#0E1A3A, #0B1020 62%);
  }
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  background: var(--ground);
  color: var(--ink);
  font-family: var(--text);
  font-size: 17px;
  font-size: 1.0625rem;
  line-height: 1.47;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "kern";
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: .18em; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; border-radius: 6px; }
.skip {
  position: absolute; left: 12px; top: -60px; z-index: 20;
  background: var(--plate); color: var(--ink); padding: 10px 14px; border-radius: 12px;
}
.skip:focus { top: 12px; }

/* The bar: one line, translucent like a system navigation bar. */
.bar {
  position: sticky; top: 0; z-index: 10;
  background: var(--nav-bg);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid var(--hairline);
}
.bar .in {
  max-width: 1024px; margin: 0 auto; padding: 0 22px;
  height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.brand {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--rounded); font-weight: 800; font-size: 19px; letter-spacing: -0.01em;
  color: var(--ink); min-height: 44px; white-space: nowrap;
}
.brand:hover { text-decoration: none; }
/* The app icon beside the name. */
.brand img { display: block; width: 28px; height: 28px; border-radius: 7px; }
.brand span { color: var(--ink-muted); font-weight: 600; }
.bar nav { display: flex; align-items: center; gap: 2px; font-size: 14px; letter-spacing: -0.01em; }
.bar nav a {
  color: var(--ink-soft); padding: 0 9px; min-height: 44px;
  display: inline-flex; align-items: center;
}
.bar nav a:hover { color: var(--ink); text-decoration: none; }
.bar nav a[aria-current="page"] { color: var(--ink); font-weight: 600; }
@media (max-width: 600px) {
  .bar nav a.hide-s { display: none; }
}

/* Footer, shared by every page. */
.foot {
  border-top: 1px solid var(--hairline);
  color: var(--ink-muted);
  font-size: 13px; letter-spacing: -0.01em; line-height: 1.5;
}
.foot .in {
  max-width: 1024px; margin: 0 auto; padding: 22px 22px 40px;
  display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; align-items: center;
}
.foot nav { display: flex; flex-wrap: wrap; gap: 0 20px; }
.foot nav a { color: var(--ink-soft); display: inline-flex; align-items: center; min-height: 44px; }

/* Long-form pages: support, privacy, terms. */
.doc { background: var(--field) no-repeat top / 100% 720px, var(--ground); }
.doc main { max-width: 720px; margin: 0 auto; padding: 72px 22px 88px; }
.doc h1 {
  font-family: var(--rounded); font-weight: 800;
  font-size: clamp(34px, 6vw, 48px); line-height: 1.08; letter-spacing: -0.015em;
  margin-bottom: 12px; text-wrap: balance;
}
.doc .updated { color: var(--ink-soft); font-size: 15px; margin-bottom: 44px; }
.doc h2 {
  font-family: var(--rounded); font-weight: 600;
  font-size: 23px; line-height: 1.2; letter-spacing: -0.01em;
  margin: 44px 0 12px; scroll-margin-top: 72px;
}
.doc h3 {
  font-family: var(--rounded); font-weight: 600;
  font-size: 19px; line-height: 1.25; letter-spacing: -0.01em;
  margin: 24px 0 8px; scroll-margin-top: 72px;
}
.doc p { color: var(--ink-soft); margin-bottom: 14px; max-width: 38em; }
.doc p b, .doc li b { color: var(--ink); font-weight: 600; }
.doc ul, .doc ol { color: var(--ink-soft); margin: 0 0 14px 22px; max-width: 37em; }
.doc li { margin-bottom: 8px; padding-left: 2px; }
.doc li::marker { color: var(--ink-muted); }
.doc main a { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--accent) 40%, transparent); text-underline-offset: .18em; }
.doc main a:hover { text-decoration-color: var(--accent); }
.doc .card {
  background: var(--plate); border-radius: 22px; padding: 26px 28px 12px; margin: 22px 0;
  box-shadow: 0 0 0 1px var(--hairline);
  scroll-margin-top: 72px;
}
.doc .card h3 { margin-top: 0; }
.doc .card + h2 { margin-top: 52px; }
@media (max-width: 560px) {
  .doc main { padding-top: 56px; }
  .doc .card { padding: 22px 20px 8px; border-radius: 18px; }
}
