.home{
  --paper:#f3f0e9;--paper-lift:#faf8f2;--paper-sink:#e4dfd3;
  --ink:#282b24;--ink-2:#57594e;--ink-3:#67695e;--line:#d2d0c5;
  --clay:#eb0071;--clay-deep:#9a1c37;--night:#262c25;--sage:#dde1d5;
  --serif:"Instrument Serif",Georgia,serif;--frame:1600px;
  --space-section:clamp(5rem,10vw,10rem);--edge:clamp(1.25rem,4vw,4rem);
  --type-large:clamp(3.5rem,6vw,7rem);--motion:650ms;--ease:cubic-bezier(.22,1,.36,1);
}
.home::after{display:none}
.home .frame{width:100%;max-width:var(--frame);margin-inline:auto;padding-inline:var(--edge)}
.home h1,.home h2,.home h3{font-family:var(--sans);font-weight:400;letter-spacing:-.065em;line-height:1.04;text-transform:none}
.home h2{font-size:var(--type-large)}
.home main em{font-family:inherit;font-style:normal;font-weight:inherit;letter-spacing:inherit}
.home p{margin:0}
.home a:focus-visible,.home button:focus-visible,.home summary:focus-visible{outline:2px solid currentColor;outline-offset:7px}
.home a:active{opacity:.7}
.home .eyebrow{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;line-height:1.5}
.home .masthead__inner{max-width:var(--frame);padding-inline:var(--edge);min-height:96px}
.home .masthead__bg{background:var(--paper);backdrop-filter:none;border-bottom:1px solid var(--line)}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:.6rem;border-bottom:1px solid currentColor;font-size:.85rem;line-height:1.4;transition:color 200ms}
.text-link>span{display:inline-block;transition:transform 300ms var(--ease)}
.text-link:hover{color:var(--clay)}
.text-link:hover>span{transform:translate(3px,-3px)}
.arrival__heading{display:grid;grid-template-columns:1fr .3fr;gap:3rem;align-items:end;padding-block:2.5rem 4rem}
.arrival h1{font-size:clamp(4rem,9vw,10rem);line-height:.98;letter-spacing:-.075em}
.arrival h1 .line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.arrival h1 .line>span{display:block}
.arrival h1 em{color:var(--clay);font-size:1em;line-height:inherit}
.arrival__aside{padding:0 0 .5rem;max-width:340px}
.arrival__aside p{font-size:clamp(1.05rem,1.4vw,1.4rem);line-height:1.45;letter-spacing:-.025em;margin-block:1.5rem 1.5rem}
.arrival__copy{margin-block:1.5rem}
.arrival__copy p{display:inline;margin:0}
.small-mark{font-size:2.5rem;line-height:1;color:var(--clay)}
.arrival__scene{position:relative;margin-inline:var(--edge);height:clamp(360px,48vw,720px);overflow:hidden;background:var(--night)}
.arrival__scene>img{width:100%;height:115%;object-fit:cover;object-position:50% 52%;transform:translateY(var(--scene-y,-5%));will-change:transform}
.arrival__scene::after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.55));pointer-events:none}
.arrival__scene figcaption{position:absolute;z-index:1;inset:auto 2rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--paper-lift);font-size:.75rem}
.arrival__scene figcaption>span{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}
.arrival__scene figcaption a{padding:.5rem 0}
.arrival__scene figcaption a span{margin-left:2rem}
.company{display:grid;grid-template-columns:1.5fr repeat(3,1fr);align-items:center;gap:3rem;padding-block:3rem 5rem}
.company p{font-size:.85rem;line-height:1.6;color:var(--ink-2)}
.company img{width:100%;max-width:175px;height:72px;object-fit:contain;justify-self:center;filter:brightness(0);opacity:.65}
.company img:nth-of-type(2){height:86px;max-width:105px}
.company img:nth-of-type(3){max-width:120px}
.projects{background:var(--paper);color:var(--ink);padding-block:var(--space-section);scroll-margin-top:90px}
.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:2rem;align-items:start;margin-bottom:4.5rem}
.section-heading>.eyebrow{padding-top:1rem}
.section-heading>.text-link{grid-column:2;justify-self:start}
.project-list{display:grid;gap:2rem}
.project{display:grid;grid-template-columns:38% 62%;background:var(--paper-lift);color:var(--ink);overflow:hidden;position:relative}
.project--raymond{background:var(--paper-lift)}
.project--bryn{background:var(--paper-lift)}
.project__description{padding:clamp(1.5rem,3vw,3rem);display:flex;flex-direction:column;align-items:flex-start}
.project__top{width:100%;display:flex;justify-content:space-between;gap:1rem;font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3rem}
.project h3{font-size:1.25rem;letter-spacing:-.035em}
.project h3 small{font-size:.6em;letter-spacing:0}
.project h3>span{display:block;font-size:clamp(1.9rem,2.9vw,3.2rem);line-height:1.1;margin-top:1rem;letter-spacing:-.05em}
.project__description>p{font-size:.9rem;line-height:1.6;margin:1.5rem 0;max-width:310px;color:var(--ink-2)}
.project__description .text-link{margin-bottom:3rem}
.project__services{font-size:.6rem;margin-top:auto;line-height:1.5;letter-spacing:.025em}
.project__image{position:relative;overflow:hidden;display:flex;align-items:center;min-width:0}
.project__image img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;transition:transform 800ms var(--ease)}
.project__image:hover img{transform:scale(1.035)}
.project__open{position:absolute;right:1.5rem;bottom:1.5rem;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:1.4rem;transition:transform 300ms var(--ease)}
.project__image:hover .project__open{transform:rotate(45deg)}
.client-note{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:center;gap:clamp(2rem,5vw,6rem);padding-block:var(--space-section);border-bottom:1px solid var(--line)}
.client-note__portrait{aspect-ratio:4/5;overflow:hidden}
.client-note__portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:54% center}
.client-note figure{min-width:0;margin:0}
.client-note blockquote{font-size:clamp(2rem,3.5vw,4rem);line-height:1.2;letter-spacing:-.055em;max-width:920px}
.client-note blockquote em{color:var(--clay)}
.client-note figcaption{display:flex;flex-direction:column;font-size:.7rem;gap:.2rem;margin-top:2rem}
.client-note figcaption span:last-child{color:var(--ink-2)}
.expertise{display:grid;grid-template-columns:1fr 1.15fr;gap:6rem;padding-block:var(--space-section)}
.expertise h2{font-size:clamp(2.8rem,4vw,4.7rem);margin-top:2rem}
.expertise__heading>p:not(.eyebrow){max-width:320px;margin:2rem 0 1rem;font-size:.95rem;color:var(--ink-2)}
.expertise details{border-top:1px solid var(--line)}
.expertise details:last-child{border-bottom:1px solid var(--line)}
.expertise summary{display:flex;align-items:center;gap:1.5rem;list-style:none;cursor:pointer;padding-block:1.75rem;transition:color 200ms}
.expertise summary::-webkit-details-marker{display:none}
.expertise summary:hover{color:var(--clay)}
.expertise summary h3{font-size:clamp(1.2rem,1.8vw,2rem);letter-spacing:-.04em;flex:1}
.expertise__number{font-size:.65rem;color:var(--ink-2)}
.disclosure-arrow{font-size:1.7rem;transition:transform 200ms ease-out}
.expertise [open] .disclosure-arrow{transform:rotate(90deg);color:var(--clay)}
.expertise__body{padding:0 2.5rem 2rem}
.expertise__body>p{font-size:.95rem;color:var(--ink-2);line-height:1.7;margin-bottom:1rem;max-width:470px}
.expertise details[open] .expertise__body{animation:detail-enter 300ms var(--ease)}
@keyframes detail-enter{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.dispatches{display:grid;grid-template-columns:1fr 2fr;gap:4rem;padding-block:1rem var(--space-section)}
.dispatches__heading h2{font-size:clamp(3rem,4.5vw,5rem);margin-block:2rem}
.dispatch{display:grid;grid-template-columns:140px 1fr 24px;gap:2rem;align-items:center;border-top:1px solid var(--line);padding-block:1.5rem}
.dispatch:last-child{border-bottom:1px solid var(--line)}
.dispatch>img{height:110px;width:140px;object-fit:cover;transition:transform 500ms var(--ease)}
.dispatch:hover>img{transform:scale(.96)}
.dispatch .eyebrow{font-size:.6rem;color:var(--ink-2);margin-bottom:.75rem}
.dispatch h3{font-size:clamp(1.2rem,1.8vw,2rem);letter-spacing:-.04em;line-height:1.2}
.dispatch>span{font-size:1.75rem;transition:transform 300ms var(--ease)}
.dispatch:hover>span{transform:translate(4px,-4px);color:var(--clay)}
.invitation{background:var(--paper-lift);color:var(--ink);padding-block:4rem}
.invitation h2{font-size:clamp(5rem,10vw,11rem);line-height:.95;margin-block:4rem;letter-spacing:-.07em}
.invitation h2 em{font-size:1em;color:var(--clay)}
.invitation__bottom{display:flex;align-items:end;justify-content:space-between;gap:2rem;border-top:1px solid var(--line);padding-top:2rem}
.invitation__bottom p{font-size:.8rem;line-height:1.7}
.invitation__bottom p:last-child{text-align:right;font-size:.7rem}
.invitation__bottom a{display:flex;align-items:center;gap:3rem;border-bottom:1px solid currentColor;padding-bottom:.5rem;font-size:1.15rem}
.invitation__bottom a span{color:var(--clay);font-size:2rem;transition:transform 300ms var(--ease)}
.invitation__bottom a:hover span{transform:translate(5px,-5px)}
.home .foot{background:var(--paper);color:var(--ink)}
.home .foot__inner{max-width:var(--frame);padding-inline:var(--edge)}
.home .foot__nav a,.home .foot__meta,.home .foot__brand p,.home .foot__legal,.home .foot__nav-label{color:var(--ink-2)}
.home .foot__legal{border-color:var(--line)}
.home .mark--foot .mark__text{font-size:1.5rem;color:var(--ink)}
/* Content is visible without JavaScript. Motion only engages when supported. */
@media(prefers-reduced-motion:no-preference){
  .home .arrival h1 .line>span{animation:arrival-type 850ms var(--ease) both}
  .home .arrival h1 .line:nth-child(2)>span{animation-delay:120ms}
  .home .arrival__aside{animation:arrival-copy 750ms var(--ease) 180ms both}
  .home .arrival__scene{animation:arrival-copy 900ms var(--ease) 180ms both}
}
@keyframes arrival-type{from{transform:translateY(110%)}to{transform:translateY(0)}}
@keyframes arrival-copy{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(min-width:1100px) and (min-height:760px) and (prefers-reduced-motion:no-preference){
  .project{position:sticky;top:115px}
  .project:nth-child(2){top:135px}
  .project:nth-child(3){top:155px}
  .project.enter-ready{transform:none}
}
@media(max-width:1000px){
  .arrival__heading{grid-template-columns:1fr .38fr;gap:2rem}
  .project{grid-template-columns:42% 58%}
  .project__top{margin-bottom:2rem}
  .project__description .text-link{margin-bottom:2rem}
  .expertise{gap:3rem}
  .dispatches{grid-template-columns:1fr 1.6fr;gap:2rem}
  .dispatch{grid-template-columns:100px 1fr 18px;gap:1rem}
  .dispatch>img{width:100px;height:90px}
}
@media(max-width:700px){
  .home .masthead__inner{min-height:76px}
  .arrival__heading{grid-template-columns:1fr;gap:2rem;padding-block:2.5rem}
  .arrival h1{font-size:clamp(2.75rem,14vw,6rem)}
  .arrival__aside{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:end;max-width:none;padding:0}
  .arrival__aside .small-mark{display:none}
  .arrival__aside p{margin:0;max-width:250px;font-size:.95rem}
  .arrival__aside .text-link{font-size:.7rem;gap:1rem;max-width:120px}
  .arrival__scene{height:400px;margin-inline:0}
  .arrival__scene>img{object-position:67% 50%}
  .arrival__scene figcaption{inset:auto 1.25rem 1rem;align-items:end}
  .arrival__scene figcaption>span{max-width:70px}
  .arrival__scene figcaption a{font-size:.65rem}
  .company{grid-template-columns:repeat(3,1fr);gap:1.5rem;padding-block:1rem 4rem}
  .company>p{grid-column:1/-1;font-size:.75rem}
  .company>p br{display:none}
  .company img{height:55px}
  .company img:nth-of-type(2){height:70px;max-width:80px}
  .company img:nth-of-type(3){max-width:95px}
  .section-heading{grid-template-columns:1fr;gap:1.5rem;margin-bottom:3rem}
  .section-heading>.text-link{grid-column:1}
  .section-heading h2{font-size:clamp(3rem,11vw,4.7rem)}
  .project{display:flex;flex-direction:column}
  .project__description{padding:1.5rem}
  .project__top{margin-bottom:2rem}
  .project h3>span{font-size:2.5rem}
  .project__description>p{max-width:100%}
  .project__description .text-link{margin-bottom:1.5rem}
  .project__image{margin:0 1rem 1rem}
  .project__image img{width:100%;height:auto}
  .project__open{width:40px;height:40px;right:.5rem;bottom:.5rem}
  .client-note{grid-template-columns:1fr;gap:2rem}
  .client-note__portrait{width:100%;max-width:420px;aspect-ratio:4/3}
  .client-note blockquote{font-size:2.2rem}
  .expertise{grid-template-columns:1fr;gap:3rem}
  .expertise h2{font-size:3rem}
  .expertise summary{gap:1rem;padding-block:1.5rem}
  .expertise summary h3{font-size:1.3rem}
  .expertise__body{padding:0 0 1.5rem 2rem}
  .dispatches{grid-template-columns:1fr;gap:2rem}
  .dispatches__heading h2{font-size:3.5rem;margin-block:1.5rem}
  .dispatch{grid-template-columns:80px 1fr 18px}
  .dispatch>img{width:80px;height:90px}
  .dispatch h3{font-size:1.2rem}
  .dispatch .eyebrow{font-size:.55rem}
  .invitation{padding-block:3rem}
  .invitation h2{font-size:clamp(4.1rem,13vw,6rem);margin-block:3rem}
  .invitation__bottom{align-items:start;flex-direction:column;gap:1.5rem}
  .invitation__bottom p:last-child{text-align:left}
  .invitation__bottom a{font-size:1rem;gap:2rem}
}
@media(prefers-reduced-motion:reduce){
  .home *, .home *::before,.home *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .home .enter-ready{opacity:1;transform:none}
  .arrival__scene>img{transform:translateY(-5%);will-change:auto}
}

.projects--index{padding-top:4rem}

.project:focus-within{z-index:2}

.project em{font-family:inherit;font-style:normal;font-weight:inherit;letter-spacing:inherit}

.project__image{align-items:stretch}
.project__image:hover .project-board__identity img{transform:none}
.project__image .project-board__caption{padding-right:36px}

/* Phone layouts use readable supporting type and a consistent section rhythm. */
@media(max-width:700px){
 .home{--space-section:5rem}
 .home .eyebrow,.project__top,.project__services,.expertise__number,.dispatch .eyebrow{font-size:.875rem;line-height:1.5;letter-spacing:.04em}
 .home .text-link{font-size:1rem;min-height:44px}
 .arrival__heading{gap:2.5rem;padding-block:3rem}
 .arrival__aside{display:flex;flex-direction:column;align-items:flex-start;gap:1.75rem}
 .arrival__aside p{font-size:1.0625rem;line-height:1.75;max-width:none}
 .arrival__aside .text-link{max-width:none}
 .arrival__scene{height:320px}
 .arrival__scene figcaption{align-items:flex-start;flex-direction:column;gap:.25rem}
 .arrival__scene figcaption>span{font-size:.875rem;max-width:none}
 .arrival__scene figcaption a{font-size:1rem}
 .company{padding-block:3rem 4rem}
 .project__description>p,.expertise__heading>p:not(.eyebrow),.expertise__body>p{font-size:1.0625rem;line-height:1.75}
 .company>p{font-size:1rem}
 .section-heading{gap:1.75rem;margin-bottom:3rem}
 .section-heading>.eyebrow{padding-top:0}
 .project__top{flex-wrap:wrap;margin-bottom:2rem}
 .project h3 small{font-size:.875rem}
 .project__services{margin-top:.5rem}
 .client-note{gap:2.5rem}
 .client-note blockquote{font-size:1.875rem;line-height:1.3;letter-spacing:-.035em}
 .client-note figcaption{font-size:1rem;line-height:1.5;gap:.375rem;margin-top:1.5rem}
 .expertise{gap:3rem}
 .expertise h2,.dispatches__heading h2{margin-block:2rem}
 .expertise__body{padding-left:0}
 .dispatches{padding-top:0;gap:3rem}
 .dispatch{grid-template-columns:1fr 24px;gap:1.5rem;padding-block:2.5rem}
 .dispatch>img{grid-column:1/-1;width:100%;height:160px}
 .dispatch h3{font-size:1.5rem;line-height:1.3}
 .invitation{padding-block:5rem}
 .invitation h2{margin-block:2rem}
 .invitation__bottom p,.invitation__bottom p:last-child{font-size:1rem;line-height:1.6}
 .invitation__bottom a{min-height:48px;font-size:1.125rem}
 .arrival__copy{margin:0}
 .arrival__copy p{display:block}
 .arrival__copy p+p{margin-top:1.5rem}
 .home h2{line-height:1.12}
 .project-list{gap:3rem}
 .project__description{padding:2rem 1.5rem}
 .project h3>span{margin-top:1.5rem;line-height:1.15}
 .project__description>p{margin-block:2rem}
 .project__description .text-link{margin-bottom:2rem}
 .expertise__heading>p:not(.eyebrow){margin-bottom:2rem}
 .expertise summary{padding-block:2rem}
 .expertise summary h3{line-height:1.35}
 .expertise__body{padding-bottom:2.5rem}
 .expertise__body>p{margin-bottom:2rem}
 .dispatch .eyebrow{margin-bottom:1rem}
 .invitation__bottom{gap:2.5rem;padding-top:2.5rem}
}

/* Mobile cards remain readable at their full height, then overlap on scroll. */
@media(max-width:700px) and (prefers-reduced-motion:no-preference){
 .project-list--stacked{isolation:isolate}
 .project-list--stacked .project{position:sticky;top:var(--stack-top);box-shadow:0 -1px 0 var(--line)}
 .project-list--stacked .project.enter-ready{transform:none}
}
