.home-page .hero { min-height:830px; }
.home-page .hero-copy { right:var(--gutter); max-width:none; padding-right:0; bottom:70px; }
.home-page .hero h1 { max-width:22ch; font-size:clamp(40px,4.5vw,64px); text-wrap:balance; }
.home-page .hero .intro { max-width:56ch; font-size:17px; }
.hero-definition { max-width:550px; margin-top:18px; font-size:15px; color:#5c5b58; }
.home-page .editorial-grid h2 { max-width:20ch; }
.proof-section h2 { margin-top:20px; }
.client-quote { margin:35px 0 0; padding:0 0 0 20px; border-left:2px solid var(--coral); max-width:365px; }
.client-quote p { font-size:20px; line-height:1.45; letter-spacing:-.02em; }
.proof-section .quote-attribution { margin:12px 0 0 22px; max-width:340px; color:#68655f; font:10px/1.6 var(--label-font); }
.home-page .building-section { height:320svh; }
.home-page .building-sticky { background:var(--paper); }
.home-page .building-heading h2 { max-width:none; }
.home-page .building-intro { max-width:76ch; margin-top:12px; font-size:15px; line-height:1.5; }
.home-page .building-instruction { position:static; margin-top:16px; }
.home-page .building-layout { height:calc(100% - 125px); }
.deep-water { --rule:rgba(243,240,232,.2); background:var(--deep); color:var(--paper); }
.deep-water .section-label,.deep-water .home-journal p { color:#b1bbd1; }
.deep-water .section-label i { background:var(--rule); }
.deep-water .editorial-grid p:not(.lead),.deep-water .invitation-copy p:not(.lead) { color:#bdc7d8; }
.deep-water .proof-section .quote-attribution { color:#bdc7d8; }
.deep-water .text-link { color:#b7c6ff; }
.deep-water .text-link:hover { color:var(--coral); }
.deep-water :focus-visible { outline-color:#b7c6ff; }
.invitation-section { padding-bottom:35px; }
.invitation-copy { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(36px,5vw,72px); margin-top:0; }
.invitation-copy h2 { font-size:clamp(29px,3vw,40px); max-width:20ch; text-wrap:balance; }
.invitation-copy p { max-width:60ch; }
.invitation-copy p+p { margin-top:18px; }
.invitation-copy .text-link { margin-top:30px; }
.home-journal { display:flex; gap:30px; justify-content:space-between; align-items:center; padding-top:35px; padding-bottom:35px; }
.home-journal h2 { font-size:27px; }
.home-journal p { margin-top:8px; color:#5c5b58; font-size:15px; }
.trace-key { display:flex; gap:25px; align-items:center; font:10px var(--label-font); color:#5c5b58; }
.trace-key span { display:flex; align-items:center; gap:7px; }
.trace-key span::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--blue); }
.trace-key span+span::before { background:var(--coral); }
.case-account { margin-top:44px; padding-top:36px; border-top:1px solid var(--rule); }
.case-account.editorial-grid { grid-template-columns:1fr; row-gap:40px; }
.case-account h3 { max-width:20ch; font-size:clamp(24px,2.4vw,30px); line-height:1.25; }
.case-account .client-quote { margin-top:22px; }
.case-account p[id] { scroll-margin-top:50px; }
.case-account .quote-attribution { margin:18px 0 0 22px; color:#68655f; font-size:13px; line-height:1.6; }
/* Service offerings: three ruled columns beneath the case study. */
.service-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(24px,3vw,44px); margin-top:56px; }
.service { padding-top:24px; border-top:1px solid var(--rule); }
.service h3 { font-size:clamp(20px,1.6vw,23px); font-weight:500; line-height:1.25; letter-spacing:-.02em; }
.service p { margin-top:14px; font-size:15px; line-height:1.65; color:#4e4d49; }
.case-phase-panels { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,2.8vw,30px); margin-top:44px; align-items:start; }
.case-phase-panel { border:1px solid var(--rule); background:var(--paper); scroll-margin-top:50px; transition:border-color .2s ease; }
.case-phase-panel:hover,.case-phase-panel[open] { border-color:var(--blue); }
.case-phase-trigger { list-style:none; cursor:pointer; padding:22px 24px; min-height:92px; box-sizing:border-box; display:grid; grid-template-columns:1fr auto; gap:6px 16px; align-items:center; }
.case-phase-trigger::-webkit-details-marker { display:none; }
.case-phase-description { grid-column:1; font-size:14px; line-height:1.4; color:#5c5b58; align-self:start; }
.case-phase-title { grid-column:1; font-size:clamp(15px,1.45vw,21px); font-weight:500; line-height:1.25; letter-spacing:-.02em; color:var(--ink); align-self:start; transition:color .2s ease; }
.case-phase-icon { grid-column:2; grid-row:1 / span 2; align-self:center; justify-self:center; position:relative; box-sizing:border-box; width:32px; height:32px; border-radius:50%; border:1px solid rgba(36,78,255,.35); color:var(--blue); font-size:0; line-height:0; user-select:none; transition:transform .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease; }
.case-phase-icon::before,.case-phase-icon::after { content:''; position:absolute; top:50%; left:50%; background:currentColor; border-radius:1px; transform:translate(-50%,-50%); }
.case-phase-icon::before { width:12px; height:1.5px; }
.case-phase-icon::after { width:1.5px; height:12px; }
.case-phase-panel:hover .case-phase-title,.case-phase-panel[open] .case-phase-title { color:var(--blue); }
.case-phase-panel[open] .case-phase-icon { transform:rotate(45deg); background:var(--blue); border-color:var(--blue); color:var(--paper); }
.case-phase-body { padding:18px 24px 24px; border-top:1px solid var(--rule); }
.case-phase-body p { font-size:15px; line-height:1.65; color:#4e4d49; }
.case-phase-body strong { color:var(--ink); font-weight:600; }
.people-hero h1 { max-width:1100px; }
.people-opening-detail { max-width:500px; font-size:16px; color:#5c5b58; }
.people-opening-detail p+p { margin-top:18px; }
.person-bio p+p { margin-top:16px; }
@media(max-width:1080px) and (min-width:901px) {
  .case-phase-trigger { padding:18px; }
  .case-phase-body { padding:16px 18px 20px; }
}
@media(max-width:900px) {
  .service-list { grid-template-columns:1fr; row-gap:40px; }
  .case-phase-panels { grid-template-columns:1fr; gap:14px; margin-top:32px; }
  .case-phase-trigger { padding:18px 20px; min-height:78px; }
  .case-phase-body { padding:16px 20px 20px; }
}
@media(max-width:759px) {
  .service-list { grid-template-columns:1fr; gap:32px; margin-top:40px; }
  .people-opening-detail { font-size:15px; }
  .home-page .hero { min-height:940px; height:940px; }
  .home-page .hero-copy { bottom:75px; }
  .home-page .hero h1 { font-size:clamp(38px,9.5vw,48px); }
  .home-page .hero .intro { font-size:16px; }
  .hero-definition { font-size:15px; margin-top:15px; }
  .home-page .hero .link-row { gap:18px; }
  .client-quote { max-width:350px; margin-top:26px; }
  .client-quote p { font-size:19px; }
  .home-page .building-section { height:300svh; }
  .home-page .building-heading h2 { font-size:27px; }
  .home-page .building-layout { height:calc(100% - 145px); }
  .home-page .building-instruction { font-size:9px; margin-top:10px; }
  .home-page .company-building>[data-building-scale],.home-page .company-building>text { display:none; }
  .invitation-copy { grid-template-columns:1fr; gap:28px; margin-top:0; }
  .home-journal { align-items:start; flex-direction:column; gap:20px; }
}
@media(max-height:600px) and (min-width:760px) {
  .home-page .building-heading h2 { font-size:25px; }
  .home-page .building-instruction { margin-top:9px; }
}
@media(prefers-reduced-motion:reduce) {
  .home-page .building-instruction { font-size:0; }
  .home-page .building-section { height:auto; }
  .home-page .building-layout { height:570px; }
  [data-art-pause] { display:none; }
}
@media(prefers-reduced-motion:reduce) and (max-width:759px) {
  .home-page .building-layout { height:auto; }
}

/* Case study: the three phases read as an open timeline, then the client's words. */
@media(min-width:901px) {
  .case-phase-panels { position:relative; margin-top:64px; }
  .case-phase-panels::before { content:''; position:absolute; top:-21px; left:4px; right:0; height:1px; background:var(--blue); opacity:.35; }
  .case-phase-panel { position:relative; }
  .case-phase-panel::before { content:''; position:absolute; top:-25px; left:0; width:9px; height:9px; border-radius:50%; background:var(--blue); }
  .case-account>div:first-child { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(36px,5vw,72px); align-items:start; }
  .case-account .client-quote { margin-top:0; max-width:none; }
  .case-account .client-quote p { font-size:clamp(24px,2.5vw,34px); line-height:1.25; }
}
