/* Page-specific layout; the shared type, palette, and UI fragments stay intact. */
:root { --sec: 88px; }
html { scroll-padding-top: 100px; }
html body main > .section:not(.hero), html body footer.closing {
  height: auto; min-height: 0; padding: var(--sec) 0; display: block;
}
html body main > .section:not(.hero) > .wrap, html body footer.closing > .wrap { height: auto; min-height: 0; }
html body main > section + .section { padding-top: 0; }
html body .hero { height: auto; min-height: 0; padding-bottom: var(--sec); }
html body .hero > .wrap { height: auto; }
html body .hero .hero-text { height: auto; }
.hero--split .hero__media { min-height: 500px; }
/* the headline names the offer, so it runs longer: no hyphen breaks, and a size that keeps "Senior engineering" on one line */
.hero h1 { hyphens: manual; -webkit-hyphens: manual; font-size: min(var(--ly-h1), 60px); }
.hero__media.sprint { background: var(--lit); }
.mono, .t-mono { font-family: var(--font-mono); letter-spacing: 0; }
.hero-paths { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.hero-paths a { display: inline-flex; gap: 12px; align-items: center; min-height: 44px; border-bottom: 1px solid var(--line); font-size: var(--t-small); }
.hero-paths a:hover { border-color: var(--ink); }
.hero-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; margin-top: 28px; }
.hero-facts dt, .ly-float__row { font: 400 13px/1.5 var(--font-mono); }
.hero-facts dd { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.hero-facts img { width: 16px; height: 16px; }
.nav .nav__links { flex: 1; justify-content: flex-end; }
.theme-toggle { display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); border-radius: var(--r-btn, 8px); background: transparent; color: var(--ink); cursor: pointer; }
.theme-toggle svg { width: 18px; height: 18px; }
.theme-toggle .i-sun { display: none; }
html[data-tone="dark"] .theme-toggle .i-sun { display: block; }
html[data-tone="dark"] .theme-toggle .i-moon { display: none; }
.audience-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.audience { display: flex; flex-direction: column; align-items: start; gap: 20px; padding-top: 28px; border-top: 1px solid var(--line); scroll-margin-top: 24px; }
.audience h3 { font-size: var(--t-h3); max-width: 23ch; }
.audience > p:not(.t-label) { max-width: 52ch; color: var(--muted); }
.audience .checks { margin: 0 0 8px; }
.audience > .link { margin-top: auto; }
.sprint-examples { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.sprint-example { display: flex; flex-direction: column; align-items: start; gap: 16px; border-top: 1px solid var(--line); padding-top: 24px; }
.sprint-example h3 { font-size: var(--t-card); line-height: 1.3; letter-spacing: -.015em; }
.sprint-example > p:not(.t-label) { color: var(--muted); }
.sprint-example dl { display: grid; gap: 20px; margin: 4px 0 12px; }
.sprint-example dt { font-size: var(--t-small); font-weight: 500; margin-bottom: 4px; }
.sprint-example dd { margin: 0; color: var(--muted); }
.sprint-example .link { margin-top: auto; }
.sprint-includes { display: grid; grid-template-columns: 1fr 2fr; gap: 32px; padding: 28px 0; margin-top: 40px; border-top: 1px solid var(--line); }
.sprint-includes h3 { font-size: var(--t-card); line-height: 1.4; }
.sprint-includes p { max-width: 70ch; color: var(--muted); }
.capabilities { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: var(--t-small); color: var(--muted); }
.capabilities span { color: var(--ink); font-weight: 500; }
#how .panel { --p-h: 280px; background: var(--lit); }
#how .step > p { min-height: 7.5em; }
#work .panel { --p-h: 260px; background: var(--lit); }
#work .card > p.case__line { color: var(--ink); min-height: 3lh; }
.stack { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0; padding: 0; list-style: none; font: 400 13px/1.6 var(--font-mono); color: var(--muted); }
.stack li { display: inline-flex; align-items: center; gap: 6px; }
.stack img { width: 16px; height: 16px; }
html[data-tone="dark"] :is(img[data-icon="linear"], img[data-icon="github"], img[data-icon="rust"]) { filter: invert(1); }
.pqs { display: grid; gap: 24px; margin-top: 32px; }
.pq { margin: 0; display: grid; gap: 16px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.pq:last-child { padding-bottom: 0; border-bottom: 0; }
.pq blockquote { margin: 0; font: var(--display-weight) 18px/1.55 var(--font-display); letter-spacing: -.01em; }
.person__av { width: 40px; height: 40px; font-size: 13px; flex: none; }
.person__name, .person__role { display: block; }
.person__role { color: var(--muted); }
.collab { align-self: stretch; display: grid; grid-template-rows: auto 1fr; gap: 32px; padding: 40px; border-radius: var(--r-lg); background: var(--lit); color: #0b0f17; }
.collab .t-label { color: #334155; }
.collab ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: center; gap: 48px 24px; margin: 0; padding: 0; list-style: none; }
.collab li { font: 500 26px/1.1 var(--font-display); letter-spacing: -.03em; }
.collab li:nth-child(2), .collab li:nth-child(5) { font-family: var(--font-mono); font-size: 20px; letter-spacing: 0; }
.collab li:nth-child(4) { font-style: italic; }
.collab li:nth-child(5) { text-transform: lowercase; }
.plan__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.card--plan .plan__for { opacity: .84; min-height: 4.5em; }
.card--plan .plan__price { display: grid; justify-items: start; font: var(--display-weight) var(--t-h3)/1.1 var(--font-display); letter-spacing: var(--display-tracking); }
.card--plan .plan__price small { display: block; margin-top: 8px; font: 400 13px/1.4 var(--font-mono); color: var(--muted); letter-spacing: 0; }
.pricing-note { max-width: 85ch; margin-top: 24px; color: var(--muted); font-size: var(--t-small); }
.qa details { border-top: 1px solid var(--line); }
.qa summary { display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 56px; list-style: none; cursor: pointer; font-weight: 500; }
.qa summary::-webkit-details-marker { display: none; }
.qa summary::after { content: "+"; flex: none; font-family: var(--font-mono); color: var(--muted); }
.qa details[open] summary::after { content: "−"; }
.qa details p { margin: 0 0 20px; max-width: 62ch; color: var(--muted); }
footer.closing .closing__links { margin-top: 64px; }
html body footer.closing { padding-bottom: 40px; }
/* logo: a stepped H, three strokes for the lead and two seniors, the right stem a step up toward the release; ink colour in both themes */
.nav__logo .logo-mark { width: 24px; height: 24px; flex: none; }
.closing__cta .section-head--split .btn-row { display: flex; flex-direction: row; flex-wrap: nowrap; flex: none; gap: 12px; }
@media (max-width: 1023px) {
  :root { --sec: 72px; }
  .hero--split .hero__media { min-height: 320px; flex: none; }
  .hero-facts { display: none; }
  .sprint-examples { grid-template-columns: 1fr; gap: 32px; }
  .sprint-example dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #how .step { grid-column: 1 / -1; }
  #how .step > p { min-height: 0; max-width: 65ch; }
  .collab { margin-top: 32px; min-height: 300px; }
}
@media (max-width: 639px) {
  :root { --sec: 56px; }
  .hero-paths { gap: 8px 20px; }
  .hero-paths a { font-size: 14px; }
  .audience-grid { grid-template-columns: 1fr; gap: 32px; }
  .audience { gap: 16px; padding-top: 20px; }
  .sprint-example dl, .sprint-includes { grid-template-columns: 1fr; gap: 20px; }
  #work .panel { --p-h: 220px; }
  #how .panel { --p-h: 260px; }
  .collab { padding: 28px; }
  .collab ul { gap: 32px 20px; }
  .collab li { font-size: 22px; }
  .plan__head { flex-wrap: wrap; }
  .card--plan .plan__for { min-height: 0; }
  .closing__cta .section-head--split .btn-row { flex-direction: column; width: 100%; }
}
