/* New chapters use the existing type, palette and open space. */
body { display: flex; flex-direction: column; min-height: 100svh; min-height: 100dvh; }
body > .site-header, body > .firm-footer { flex-shrink: 0; }
body > main { flex: 1 0 auto; }
.firm-footer { margin-top: auto; }
.home-page .motion-stage { background: var(--hero-canvas); }
.home-page .motion-title { max-width: 22ch; }
.hero-scroll { position: absolute; z-index: 2; bottom: 2rem; left: 50%; transform: translateX(-50%); display: grid; place-items: center; width: 3rem; height: 3rem; color: var(--ink); }
.hero-scroll svg { width: 1.25rem; height: 1.75rem; fill: none; stroke: currentColor; stroke-width: 1.25; }
.hero-scroll:hover { color: var(--knowledge); }
.home-page .site-nav, .home-page .brand, .home-page .theme-toggle { background: rgb(var(--hero-rgb) / .75); box-shadow: 0 0 12px 7px rgb(var(--hero-rgb) / .75); }
.text-link { display: inline-flex; align-items: center; gap: 1.5rem; min-height: 2.75rem; font-size: .875rem; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translate(2px,-2px); }
.belief-section { padding-block: clamp(5rem,10vw,9rem); display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: clamp(2.5rem,8vw,8rem); }
.belief-section h2 { max-width: 23ch; font-size: clamp(2rem,3.2vw,3.25rem); line-height: 1.16; letter-spacing: -.025em; text-wrap: balance; }
.belief-copy, .chapter-copy > p, .careers-intro p { font-size: 1rem; line-height: 1.85; color: var(--secondary); }
.belief-copy { max-width: 43ch; }
.belief-copy p + p { margin-top: 1.25rem; }
.belief-copy .text-link { margin-top: 1.5rem; }
.business-chapter { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(3rem,8vw,9rem); padding-block: clamp(4rem,8vw,7rem); align-items: start; }
.chapter-title h2 { max-width: 100%; min-width: 0; overflow-wrap: anywhere; font-size: clamp(2.75rem,5.2vw,5rem); line-height: 1.06; letter-spacing: -.035em; }
.chapter-copy { max-width: 45ch; padding-top: .375rem; }
.chapter-copy h3 { font-family: var(--font-brand); font-weight: 500; font-size: clamp(1.65rem,2.6vw,2.25rem); letter-spacing: -.02em; line-height: 1.18; margin-bottom: 1.5rem; text-wrap: balance; }
.chapter-copy .availability { margin-top: 1.5rem; font-size: .875rem; color: var(--muted); }
.chapter-copy .text-link { margin-top: 1.5rem; }
.tile-study { display: block; width: 10rem; height: auto; margin-top: 1.5rem; overflow: visible; }
.study-tile { fill: var(--knowledge); opacity: .78; transform-box: fill-box; transform-origin: center; transition: transform .6s ease, opacity .6s ease; }
.study-tile:nth-child(3n) { fill: var(--brand); transition-delay: .04s; }
.study-tile:nth-child(3n + 1) { fill: var(--code); transition-delay: .08s; }
.tile-study--services .study-tile { fill: var(--execution); }
.tile-study--services .study-tile:nth-child(3n) { fill: var(--knowledge); }
.tile-study--principles .study-tile { fill: var(--code); }
.tile-study--principles .study-tile:nth-child(3n) { fill: var(--decision); }
.tile-study--data .study-tile { fill: var(--gold); }
.business-chapter:is(:hover,:focus-within) .study-tile { opacity: 1; transform: translateY(-2px); }
.join-section { padding-block: clamp(7rem,14vw,13rem); text-align: center; }
.join-section h2 { max-width: 24ch; margin-inline: auto; font-size: clamp(2.25rem,4.2vw,4.25rem); line-height: 1.12; letter-spacing: -.03em; text-wrap: balance; }
.join-section > p { max-width: 44ch; margin: 1.75rem auto 1rem; color: var(--secondary); font-size: 1rem; line-height: 1.8; }
.firm-footer { display: flex; justify-content: space-between; align-items: baseline; gap: 2rem; padding-block: 2rem 2.5rem; color: var(--muted); font-size: .75rem; }
.firm-footer nav { display: flex; flex-wrap: wrap; gap: 1.75rem; }
.firm-footer a { color: inherit; text-decoration: none; }
.firm-footer a:hover { color: var(--ink); text-decoration: underline; }
.announcement-main { position: relative; isolation: isolate; padding-block: clamp(4rem,8vw,8rem); }
.article-backdrop { position: absolute; inset: 3rem -1.5rem; z-index: -1; overflow: hidden; pointer-events: none; }
.article-block-cloud { position: absolute; width: 6.5rem; height: auto; opacity: .22; }
.cloud-0 { left: 2%; top: 7%; }
.cloud-1 { right: 1%; top: 24%; }
.cloud-2 { left: 3%; top: 62%; }
.cloud-3 { right: 2%; top: 84%; }
.background-tile--brand { fill: var(--brand); }
.background-tile--code { fill: var(--code); }
.background-tile--execution { fill: var(--execution); }
.background-tile--gold { fill: var(--gold); }
@media (max-width: 1100px) {
  .article-block-cloud { width: 4.5rem; opacity: .15; }
  .cloud-0, .cloud-2 { left: -3rem; }
  .cloud-1, .cloud-3 { right: -3rem; }
}
.announcement-article { max-width: 43rem; margin-inline: auto; }
.article-header h1 { max-width: none; font-size: clamp(2.75rem,5vw,4.5rem); }
.article-standfirst { font-family: var(--font-brand); font-size: clamp(1.5rem,2.4vw,2rem); line-height: 1.35; margin-top: 1.5rem; max-width: 30ch; }
.article-byline { margin-top: 1.5rem; font-size: .8125rem; color: var(--muted); }
.article-byline span { margin-inline: .5rem; }
.article-body { margin-top: 3rem; }
.article-body section + section { margin-top: 2rem; }
.article-body h2 { margin-bottom: 1.25rem; font-size: clamp(1.75rem,2.7vw,2.25rem); line-height: 1.2; color: var(--ink); }
.article-body p { font-size: 1.0625rem; line-height: 1.85; color: var(--secondary); }
.article-body p + p { margin-top: 1.25rem; }
.article-close { margin-top: 3.5rem; display: flex; flex-wrap: wrap; gap: 2rem; }
.careers-positions { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: clamp(2rem,6vw,6rem); padding-block: clamp(4rem,7vw,7rem); }
.careers-intro h1 { max-width: 10ch; font-size: clamp(2.75rem,4.2vw,4rem); }
.careers-intro p { max-width: 34ch; margin-top: 1.5rem; }
.careers-main { display: flex; flex-direction: column; }
.careers-main > .ribbon-stage { margin-top: auto; flex: 0 0 auto; }
.roles { display: grid; gap: 1rem; }
.role-card { display: block; padding: 1.5rem 1.75rem; background: var(--raised); border-radius: .375rem; text-decoration: none; }
.role-card:hover { background: var(--surface); text-decoration: none; }
.role-card:focus-visible { outline: 2px solid var(--knowledge); outline-offset: 4px; }
.role-card h2 { display: block; font-family: var(--font-brand); font-size: 1.4rem; line-height: 1.25; font-weight: 500; color: var(--ink); }
.role-card .role-summary { margin-top: .75rem; font-size: .875rem; padding: 0; }
.role-card-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 1.5rem; align-items: baseline; margin-top: 1.25rem; }
.role-card .role-location { padding: 0; margin: 0; font-size: .75rem; color: var(--muted); }
.role-card-action { font-size: .8125rem; white-space: nowrap; text-decoration: underline; text-underline-offset: .2em; }
.role-card-action span { margin-left: .75rem; }
.selected-role-details { margin-top: 1.5rem; font-size: .9375rem; line-height: 1.8; color: var(--secondary); }
.selected-role-details p + p { margin-top: 1rem; }
.career-application { padding-block: 3rem clamp(4rem,8vw,8rem); }
.careers-positions[hidden], .career-application[hidden], .role-field[hidden] { display: none; }
.application-return { margin-bottom: 2.5rem; gap: .75rem; }
.application-return:hover span { transform: translateX(-2px); }
.career-application .application-form fieldset:first-child, .career-application .form-step-details > fieldset { margin-top: 0; }
.career-application .apply-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: clamp(2rem,6vw,6rem); align-items: start; }
.career-application .apply-intro h1 { max-width: 15ch; margin: 0; font-size: clamp(2rem,3.2vw,3rem); line-height: 1.15; letter-spacing: -.025em; }
#apply-heading:focus { outline: none; }
.application-role-context { margin-top: 1rem; font-size: .875rem; line-height: 1.7; color: var(--muted); }
.career-application .apply-lead { max-width: 30ch; margin-top: 1rem; }
.home-main > .ribbon-stage, .careers-main .ribbon-stage { padding-block: 1rem 3rem; }
@media (max-width: 800px) {
  .belief-section, .business-chapter, .careers-positions { grid-template-columns: minmax(0,1fr); }
  .business-chapter { gap: 2rem; }
  .chapter-title { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; min-width: 0; }
  .tile-study { flex: 0 0 auto; width: 6rem; margin: 0; }
  .career-application .apply-layout { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
  .career-application .apply-lead { max-width: 40ch; }
  .careers-positions { gap: 2rem; }
  .role-card { padding: 1.25rem; }
  .career-application .form-pair { grid-template-columns: minmax(0,1fr); }
  .careers-intro h1 { max-width: none; }
  .careers-intro p { max-width: 48ch; }
}
@media (max-width: 600px) {
  .site-header { gap: .75rem; }
  .site-nav { gap: .875rem; font-size: .75rem; }
  .belief-section { padding-block: 4.5rem; gap: 2rem; }
  .business-chapter { padding-block: 3.5rem; }
  .chapter-title h2 { font-size: clamp(2.25rem,8vw,3rem); }
  .tile-study { width: 4.5rem; }
  .chapter-copy > p, .belief-copy, .join-section > p, .careers-intro p { font-size: .9375rem; line-height: 1.85; }
  .firm-footer { flex-direction: column; gap: 1.25rem; }
  .article-body p { font-size: 1rem; }
  .article-byline { line-height: 1.8; }
}
@media (max-width: 380px) {
  .site-nav { gap: .5rem; font-size: .6875rem; }
  .chapter-title { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .study-tile, .text-link span { transition: none; }
  .business-chapter:is(:hover,:focus-within) .study-tile, .text-link:hover span { transform: none; }
}

/* Keep all three primary destinations visible, including on small screens. */
.site-header { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 2rem; }
.site-header .brand { justify-self: start; }
.site-header > .theme-toggle { justify-self: end; }
.site-nav [aria-current="page"] { text-decoration: underline; text-underline-offset: .35em; }
@media (max-width: 700px) {
  .site-header { grid-template-columns: minmax(0,1fr) auto; gap: .875rem 1rem; }
  .site-header .brand { grid-column: 1; grid-row: 1; }
  .site-header > .theme-toggle { grid-column: 2; grid-row: 1; }
  .site-header .site-nav { grid-column: 1 / -1; grid-row: 2; justify-content: space-between; gap: .75rem; font-size: .75rem; }
}
