/* Revision 07 — a photographic project index, using company-profile imagery. */
.view-project-image .photo-count{font-size:10px;color:var(--muted);letter-spacing:.02em}
.project-gateway{position:relative;isolation:isolate;display:flex;min-height:100svh;flex-direction:column;justify-content:space-between;gap:220px;padding:136px 5% 64px;overflow:hidden;color:#fff;background:#1d2529}
.project-gateway>img,.gateway-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;z-index:-2}
.gateway-shade{z-index:-1;background:linear-gradient(0deg,#0c1415dd,transparent 48%),linear-gradient(180deg,#10191c88,transparent 38%)}
.gateway-top,.gateway-bottom{display:flex;justify-content:space-between;gap:32px;align-items:flex-start}
.gateway-top h2{font-size:clamp(38px,4.8vw,68px);line-height:1.05}.gateway-top>span{font-size:10px;letter-spacing:.12em;padding-top:12px}
.gateway-bottom{align-items:flex-end}.gateway-bottom .eyebrow{margin-bottom:20px}.gateway-bottom h3{font-size:clamp(48px,6.6vw,100px);line-height:.99;letter-spacing:-.055em}
.gateway-cta{display:inline-flex;align-items:center;gap:34px;min-height:54px;font-size:15px;border-bottom:1px solid #ffffff73;padding-bottom:9px;white-space:nowrap}.gateway-cta>span{font-size:32px;color:var(--orange);transition:transform .25s ease}
.project-gateway:hover .gateway-cta>span{transform:translate(4px,-4px)}.project-gateway:focus-visible{outline-offset:-8px}
.portfolio-page{background:var(--paper);color:var(--ink)}.portfolio-page .site-nav [aria-current=page]{text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:8px}
.project-case{scroll-margin-top:96px}.project-cover{position:relative;width:100%;height:100svh;min-height:500px;margin:0;background:#dcded7;overflow:hidden}.project-cover>img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--cover-position,50% 50%)}
.cover-label{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;gap:24px;padding:40px 5% 65px;color:#fff;background:linear-gradient(#10151485,transparent);font-size:11px;letter-spacing:.14em}.project-case:first-child .cover-label{padding-top:130px}
.project-caption{display:grid;grid-template-columns:1fr 1.1fr;gap:10%;padding:86px 5% 100px;background:var(--paper)}
.project-heading .eyebrow{font-size:10px;letter-spacing:.15em}.project-heading h1,.project-heading h2{font-size:clamp(40px,4.3vw,66px);line-height:1.04;letter-spacing:-.05em;text-wrap:balance}.project-heading h1>span,.project-heading h2>span{display:block;color:#737970;margin-top:9px;font-size:.68em;line-height:1.14}
.project-story{max-width:690px}.project-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 36px;margin:0 0 38px;padding:0 0 30px;border-bottom:1px solid #cbd0c7}.project-facts dt{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:#697163;margin-bottom:6px}.project-facts dd{font-size:18px;line-height:1.45;margin:0;font-weight:700;letter-spacing:-.025em}.project-story>p{font-size:15px;line-height:1.85;color:#50594f;margin:0 0 17px}
.view-project-image{display:inline-flex;align-items:center;gap:26px;min-height:44px;padding:0;background:none;border:0;color:var(--ink);font-size:12px;margin-top:12px}.view-project-image>span{color:var(--orange);font-size:22px}
.portfolio-contact{background:#e9ece3;padding:110px 5% 125px}.portfolio-contact h2{font-size:clamp(40px,5.3vw,80px);max-width:1000px;line-height:1.05}.portfolio-contact .contact-button{min-width:260px}
.portfolio-page footer{color:#e8ece3;padding-bottom:95px}.portfolio-page footer>span{font-size:10px}
.project-index-toggle{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));right:4%;z-index:25;display:flex;align-items:center;gap:32px;min-height:50px;border:0;border-radius:28px;padding:0 22px;background:#f4f6f0e6;color:#1b241b;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 4px 24px #0002;font-size:12px}.project-index-toggle>span{color:#cf5b28;font-size:22px}
#project-index{border:0;border-radius:20px;background:var(--paper);color:var(--ink);width:min(880px,calc(100% - 32px));max-height:calc(100svh - 40px);padding:32px 40px 24px}#project-index::backdrop,#image-viewer::backdrop{background:#101510b8;backdrop-filter:blur(14px)}
.index-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;position:sticky;top:-32px;padding:15px 0 24px;background:var(--paper);z-index:1}.index-heading .eyebrow{font-size:9px;margin-bottom:10px}.index-heading h2{font-size:36px}.index-close,.viewer-close{border:0;background:none;color:inherit;min-height:48px;min-width:65px;font-size:13px}
#project-index nav{display:grid;grid-template-columns:1fr 1fr;gap:0 36px}#project-index nav a{display:grid;grid-template-columns:22px 1fr 15px;gap:12px;align-items:center;min-height:80px;padding:14px 0;border-top:1px solid #ccd0c5;font-size:14px;line-height:1.4}#project-index nav a>span:first-child{font-size:9px;color:#72796e}#project-index nav a>span:last-child{color:var(--orange)}#project-index small{display:block;color:#747b71;font-size:11px;margin-top:4px}
#image-viewer{border:0;padding:0;background:#111511;color:#fff;width:100%;max-width:none;height:100svh;max-height:none;margin:0}#image-viewer .viewer-heading{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 4%;font-size:14px;background:linear-gradient(#111b,transparent)}#image-viewer>img{display:block;width:100%;height:100%;padding:90px 3% 40px;object-fit:contain}
@media(max-width:1000px){.project-caption{gap:6%;grid-template-columns:1fr 1.1fr}.project-facts{gap:24px}.project-facts dd{font-size:16px}.gateway-top>span{display:none}}
@media(max-width:750px){.project-gateway{min-height:100svh;padding:116px 24px 48px;gap:220px}.project-gateway>img{object-position:67% 50%}.gateway-top h2{font-size:37px}.gateway-bottom{display:block}.gateway-bottom h3{font-size:clamp(46px,12vw,65px)}.gateway-bottom .eyebrow{font-size:9px;max-width:250px}.gateway-cta{margin-top:25px;font-size:13px;gap:28px}.project-case{scroll-margin-top:84px}.project-cover{height:100svh;min-height:440px}.project-cover>img{object-position:var(--mobile-position,50% 50%)}.cover-label{padding:26px 24px 50px;font-size:9px}.project-case:first-child .cover-label{padding-top:112px}.project-caption{display:block;padding:52px 24px 70px}.project-heading h1,.project-heading h2{font-size:43px;max-width:520px}.project-heading .eyebrow{font-size:9px;margin-bottom:18px}.project-story{margin-top:35px}.project-facts{gap:22px 20px;margin-bottom:28px;padding-bottom:25px}.project-facts dt{font-size:9px}.project-facts dd{font-size:16px}.project-story>p{font-size:15px}.portfolio-contact{padding:75px 24px 90px}.portfolio-contact h2{font-size:41px}.portfolio-page footer{padding:35px 24px 105px}.project-index-toggle{right:20px;bottom:max(20px,env(safe-area-inset-bottom));min-height:48px;gap:24px;font-size:11px}#project-index{padding:20px 24px}#project-index nav{grid-template-columns:1fr;gap:0}#project-index nav a{min-height:65px}.index-heading{top:-20px;padding-top:5px;gap:14px}.index-heading h2{font-size:31px}.index-heading .eyebrow{font-size:8px}.index-close{font-size:12px}#image-viewer .viewer-heading{font-size:12px;padding:18px 24px}}
@media(max-height:520px){.project-cover{min-height:420px}.project-gateway{min-height:620px}}
@media(prefers-reduced-motion:reduce){.gateway-cta>span{transition:none}.project-gateway:hover .gateway-cta>span{transform:none}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.project-index-toggle{background:#f6f5f0;backdrop-filter:none;-webkit-backdrop-filter:none}}

.project-heading [id]{scroll-margin-top:120px}

/* Keep every project image complete: its own aspect ratio determines height. */
.portfolio-page main{padding-top:96px}
.project-cover{display:flex;flex-direction:column;height:auto;min-height:0;overflow:visible;background:var(--paper)}
.project-cover>img{width:100%;height:auto;object-fit:contain;object-position:center}
.cover-label,.project-case:first-child .cover-label{position:static;order:-1;padding:26px 5%;background:var(--paper);color:var(--ink);font-size:10px}
.project-gateway{display:block;min-height:0;padding:0;overflow:visible}
.project-gateway>img{position:relative;inset:auto;z-index:0;display:block;width:100%;height:auto;object-fit:contain;object-position:center}
.gateway-shade{z-index:1}.gateway-top,.gateway-bottom{position:absolute;left:5%;right:5%;z-index:2}.gateway-top{top:130px}.gateway-bottom{bottom:48px}
.gateway-top h2{font-size:clamp(38px,4.4vw,64px)}.gateway-bottom h3{font-size:clamp(46px,5.4vw,78px)}
.project-index-toggle{background:rgba(249,250,246,.32);backdrop-filter:blur(24px) saturate(110%) contrast(.55) brightness(1.5);-webkit-backdrop-filter:blur(24px) saturate(110%) contrast(.55) brightness(1.5);box-shadow:0 3px 18px #0000000d}
#project-index{background:rgba(249,250,246,.68);backdrop-filter:blur(28px) saturate(110%);-webkit-backdrop-filter:blur(28px) saturate(110%)}
#project-index::backdrop{background:#10151033;backdrop-filter:blur(10px)}.index-heading{background:rgba(249,250,246,.78);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
@media(max-width:1000px){.project-gateway{display:flex;flex-direction:column;gap:0;background:var(--paper);color:var(--ink)}.project-gateway>img{order:1;z-index:auto}.gateway-shade{display:none}.gateway-top,.gateway-bottom{position:static;padding-left:5%;padding-right:5%}.gateway-top{order:0;padding-top:125px;padding-bottom:32px}.gateway-bottom{order:2;padding-top:36px;padding-bottom:55px;width:100%;gap:35px}.gateway-bottom h3{font-size:46px}.gateway-cta{border-bottom-color:#58605270}.gateway-bottom .eyebrow{font-size:9px}.gateway-top h2{font-size:44px}}
@media(max-width:750px){.portfolio-page main{padding-top:84px}.cover-label,.project-case:first-child .cover-label{padding:22px 24px;font-size:9px}.gateway-top,.gateway-bottom{padding-left:24px;padding-right:24px}.gateway-top{padding-top:112px;padding-bottom:28px}.gateway-top h2{font-size:37px}.gateway-bottom{padding-top:30px;padding-bottom:45px}.gateway-bottom h3{font-size:40px}.gateway-bottom .eyebrow{margin-bottom:16px}.gateway-cta{margin-top:24px}.project-caption{padding-top:40px}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.project-index-toggle,#project-index,.index-heading{background:#f6f5f0;backdrop-filter:none;-webkit-backdrop-filter:none}}
@supports not ((backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px))){#menu-dialog,#project-index,.index-heading,.project-index-toggle{background:#f6f5f0f2}}
