.projects-page{--project-muted:#66655f;--project-line:#ceccc3;background:var(--paper)}
.projects-page .site-header{color:var(--ink);border-bottom-color:var(--project-line);background:var(--paper)}
.projects-page .site-header.is-scrolled{background:rgba(241,239,233,.96)}
.projects-page .brand img{filter:none}
.projects-page .desktop-nav a[aria-current]:after{right:0}
.projects-page .desktop-nav a,.projects-page .header-cta{font-size:.75rem}
.projects-page.menu-open .site-header{color:#fff;background:var(--ink);border-bottom-color:rgba(255,255,255,.15)}
.projects-page.menu-open .brand img{filter:brightness(0) invert(1)}
.projects-page :focus-visible{outline:2px solid #817256;outline-offset:6px}
.projects-page [hidden]{display:none!important}
.projects-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.portfolio-shell{max-width:1770px;margin:0 auto;padding:0 var(--gutter)}
.project-eyebrow{margin:0;font-size:.75rem;font-weight:500;line-height:1.6;letter-spacing:.17em;text-transform:uppercase;color:var(--project-muted)}
.portfolio-intro{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(250px,.75fr);align-items:end;gap:40px;padding-top:154px;padding-bottom:45px}
.portfolio-intro .project-eyebrow{margin-bottom:22px}
.portfolio-intro h1{margin:0;font-size:clamp(3.5rem,7.7vw,8rem);font-weight:400;letter-spacing:-.06em;line-height:1.03}
.portfolio-intro h1 em{font-family:var(--serif);font-weight:400;color:#81745e;letter-spacing:-.055em}
.portfolio-intro>p{margin:0 0 7px;max-width:320px;justify-self:end;font-size:1rem;line-height:1.85;color:var(--project-muted)}
.portfolio-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px;border-top:1px solid var(--project-line);margin-bottom:24px}
.portfolio-filters{display:flex;flex-wrap:wrap;align-items:center;gap:0 32px;min-width:0;max-width:100%}
.portfolio-filters button{position:relative;display:flex;align-items:baseline;gap:10px;min-height:54px;padding:10px 0;border:0;background:transparent;color:var(--project-muted);cursor:pointer;font-size:.875rem;white-space:nowrap}
.portfolio-filters button:after{content:"";position:absolute;left:0;right:0;bottom:7px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s}
.portfolio-filters button[aria-pressed=true]{color:var(--ink)}
.portfolio-filters button[aria-pressed=true]:after,.portfolio-filters button:hover:after{transform:scaleX(1)}
.portfolio-filters sup{position:relative;top:-.22em;font-size:.75rem;line-height:1;color:#81745e;font-variant-numeric:tabular-nums}
.portfolio-count{margin:0;flex:none;color:var(--project-muted);font-size:.875rem;font-variant-numeric:tabular-nums}
.portfolio-index-label{margin:0;color:var(--project-muted);font-size:.875rem}
.portfolio-search{display:flex;align-items:center;gap:30px;max-width:720px;margin:0 0 34px}
.portfolio-search>label{flex:none;color:var(--project-muted);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.portfolio-search-field{display:flex;align-items:center;gap:12px;flex:1;min-width:0;border-bottom:1px solid #b5afa2}
.portfolio-search-field svg{flex:none;color:#81745e}
.portfolio-search input{width:100%;min-width:0;border:0;background:transparent;padding:15px 0;color:var(--ink);font:inherit;font-size:.875rem;line-height:1.5;border-radius:0}
.portfolio-search input::placeholder{color:var(--project-muted);opacity:1}
.portfolio-search input::-webkit-search-cancel-button{display:none}
.portfolio-clear{align-self:stretch;flex:none;padding:0 7px;border:0;background:none;color:var(--project-muted);font:inherit;font-size:.75rem;cursor:pointer;min-height:44px}
.portfolio-pagination{display:flex;flex-direction:column;align-items:center;gap:18px;margin:-50px 0 100px}
.portfolio-progress{margin:0;color:var(--project-muted);font-size:.875rem;font-variant-numeric:tabular-nums}
.portfolio-more,.portfolio-reset{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:56px;max-width:100%;padding:16px 26px;border:1px solid #bcb6a7;background:transparent;color:var(--ink);font:inherit;font-size:.875rem;cursor:pointer;line-height:1.5;transition:background .25s}
.portfolio-more:hover,.portfolio-reset:hover{background:#e0dbce}
.portfolio-more svg,.portfolio-reset svg{flex:none;width:21px;height:21px}
.portfolio-empty{padding:25px 0 100px;text-align:center}
.portfolio-empty h2{font-size:clamp(1.8rem,4vw,3rem);font-weight:400;letter-spacing:-.035em}
.portfolio-empty p{color:var(--project-muted);line-height:1.8;margin:0 auto 28px;max-width:430px}
.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:90px clamp(28px,4vw,70px);align-items:start;padding-bottom:125px;scroll-margin-top:110px}
.portfolio-card{min-width:0;margin:0}
.portfolio-card.is-featured{grid-column:1/-1}
.portfolio-card.is-offset{padding-top:118px}
.portfolio-card>a{display:block}
.portfolio-photo{position:relative;display:block;aspect-ratio:4/3;margin:0;overflow:hidden;background:#ddd9d0}
.portfolio-photo img{width:100%;height:100%;object-fit:cover;object-position:var(--image-position,50% 50%);transition:transform 1.1s cubic-bezier(.2,.65,.2,1)}
.portfolio-card.is-featured .portfolio-photo{aspect-ratio:1.9}
.portfolio-card.is-portrait .portfolio-photo{aspect-ratio:1.04}
.portfolio-card.is-endcap{grid-column:1/-1;padding-top:0}
.portfolio-card.is-endcap .portfolio-photo{aspect-ratio:1.9}
.portfolio-image-index{position:absolute;left:22px;top:22px;display:flex;align-items:center;gap:12px;padding:8px 11px;background:rgba(241,239,233,.96);color:var(--ink);font-size:.75rem;line-height:1.2;letter-spacing:.09em;font-variant-numeric:tabular-nums}
.portfolio-feature-label{display:none;padding-left:12px;border-left:1px solid #aaa394;font-size:.75rem;letter-spacing:.07em}
.portfolio-card.is-featured .portfolio-feature-label{display:inline}
.portfolio-caption{display:flex;justify-content:space-between;align-items:center;gap:22px;padding-top:23px}
.portfolio-caption>div{min-width:0}
.portfolio-caption .project-eyebrow{font-size:.75rem;letter-spacing:.11em;margin-bottom:9px}
.portfolio-caption h2{margin:0;font-size:clamp(1.5rem,2.45vw,2.75rem);line-height:1.19;font-weight:400;letter-spacing:-.035em;overflow-wrap:anywhere}
.portfolio-card.is-featured .portfolio-caption h2{font-size:clamp(2rem,3.4vw,3.75rem)}
.portfolio-caption p:last-child{margin:9px 0 0;color:var(--project-muted);font-size:.875rem;line-height:1.6}
.portfolio-open{display:grid;place-items:center;width:52px;aspect-ratio:1;flex:none;border:1px solid #bcb6a7;border-radius:50%;transition:background .3s,border-color .3s,transform .4s}
.portfolio-open .arrow-icon{width:21px;height:21px}
@media(hover:hover){.portfolio-card>a:hover .portfolio-photo img{transform:scale(1.035)}.portfolio-card>a:hover .portfolio-open{background:#e0dbce;border-color:#a79b82;transform:translate(2px,-2px)}}
.portfolio-card>a:focus-visible .portfolio-open{background:#e0dbce}
.portfolio-invitation{padding:clamp(65px,8vw,120px) var(--gutter);background:#ddd7c9}
.portfolio-invitation-inner{max-width:1634px;margin:auto}
.portfolio-invitation .project-eyebrow{margin-bottom:30px;color:#565248}
.portfolio-invitation a{display:flex;justify-content:space-between;align-items:center;gap:35px}
.portfolio-invitation h2{margin:0;font-size:clamp(3rem,7.9vw,8.5rem);font-weight:400;line-height:1.05;letter-spacing:-.05em}
.portfolio-invitation h2 em{font-family:var(--serif);font-weight:400;color:#716551}
.portfolio-invitation .portfolio-open{width:clamp(65px,10vw,155px);border-color:#a39c89}
.portfolio-invitation .portfolio-open svg{width:35%;height:35%;stroke-width:1}
.portfolio-invitation a:hover .portfolio-open{background:#eee9de;transform:translate(3px,-3px)}
.portfolio-invitation-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #b7af9d;padding-top:23px;margin-top:52px;color:#565248;font-size:.875rem;line-height:1.6}
.portfolio-invitation-bottom a{min-height:44px;white-space:nowrap}
/* Project stories share the same typography and frame rhythm as the index. */
.case-intro{padding-top:132px;padding-bottom:46px}
.case-back{display:inline-flex;align-items:center;gap:13px;min-height:44px;margin-bottom:34px;color:var(--project-muted);font-size:.875rem}
.case-back .arrow-icon{width:19px;height:19px;transform:rotate(180deg)}
.case-back:hover{text-decoration:underline;text-underline-offset:5px}
.case-heading{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(220px,.7fr);gap:40px;align-items:end}
.case-heading .project-eyebrow{margin-bottom:18px}
.case-heading h1{margin:0;max-width:1000px;font-size:clamp(2.75rem,6.2vw,6.75rem);font-weight:400;line-height:1.05;letter-spacing:-.048em;text-wrap:balance;overflow-wrap:anywhere}
.case-heading>p{max-width:300px;justify-self:end;margin:0 0 7px;color:var(--project-muted);font-size:1rem;line-height:1.85}
.case-hero{margin:0 auto;width:calc(100% - 2 * var(--gutter));max-width:min(calc(1770px - 2 * var(--gutter)),var(--image-native-width,1634px));overflow:hidden;background:#ddd9d0;aspect-ratio:1.83}
.case-hero img{width:100%;height:100%;object-fit:cover;object-position:var(--image-position,50% 50%)}
.case-facts{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:35px;margin:0;padding:32px 0 35px;border-bottom:1px solid var(--project-line)}
.case-facts>div{min-width:0}
.case-facts dt{margin-bottom:8px;color:var(--project-muted);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}
.case-facts dd{margin:0;font-size:.875rem;line-height:1.8}
.case-story{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:55px clamp(45px,10vw,170px);padding:95px 0 85px}
.case-story .project-eyebrow{margin-bottom:27px}
.case-story h2{margin:0;font-size:clamp(2rem,3.5vw,3.75rem);font-weight:400;line-height:1.2;letter-spacing:-.037em;text-wrap:balance}
.case-story-copy{padding-top:3px;align-self:center;max-width:580px}
.case-story-copy p{margin:0 0 22px;font-size:1rem;line-height:1.9;color:var(--project-muted)}
.case-story-copy p:last-child{margin-bottom:0}
.case-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:60px clamp(25px,4vw,68px);padding-bottom:105px}
.case-gallery figure{margin:0;min-width:0;width:100%;max-width:var(--image-native-width,100%);justify-self:center}
.case-gallery img{width:100%;height:auto;background:#ddd9d0}
.case-gallery .is-wide{grid-column:1/-1}
.case-gallery figcaption{display:flex;align-items:baseline;gap:14px;margin-top:15px;font-size:.875rem;line-height:1.7;color:var(--project-muted)}
.case-gallery figcaption>span:first-child{color:#81745e;font-size:.75rem;font-variant-numeric:tabular-nums}
.case-next{background:#1b211d;color:var(--paper);padding:75px var(--gutter)}
.case-next-inner{max-width:1634px;margin:auto}
.case-next>a{display:block}
.case-next-link{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(30px,6vw,100px);align-items:center}
.case-next .project-eyebrow{color:var(--stone);margin-bottom:28px}
.case-next h2{margin:0;font-size:clamp(2.5rem,4.4vw,4.75rem);font-weight:400;line-height:1.11;letter-spacing:-.04em;text-wrap:balance;overflow-wrap:anywhere}
.case-next-location{margin:19px 0 30px;color:#c3c8bd;font-size:.875rem}
.case-next .portfolio-open{border-color:#707665}
.case-next-link:hover .portfolio-open{background:#394134;transform:translate(3px,-3px)}
.case-next-image{aspect-ratio:1.45;overflow:hidden;margin:0}
.case-next-image img{width:100%;height:100%;object-fit:cover;object-position:var(--image-position,50% 50%);transition:transform 1s}
@media(hover:hover){.case-next-link:hover img{transform:scale(1.035)}}
@media(min-width:1770px){.case-hero{margin-left:auto;margin-right:auto}}
@media(max-width:1100px){
 .projects-page .site-header{grid-template-columns:210px 1fr auto}
 .portfolio-intro{grid-template-columns:minmax(0,1.7fr) minmax(220px,.8fr);gap:28px}
 .portfolio-grid{gap:65px 35px;padding-bottom:90px}
 .portfolio-card.is-offset{padding-top:90px}
 .case-heading{grid-template-columns:minmax(0,1.6fr) minmax(210px,.8fr);gap:30px}
 .case-story{gap:45px 50px;padding:75px 0}
}
@media(max-width:760px){
 .projects-page .site-header,.projects-page .site-header.is-scrolled{grid-template-columns:1fr auto}
 .portfolio-intro{display:block;padding-top:111px;padding-bottom:30px}
 .portfolio-intro .project-eyebrow{margin-bottom:16px}
 .portfolio-intro h1{font-size:clamp(3.15rem,11.5vw,5.25rem);line-height:1.1}
 .portfolio-intro>p{max-width:420px;margin:21px 0 0;font-size:1rem;line-height:1.75}
 .portfolio-toolbar{gap:10px;margin-bottom:15px;min-height:62px;flex-wrap:wrap}
 .portfolio-filters{gap:24px;flex:1}
 .portfolio-filters button{gap:6px;min-height:54px;font-size:.875rem}
 .portfolio-count{font-size:.75rem;white-space:nowrap}
 .portfolio-search{display:block;margin:0 0 26px}
 .portfolio-search>label{display:block;margin-bottom:4px}
 .portfolio-search input{font-size:1rem}
 .portfolio-pagination{margin:-15px 0 60px}
 .portfolio-grid{display:block;padding-bottom:60px}
 .portfolio-card,.portfolio-card.is-featured,.portfolio-card.is-offset{padding:0;margin:0 0 48px}
 .portfolio-card:last-child{margin-bottom:0}
 .portfolio-card .portfolio-photo,.portfolio-card.is-featured .portfolio-photo,.portfolio-card.is-endcap .portfolio-photo{aspect-ratio:1.22}
 .portfolio-card.is-portrait:not(.is-endcap) .portfolio-photo{aspect-ratio:1.06}
 .portfolio-image-index{top:14px;left:14px;padding:7px 9px}
 .portfolio-feature-label{font-size:.75rem}
 .portfolio-caption{padding-top:18px;gap:17px}
 .portfolio-caption h2,.portfolio-card.is-featured .portfolio-caption h2{font-size:clamp(1.65rem,6vw,2.4rem);line-height:1.2}
 .portfolio-caption .project-eyebrow{margin-bottom:7px;letter-spacing:.09em}
 .portfolio-open{width:45px}
 .portfolio-caption p:last-child{margin-top:7px}
 .portfolio-invitation{padding:60px 20px}
 .portfolio-invitation .project-eyebrow{margin-bottom:24px}
 .portfolio-invitation h2{font-size:clamp(2.5rem,9.5vw,4.5rem);line-height:1.1}
 .portfolio-invitation a{gap:20px}
 .portfolio-invitation .portfolio-open{width:62px}
 .portfolio-invitation-bottom{display:block;margin-top:36px;padding-top:18px}
 .portfolio-invitation-bottom a{margin-top:7px}
 .case-intro{padding-top:94px;padding-bottom:30px}
 .case-back{margin-bottom:24px}
 .case-heading{display:block}
 .case-heading .project-eyebrow{margin-bottom:15px}
 .case-heading h1{font-size:clamp(2.55rem,10vw,4.5rem);line-height:1.08}
 .case-heading>p{margin:21px 0 0;max-width:100%;font-size:1rem;line-height:1.75}
 .case-hero{aspect-ratio:1.17}
 .case-facts{grid-template-columns:1fr 1fr;gap:23px 20px;padding:26px 0}
 .case-facts>div:last-child{grid-column:1/-1}
 .case-facts dt{margin-bottom:6px}
 .case-story{display:block;padding:53px 0 43px}
 .case-story .project-eyebrow{margin-bottom:21px}
 .case-story h2{font-size:clamp(2rem,7.5vw,3rem);line-height:1.2}
 .case-story-copy{margin-top:25px;max-width:100%}
 .case-story-copy p{line-height:1.85}
 .case-gallery{display:block;padding-bottom:55px}
 .case-gallery figure{margin:0 auto 35px}
 .case-gallery figure:last-child{margin-bottom:0}
 .case-gallery figcaption{margin-top:12px;gap:12px}
 .case-next{padding:53px 20px}
 .case-next-link{display:flex;flex-direction:column;gap:32px;align-items:stretch}
 .case-next .project-eyebrow{margin-bottom:21px}
 .case-next h2{font-size:clamp(2.25rem,9vw,3.5rem)}
 .case-next-location{margin:16px 0 22px}
 .case-next-image{aspect-ratio:1.4}
}
@media(max-width:420px){.portfolio-filters{gap:0 19px}.portfolio-filters sup{display:none}.portfolio-count{width:100%;padding-bottom:12px}.portfolio-toolbar{gap:0}.portfolio-intro h1{font-size:clamp(3rem,12vw,3.5rem)}.portfolio-feature-label{display:none!important}}
@media(prefers-reduced-motion:reduce){.projects-page *{scroll-behavior:auto!important}.portfolio-photo img,.portfolio-open,.portfolio-filters button:after,.case-next-image img{transition:none!important}}
.case-scope{margin-top:30px;border-top:1px solid var(--project-line);border-bottom:1px solid var(--project-line)}
.case-scope summary{display:flex;justify-content:space-between;gap:22px;align-items:center;min-height:56px;padding:16px 0;list-style:none;font-size:.875rem;cursor:pointer;line-height:1.7}
.case-scope summary::-webkit-details-marker{display:none}
.case-scope summary>span{font-size:1.4rem;line-height:1;font-weight:300;transition:transform .25s}
.case-scope[open] summary>span{transform:rotate(45deg)}
.case-scope ul{margin:0 0 22px;padding-left:20px;color:var(--project-muted);font-size:.875rem;line-height:1.8}
.case-scope li{padding:0 0 8px 5px}
.case-services{padding:0 0 80px}
.case-services>div{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:22px}
.case-services a{display:inline-flex;align-items:center;gap:15px;min-height:44px;font-size:.875rem;border-bottom:1px solid var(--project-line);line-height:1.6}
.case-services a:hover{border-color:var(--ink)}
.case-services svg{width:18px;height:18px;flex:none}
.portfolio-card{scroll-margin-top:105px}
@media(max-width:760px){.case-services{padding-bottom:55px}.case-services>div{gap:8px 25px}}
