@font-face{font-family:Lato;src:url('assets/lato-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Lato;src:url('assets/lato-bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--orange:#ff5f00;--lime:#b6cf35;--ink:#24292c;--grey:#666c70;--white:#fff;--gutter:80px}
*{box-sizing:border-box}body{margin:0;font-family:Lato,Arial,sans-serif;color:var(--ink)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700}h2{font-size:64px;line-height:1.1}p{line-height:1.2}.container{width:calc(100% - var(--gutter)*2);max-width:1280px;margin-inline:auto}.eyebrow{font-size:15px;font-weight:700;text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--orange);color:white;padding:17px 20px 15px;border-radius:6px;min-height:54px;font-size:18px;font-weight:700}.logo{display:block;width:189px;height:63px}.hero{height:864px;position:relative;color:white;overflow:hidden;background:#000}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero::after{content:'';position:absolute;inset:0;background:rgba(17,23,27,.38)}.header{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;padding:30px}.header-contact{display:flex;gap:30px;font-weight:700;font-size:16px}.hero-content{position:relative;z-index:1;text-align:center;margin:154px auto 0;padding:0 20px}.hero-content .eyebrow{font-size:18px}.hero h1{font-size:72px;line-height:1.1;margin-top:29px}.hero-description{font-size:24px;margin-top:30px}.hero .button{margin-top:32px}.people{padding-top:96px;padding-bottom:50px}.people-intro{display:grid;grid-template-columns:1fr 1fr;gap:40px}.people .eyebrow,.who .eyebrow{color:var(--orange);font-size:13px}.people h2{font-size:72px;margin-top:28px}.intro-copy{padding-top:58px;padding-left:50px;max-width:481px;font-size:23px;color:var(--grey)}.intro-copy p+p{margin-top:0}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:79px}.principles article{border-top:2px solid #e0e3df;padding-top:28px}.number{color:var(--orange);font-size:16px;font-weight:700}.principles h3{font-size:27px;margin-top:17px}.principles article>p:last-child{font-size:19px;color:var(--grey);margin-top:18px}.panel{position:relative;overflow:hidden}.panel-content{position:relative;z-index:1}.pattern{position:absolute;pointer-events:none}.pattern img{display:block}.expertise{background:var(--orange);color:white;padding:90px 0 52px}.expertise h2{margin-top:26px}.expertise-pattern{left:10.83%;top:-4.31%}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:70px}.service{background:white;border-radius:10px;color:var(--ink);overflow:hidden;min-width:0}.service-photo{display:block;width:100%;height:auto;aspect-ratio:400/266;object-fit:cover}.service-copy{padding:28px 24px 20px;min-height:270px;display:flex;flex-direction:column}.service h3{font-size:23px;line-height:1.2}.service p{font-size:20px;color:var(--grey);margin-top:19px;max-width:320px}.service:nth-child(2) p{max-width:296px}.service:nth-child(3) p{max-width:258px}.service strong{font-size:16px;margin-top:auto;padding-top:24px}.expertise-note{font-size:24px;font-weight:700;margin-top:54px}.values{background:var(--lime);padding:85px 0 116px}.values h2{margin-top:27px}.values-pattern{left:37.22%;top:-19.71%}.approach{display:grid;grid-template-columns:460px 1fr;gap:80px;margin-top:51px}.values-photo{position:relative;overflow:hidden;height:450px}.values-photo img{position:absolute;width:230.43%;height:336.51%;max-width:none;left:-54.78%;top:-99.97%;transform:scaleX(-1)}.steps{padding-top:8px}.steps article{display:grid;grid-template-columns:40px 1fr;gap:25px;min-height:150px}.steps article>span{font-size:18px;font-weight:700;padding-top:7px}.steps h3{font-size:36px}.steps p{font-size:21px;margin-top:20px;max-width:535px}.frameworks{background:var(--ink);color:white;padding:80px 0 112px}.frameworks .eyebrow{color:var(--lime)}.frameworks h2{font-size:49px;line-height:1.2;margin-top:20px}.frameworks-description{font-size:21px;color:#d1d5d5;margin-top:17px}.frameworks-pattern{left:0;top:-56px;transform:none}.frameworks-pattern img{transform:rotate(-90deg) translateX(-100%);transform-origin:top left}.tools{list-style:none;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:20px;margin:52px 10px 0 0}.tools li{background:#343a3d;border-radius:6px;padding:28px 24px;font-size:24px;font-weight:700;white-space:nowrap}.who{padding:80px 0;display:grid;grid-template-columns:1fr 502px;gap:80px}.who h2{font-size:60px;line-height:1.2;margin-top:25px;white-space:nowrap}.accent-line{display:block;margin-top:36px;margin-bottom:13px}.who h3{font-size:32px}.role{font-size:17px;color:var(--orange);font-weight:700;margin-top:9px}.bio{font-size:22px;color:var(--grey);max-width:521px;margin-top:28px}.who .button{margin-top:29px}.dave-photo{position:relative;overflow:hidden;height:558px}.dave-photo img{height:100%;width:100%;object-fit:cover;object-position:right center;position:absolute;inset:0}.contact{background:var(--orange);color:white;padding:95.5px 0 116px}.contact h2{font-size:66px;margin-top:26px}.contact-pattern{left:10.9%;top:-32.56%;transform:scaleX(-1)}.contact-content{display:grid;grid-template-columns:1fr 500px;gap:80px;align-items:center}.contact-details .phone{font-size:39px;font-weight:700}.contact-details .email{font-size:26px;margin-top:26px}.contact-prompt{font-size:21px;font-weight:700;margin-top:30px}footer{min-height:120px;padding:28.5px 30px;display:flex;justify-content:space-between;align-items:center;background:var(--ink);color:#c5c9ca;font-size:16px;gap:24px}.copyright{font-size:14px}
@media(min-width:1441px){.hero-photo{object-position:center}.pattern{max-width:none}}
@media(max-width:1199px){:root{--gutter:40px}.hero h1{font-size:60px}.people h2{font-size:60px}.intro-copy{padding-left:0}.principles,.services{gap:24px}.principles h3{font-size:23px}.desktop-break{display:none}.service h3{font-size:21px}.service-copy{min-height:300px;padding:24px 20px}.approach{grid-template-columns:40% 1fr;gap:40px}.frameworks h2{font-size:44px}.tools{grid-template-columns:repeat(3,1fr)}.who{grid-template-columns:1fr 40%;gap:40px}.who h2{font-size:44px;white-space:normal}.contact-content{grid-template-columns:1fr 45%;gap:40px}.contact h2{font-size:56px}.contact-details .email{font-size:21px}.contact-details .phone{font-size:34px}}
@media(max-width:900px){.header-contact{flex-direction:column;gap:10px;text-align:right}.hero{height:760px}.hero-content{margin-top:155px}.hero h1{font-size:52px}.people-intro,.principles,.services,.approach,.who,.contact-content{grid-template-columns:minmax(0,1fr)}.people-intro{gap:32px}.intro-copy{padding:0;max-width:650px}.people h2 br:nth-of-type(2){display:none}.principles{gap:32px;margin-top:48px}.services{gap:32px;max-width:600px}.service-copy{min-height:240px}.service p,.service:nth-child(2) p,.service:nth-child(3) p{max-width:100%}.values-photo{width:460px;max-width:100%}.steps article{min-height:0;margin-bottom:32px}.steps article:last-child{margin-bottom:0}.who{gap:40px}.who h2{font-size:54px}.dave-photo{width:502px;max-width:100%}.contact-content{gap:40px}.values,.expertise,.frameworks,.contact{padding-block:70px}.who{padding-block:70px}.contact-details .email{font-size:26px}footer{flex-wrap:wrap}.tools{margin-right:0}.frameworks-pattern{opacity:.8}}
@media(max-width:600px){:root{--gutter:20px}h2{font-size:38px}.eyebrow{font-size:12px}.header{padding:20px;align-items:center;gap:12px;flex-direction:row}.header .logo{width:clamp(100px,30vw,150px);height:auto;flex-shrink:0}.header-contact{font-size:clamp(10px,3vw,13px);text-align:right;gap:6px;margin-left:auto;white-space:nowrap}.hero{height:720px}.hero-content{margin-top:150px}.hero-content .eyebrow{font-size:13px}.hero h1{font-size:42px;margin-top:24px}.hero h1 br{display:none}.hero-description{font-size:20px;margin-top:24px}.hero .button{margin-top:28px}.hero-photo{object-position:50% center}.people{padding-block:56px}.people h2{font-size:44px;margin-top:24px}.people h2 br:nth-of-type(2){display:block}.intro-copy{font-size:20px}.intro-copy p+p{margin-top:20px}.principles h3{font-size:25px}.principles article>p:last-child{font-size:18px}.expertise,.values,.frameworks,.contact{padding-block:56px}.expertise h2,.values h2{margin-top:24px}.services{margin-top:36px;gap:24px}.service-copy{min-height:260px;padding:24px}.service h3{font-size:22px}.service p{font-size:19px}.expertise-note{font-size:20px;margin-top:32px}.approach{gap:36px;margin-top:36px}.values-photo{width:100%;height:auto;aspect-ratio:460/450}.steps article{grid-template-columns:28px 1fr;gap:16px}.steps h3{font-size:30px}.steps p{font-size:19px;margin-top:14px}.steps article>span{font-size:16px}.frameworks h2{font-size:36px;margin-top:24px}.frameworks-description{font-size:19px;margin-top:24px}.tools{grid-template-columns:1fr;gap:12px;margin-top:32px}.tools li{padding:22px 24px;font-size:22px}.who{padding-block:56px;gap:32px}.who h2{font-size:38px}.accent-line{margin-top:28px}.bio{font-size:20px;margin-top:24px}.dave-photo{height:auto;aspect-ratio:502/558}.contact h2{font-size:44px;margin-top:24px}.contact-content{gap:36px}.contact-details .phone{font-size:32px}.contact-details .email{font-size:clamp(17px,5vw,24px);overflow-wrap:anywhere;margin-top:20px}.contact-prompt{font-size:19px;margin-top:24px}footer{padding:32px 20px;flex-direction:column;align-items:flex-start;gap:24px;font-size:15px}.pattern{opacity:.65}}

.who>*,.contact-content>*{min-width:0}

a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid currentColor;outline-offset:5px}

.button:hover{background:var(--lime);color:var(--white)}
.header-contact a:hover,.contact-details a:hover{text-decoration:underline;text-underline-offset:4px}

@media(prefers-reduced-motion:no-preference){
  .hero-photo{animation:hero-image-arrival 1200ms ease-out both}
  @keyframes hero-image-arrival{from{opacity:0}to{opacity:1}}
  .header{animation:arrival 650ms cubic-bezier(.22,1,.36,1) both}
  .hero-content{animation:arrival 800ms cubic-bezier(.22,1,.36,1) both}
  .reveal{transition:opacity 700ms ease-out,transform 700ms cubic-bezier(.22,1,.36,1)}
  .reveal-pending{opacity:0;transform:translateY(10px)}
  @keyframes arrival{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
}

/* Approved desktop frame: preserve its section rhythm with fluid layouts. */
@media(min-width:1200px){
  .people{padding-bottom:48px}
  .expertise{min-height:1020px}
  .values{padding-bottom:110px}
  .who{padding-top:100px;padding-bottom:80px}
  .who h2{margin-top:29.4px}
  .accent-line{margin-top:37px;margin-bottom:20.5px}
  .role{margin-top:5.6px}
  .bio{margin-top:29.6px}
  .who .button{margin-top:28.5px}
  .contact{padding-bottom:115.5px}
}
/* Keep the approach photograph proportional as its container narrows. */
@media(min-width:901px) and (max-width:1199px){.values-photo{height:auto;aspect-ratio:460/450}}
@media(min-width:1200px){.contact-details{transform:translateY(13px)}}

/* Client revisions: unnumbered principles and unchanged approach alignment. */
.principles article{padding-top:28px}
.principles h3{margin-top:0}
.steps article>div{grid-column:2}
.dave-photo .updated-portrait{object-position:80% center}
@media(min-width:1200px){
  .people{padding-bottom:70.6px}
  .principles{margin-top:81px}
  .principles article{padding-top:46px}
  .principles article>p:last-child{margin-top:11.6px}
}
.contact-dialog{border:0;border-radius:12px;background:white;color:var(--ink);padding:40px;width:440px;max-width:calc(100vw - 40px);max-height:calc(100dvh - 40px);box-shadow:0 24px 90px #11171b40;overflow:auto}
.contact-dialog::backdrop{background:#11171b80}
.contact-dialog-open{overflow:hidden}
.contact-dialog .eyebrow{color:var(--orange);font-size:12px}
.contact-dialog h2{font-size:34px;line-height:1.1;margin-top:16px}
.contact-dialog>p:last-of-type{font-size:17px;line-height:1.4;color:var(--grey);margin-top:12px}
.dialog-close{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:40px;height:40px;border:0;background:transparent;border-radius:50%;font:28px/1 Lato,Arial,sans-serif;color:var(--grey);cursor:pointer}
.contact-options{display:grid;gap:12px;margin-top:28px}
.contact-option{display:block;padding:20px;border:1px solid #e0e3df;border-radius:6px;background:#fafbf8}
.contact-option strong{display:flex;align-items:center;justify-content:space-between;font-size:20px;line-height:1.2}
.contact-option>span{display:block;font-size:15px;line-height:1.4;color:var(--grey);margin-top:8px;overflow-wrap:anywhere}
.contact-option:hover{border-color:var(--orange);background:#fff7f2}
.dialog-close:hover{background:#f0f2ed}
button:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
@media(max-width:600px){.contact-dialog{padding:32px 24px}.contact-dialog h2{font-size:30px}.contact-option{padding:18px}}
@media(prefers-reduced-motion:no-preference){.contact-dialog[open]{animation:contact-arrival 180ms ease-out}.contact-dialog[open]::backdrop{animation:contact-backdrop 180ms ease-out}@keyframes contact-arrival{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes contact-backdrop{from{opacity:0}to{opacity:1}}}
