/* Homepage, using the portfolio's established type and palette. */
.home-page .opening { min-height: 740px; }
.home-page .opening-content { padding-top: 48px; padding-bottom: 70px; }
.home-page .opening h1 { font-size: clamp(100px, 13vw, 194px); margin-bottom: 34px; }
.home-page .opening-intro { max-width: 690px; }
.home-page .opening-role { font-size: clamp(20px, 2vw, 27px); line-height: 1.4; letter-spacing: -.45px; }
.home-page .opening-shade { background: linear-gradient(90deg, rgba(10,26,23,.68), rgba(10,26,23,.15) 90%), linear-gradient(0deg, rgba(8,23,20,.68), transparent 75%); }
.home-section { max-width: 1400px; margin: 0 auto; padding: 100px 6vw; }
.home-section h2 { font-size: clamp(30px, 3.2vw, 44px); line-height: 1.12; letter-spacing: -1.2px; }
.home-section .eyebrow { color: #586d5b; margin-bottom: 20px; font-size: 11px; letter-spacing: 1.8px; line-height: 1.6; }
.home-prose { max-width: 70ch; }
.home-introduction .home-prose { max-width: 960px; }
.home-prose p { font-size: 17px; line-height: 1.8; margin: 0 0 24px; text-wrap: pretty; }
.home-prose p:last-child { margin-bottom: 0; }
.home-prose .intro-lead { font-size: clamp(22px, 2.2vw, 29px); line-height: 1.5; letter-spacing: -.45px; margin-bottom: 26px; }
.core-section { background: #eef1e9; border-top: 1px solid #d9dfd3; border-bottom: 1px solid #d9dfd3; }
.core-heading { margin-bottom: 44px; }
.core-heading h2 { margin-bottom: 0; }
.pillar-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.pillar-card { min-width: 0; }
.pillar-image { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; background: #e9ede2; margin-bottom: 25px; }
.pillar-illustration { padding: 12px; }
.pillar-card h3 { font-size: clamp(22px, 2vw, 28px); line-height: 1.22; letter-spacing: -.6px; margin: 0 0 20px; max-width: 22ch; min-height: 2.44em; }
.pillar-card p { font-size: 16px; line-height: 1.8; margin: 0; text-wrap: pretty; }
.all-projects-link { display: inline-flex; align-items: center; gap: 24px; margin-top: 40px; padding: 12px 18px; border: 1px solid #6b816a; border-radius: 2px; font-size: 14px; line-height: 1.4; }
.all-projects-link span { font-size: 20px; line-height: 1; }
.all-projects-link:hover { background: #263f32; border-color: #263f32; color: #fff; }
.journey-section { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; gap: 38px 64px; }
.journey-header { grid-column: 1 / -1; }
.home-section .journey-header h2 { font-size: clamp(23px, 5.8vw, 44px); white-space: nowrap; max-width: none; margin-bottom: 0; }
.journey-image img { width: 100%; height: auto; aspect-ratio: 759 / 508; object-fit: contain; }
.journey-image figcaption { font-size: 12px; line-height: 1.6; color: #5d6e5e; margin-top: 16px; }
@media (min-width: 1500px) {
  .home-page .opening-content { padding-left: max(6vw, calc((100vw - 1250px) / 2)); padding-right: max(6vw, calc((100vw - 1250px) / 2)); }
}
@media (max-width: 1000px) {
  .pillar-grid { gap: 26px; }
  .pillar-card h3 { font-size: 24px; }
  .journey-section { column-gap: 36px; grid-template-columns: 1.15fr 1fr; }
}
@media (max-width: 900px) {
  .pillar-grid { grid-template-columns: 1fr; gap: 44px; }
  .pillar-card { max-width: 600px; }
  .pillar-card h3 { max-width: none; min-height: 0; margin-bottom: 14px; }
  .pillar-image { max-height: 400px; }
  .journey-section { grid-template-columns: 1fr; row-gap: 30px; }
  .journey-image { max-width: 600px; }
}
@media (max-width: 760px) {
  .home-page .opening { min-height: 640px; height: auto; }
  .home-page .opening-content { min-height: 640px; }
  .home-page .opening-baseline { display: block; }
  .home-section { padding-top: 64px; padding-bottom: 64px; }
}
@media (max-width: 700px) {
  .home-page .opening { min-height: 580px; }
  .home-page .opening-content { min-height: 580px; padding: 48px 6vw 64px; }
  .home-page .opening h1 { font-size: clamp(86px, 23vw, 150px); margin-bottom: 28px; }
  .home-page .opening-role { max-width: 27ch; font-size: 21px; }
  .home-page nav a { padding: 7px 0; }
  .home-section h2 { font-size: 32px; }
  .home-prose p { font-size: 16px; line-height: 1.8; }
  .home-prose .intro-lead { font-size: 23px; line-height: 1.5; }
  .core-heading { margin-bottom: 34px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .opening-video { visibility: hidden; }
}
