/* The chapter colors are also the static / reduced-motion design. */
main { overflow-x: clip; }
.home-about { background: #267765; color: #fff; }
.home-jobs { background: #103b3c; color: #fff; }
.home-about .eyebrow, .home-about .about-copy h2 { color: #fff; }
.home-about .value-tags li { background: #205448; }
.home-jobs .split-heading .eyebrow { color: #b6fffe; }
.home-goals .split-heading .eyebrow, .home-jobs .split-heading .eyebrow, .home-services .split-heading .eyebrow, .contact-band .center-heading > .eyebrow { font-size: clamp(38px,6.6vw,96px); line-height: 1.08; letter-spacing: -.045em; }
.home-goals .split-heading .eyebrow { color: var(--ink); }
.home-services { padding-top: var(--section); background: #fff; }
.home-services > .container .split-heading { grid-template-columns: 1.2fr 1fr; }
.home-goals, .home-jobs, .contact-band { position: relative; isolation: isolate; overflow: clip; }
.contact-band { background: #effbf7; }
.contact-band .center-heading > .eyebrow { color: #103b3c; }
.contact-band .contact-card { box-shadow: 0 16px 50px #103b3c12; }
.contact-band:not(.contact-band--news) .contact-card--web { background: #fff; }
.home-jobs .job-cards article { border-radius: 12px; overflow: hidden; }
.home-service-photo { display: block; position: relative; color: white; text-decoration: none; }
.job-cards--home article > a { position: relative; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .home-service-row .home-service-photo:is(:hover,:focus-visible) > img { scale: 1.12; }
}
@media (prefers-reduced-motion: no-preference) {
  .home-goals.has-choreography::before, .contact-band.has-choreography::before { content: ''; position: absolute; z-index: -1; inset: 0; pointer-events: none; }
  .home-goals.has-choreography::before { background: #ff9c89; clip-path: circle(calc(var(--chapter-enter,1) * 150%) at 95% 0%); }
  .contact-band.has-choreography::before { background: #b6fffe; clip-path: circle(calc(var(--chapter-enter,1) * 150%) at 50% 100%); }
  .home-about.has-choreography { clip-path: inset(0 calc((1 - var(--chapter-enter,1)) * 9%) round calc((1 - var(--chapter-enter,1)) * 100px)); }
  .home-about.has-choreography .about-visual > img:first-child { scale: calc(.72 + var(--chapter-enter,1) * .28); translate: calc((1 - var(--chapter-enter,1)) * -160px) 0; border-radius: calc((1 - var(--chapter-enter,1)) * 100px); transform-origin: left center; }
  .home-jobs.has-choreography { clip-path: inset(0 calc((1 - var(--chapter-enter,1)) * 7%) round calc((1 - var(--chapter-enter,1)) * 80px)); }
  .has-choreography:is(.home-goals,.home-services) .split-heading .eyebrow { translate: calc((1 - var(--chapter-enter,1)) * -150px) 0; }
  .home-jobs.has-choreography .split-heading .eyebrow { translate: calc((1 - var(--chapter-enter,1)) * 180px) 0; }
  .home-services.has-choreography .service-stack { --stack-gap: 48svh; }
  .has-arrivals { position: relative; }
  .has-arrivals > * { position: relative; transform-origin: center top; translate: calc((1 - var(--arrival,1)) * var(--side,1) * 220px) calc((1 - var(--arrival,1)) * 120px); scale: calc(.8 + var(--arrival,1) * .2); rotate: calc((1 - var(--arrival,1)) * var(--side,1) * 6deg); }
  .job-cards--home.has-arrivals > * { translate: calc((1 - var(--arrival,1)) * var(--side,1) * 260px) calc((1 - var(--arrival,1)) * 180px); scale: calc(.72 + var(--arrival,1) * .28); }
  .has-arrivals > :focus-within { translate: none; scale: 1; rotate: none; }
  .has-picture-arrival { scale: calc(.78 + var(--arrival,1) * .22); translate: calc((1 - var(--arrival,1)) * var(--side,1) * 150px) 0; transform-origin: center; }
  .has-picture-arrival:focus-within { scale: 1; translate: none; }
  .recruit-band.is-recruit-scene .recruit-band-word { translate: calc(var(--recruit-progress,0) * -650px) 0; }
  .recruit-band.is-recruit-scene .recruit-band-grid > div:first-child > img { translate: 0 calc((var(--recruit-progress,0) - .5) * -240px); scale: calc(.88 + var(--chapter-enter,1) * .12); }
  .recruit-band.is-recruit-scene .recruit-secondary > img { translate: 0 calc((var(--recruit-progress,0) - .5) * 320px); }
}
@media (max-width: 780px) {
  .home-about .about-wave { display: none; }
  .home-services > .container .split-heading { grid-template-columns: 1fr; }
  .home-goals .split-heading .eyebrow, .home-jobs .split-heading .eyebrow, .home-services .split-heading .eyebrow, .contact-band .center-heading > .eyebrow { font-size: clamp(34px,9.8vw,64px); }
}
@media (max-width: 1100px) and (prefers-reduced-motion: no-preference) {
  .has-arrivals > *, .job-cards--home.has-arrivals > * { translate: calc((1 - var(--arrival,1)) * var(--side,1) * 56px) calc((1 - var(--arrival,1)) * 80px); rotate: calc((1 - var(--arrival,1)) * var(--side,1) * 3deg); }
  .has-picture-arrival { translate: calc((1 - var(--arrival,1)) * var(--side,1) * 40px) 0; }
  .recruit-band.is-recruit-scene .recruit-band-grid > div:first-child > img { translate: 0 calc((var(--recruit-progress,0) - .5) * -70px); }
}
@media print {
  .home-about, .home-jobs { background: white; color: #103b3c; }
  .home-about .eyebrow, .home-jobs .split-heading .eyebrow { color: #103b3c; }
  .has-choreography, .home-about.has-choreography, .home-jobs.has-choreography { clip-path: none; }
  .has-arrivals > *, .job-cards--home.has-arrivals > *, .has-picture-arrival, .home-about.has-choreography .about-visual > img:first-child, .recruit-band.is-recruit-scene .recruit-band-grid > div > img, .has-choreography .split-heading .eyebrow { scale: none; translate: none; rotate: none; }
  .home-goals.has-choreography::before, .contact-band.has-choreography::before { display: none; }
}

/* Native card links: one keyboard stop, browser link menus, and no nested anchors. */
a.card-link { color: inherit; text-decoration: none; }
a.card-link:focus-visible { outline: 3px solid var(--green); outline-offset: 5px; }
a.card-link:is(:hover,:focus-visible) .service-round-link { background: #103b3c; color: #fff; }
a.card-link:is(:hover,:focus-visible) .button { --button-fill: #e6f3ed; --button-edge: var(--green); }
a.card-link:is(:hover,:focus-visible) .button--primary { --button-fill: #ad3f35; --button-edge: #ad3f35; }
a.card-link:is(:hover,:focus-visible) .button::after { transform: scale(2); }
.contact-card--surface { --contact-pad-y: 42px; --contact-pad-x: 42px; padding: 0; }
.contact-card-surface { display: block; height: 100%; padding: var(--contact-pad-y) var(--contact-pad-x); }
.contact-card-surface > :not(.contact-leaf) { position: relative; z-index: 1; }
.contact-mail-placeholder { visibility: hidden; }
.contact-mail-placeholder, .contact-card-mail { letter-spacing: normal; }
.contact-card > .contact-card-mail { position: absolute; z-index: 2; top: var(--contact-pad-y); left: var(--contact-pad-x); right: var(--contact-pad-x); margin: 0; pointer-events: none; }
.contact-card-mail a { pointer-events: auto; }
.contact-card--surface:focus-within { outline: 3px solid var(--green); outline-offset: 5px; }
.staff-card-link { display: block; }
.staff-card-link:is(:hover,:focus-visible) h3 { text-decoration: underline; text-underline-offset: 5px; }
.photo-open-area { display: none; position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; border-radius: inherit; background: transparent; color: inherit; cursor: pointer; }
.has-js .photo-open-area:not([hidden]) { display: block; }
.photo-open-area .photo-detail-trigger { pointer-events: none; }
.photo-open-area:is(:hover,:focus-visible) .photo-detail-trigger { background: #103b3c; color: white; }
.photo-open-area:focus-visible { outline: 3px solid var(--green); outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .home-service-row.card-link:is(:hover,:focus-visible) .home-service-photo > img { scale: 1.12; }
}
@media (max-width: 1100px) { .contact-card--surface { --contact-pad-y: 32px; --contact-pad-x: 32px; padding: 0; } }
@media (max-width: 480px) { .contact-card--surface { --contact-pad-y: 28px; --contact-pad-x: 24px; padding: 0; } }
