*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--py-font);
  color: var(--py-ink);
  background: var(--py-white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
main { overflow: hidden; }
.container { width: min(calc(100% - 40px), var(--py-container)); margin-inline: auto; }
.section { position: relative; padding-block: var(--py-section-y); }
.section--soft { background: var(--py-soft); }
.section--sky { background: linear-gradient(180deg, var(--py-sky-100), #ffffff); }
.section--navy { background: var(--py-navy-950); color: var(--py-white); }
.section--brand-soft { background: var(--py-gradient-soft); }
.section--tight { padding-block: clamp(52px, 6vw, 82px); }
.section-code { display: none; }
.handoff-mode .section-code {
  display: inline-flex;
  position: absolute;
  top: 14px;
  left: 18px;
  z-index: 20;
  padding: 5px 9px;
  border-radius: 999px;
  background: #fff6cc;
  color: #5e4912;
  border: 1px solid #d8be4d;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  box-shadow: 0 5px 16px rgba(0,0,0,.12);
}
.handoff-mode .section { outline: 1px dashed rgba(157, 27, 34, .35); outline-offset: -8px; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--py-sky-700);
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-bottom: 14px;
}
.eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; border-radius: 2px; }
h1, h2, h3, h4 { margin: 0; line-height: 1.15; color: var(--py-navy-950); }
h1 { font-size: clamp(2.45rem, 5vw, 5rem); letter-spacing: -.055em; }
h2 { font-size: clamp(2rem, 3.6vw, 3.6rem); letter-spacing: -.04em; }
h3 { font-size: clamp(1.15rem, 2vw, 1.55rem); letter-spacing: -.02em; }
p { margin: 0; }
.lead { font-size: clamp(1.05rem, 1.8vw, 1.35rem); color: var(--py-muted); max-width: 760px; }
.section-heading { display: grid; gap: 18px; max-width: 820px; margin-bottom: 48px; }
.section-heading--center { text-align: center; margin-inline: auto; }
.section-heading--center .lead { margin-inline: auto; }
.text-navy { color: var(--py-navy-900); }
.text-red { color: var(--py-red-700); }
.text-sky { color: var(--py-sky-700); }
.muted { color: var(--py-muted); }
.small { font-size: .9rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.skip-link { position: fixed; left: 12px; top: -60px; z-index: 999; background: var(--py-white); padding: 10px 14px; border-radius: 8px; box-shadow: var(--py-shadow-md); }
.skip-link:focus { top: 12px; }
/* Handoff labels are intentionally visible only with ?handoff=1. */
.handoff-mode .site-header > .section-code {
  left: 50%;
  right: auto;
  top: auto;
  bottom: -16px;
  transform: translateX(-50%);
  white-space: nowrap;
}

/* Internal implementation notes are hidden in the public preview. */
.handoff-only { display: none !important; }
.handoff-mode .handoff-only { display: block !important; }
