/* Grappa Studio — original motion system & project archive v2.0 */
:root{--display:'Iowan Old Style','Baskerville','Palatino Linotype',Georgia,serif;--ease-out:cubic-bezier(.19,1,.22,1)}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}
.work-card{min-width:0;position:relative;will-change:transform;transform-style:preserve-3d}
.work-card-link{display:block;outline-offset:6px}
.work-cover{position:relative;isolation:isolate;border-radius:32px;overflow:hidden;aspect-ratio:1.37;background:#292924;box-shadow:0 10px 27px rgba(38,31,24,.045);transform:translateZ(0)}
.work-cover::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 48%,rgba(0,0,0,.37));opacity:.18;transition:opacity .5s}
.work-cover::before{content:'';position:absolute;z-index:2;top:-80%;left:-28%;width:30%;height:260%;transform:rotate(26deg) translateX(-280%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.11),transparent);transition:transform 1.15s var(--ease-out);pointer-events:none}
.work-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out),filter .8s ease}
.work-hover-chip{position:absolute;right:18px;bottom:18px;z-index:3;display:flex;align-items:center;gap:10px;background:#f7f5f1;color:#171615;font-size:11px;font-weight:700;padding:10px 15px;border-radius:100px;transform:translateY(12px);opacity:0;transition:all .5s var(--ease-out)}
.work-hover-chip span{font-size:17px;line-height:10px}
.work-card-link:hover .work-cover img,.work-card-link:focus-visible .work-cover img{transform:scale(1.065)}
.work-card-link:hover .work-cover::before{transform:rotate(26deg) translateX(750%)}
.work-card-link:hover .work-cover::after{opacity:.38}
.work-card-link:hover .work-hover-chip,.work-card-link:focus-visible .work-hover-chip{opacity:1;transform:translateY(0)}
.work-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px 3px 10px}
.work-meta>div>span{display:block;font-size:10px;letter-spacing:.12em;color:#7d7770;font-weight:650;text-transform:uppercase;margin-bottom:8px}
.work-meta h3{font:700 clamp(24px,2.05vw,31px)/.99 var(--display);letter-spacing:-.052em;word-break:normal;overflow-wrap:anywhere}
.work-open{width:35px;height:35px;flex-shrink:0;border:1px solid #bbb6ae;display:grid;place-items:center;border-radius:100px;font-size:18px;transition:transform .35s,background .35s,color .35s}
.work-card-link:hover .work-open{transform:rotate(45deg);background:#191919;color:white}
.portfolio-more-inline{display:inline-block;margin-top:18px;font-size:11px;letter-spacing:.1em;font-weight:800;border-bottom:1px solid #191919;padding-bottom:8px}
.portfolio-cta{margin-top:22px;padding:22px 0;border-top:1px solid #dad6cd;display:flex;justify-content:space-between;align-items:center;gap:25px}
.portfolio-cta>p{color:#6c665e;font-size:13px}
.portfolio-cta .button{min-height:48px}
.portfolio-section .portfolio-notice{max-width:860px;margin:4px 0 0;color:#79736c;font-size:11px;line-height:1.6}
/* Archive visual language, extending the approved ivory/black studio identity */
.portfolio-page{background:var(--paper)}
.projects-hero{padding-top:105px;padding-bottom:36px;position:relative}
.projects-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:clamp(35px,7vw,120px);align-items:end;margin-top:24px}
.projects-hero h1{font:700 clamp(70px,9.1vw,145px)/.88 var(--display);letter-spacing:-.084em;max-width:960px}
.projects-hero h1 em{font-weight:400}
.projects-hero-aside{padding-bottom:14px;max-width:345px;justify-self:end}
.projects-hero-aside p{font-size:14px;line-height:1.72;color:#69635d;margin:13px 0 23px}
.projects-hero-aside p strong{color:#222;font-weight:700}
.projects-hero-count{font:700 106px/.8 var(--display);letter-spacing:-.1em;display:block}
.projects-hero-count span{font:600 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;margin-left:16px;color:#7d766c}
.projects-hero-chips{display:flex;gap:9px;flex-wrap:wrap;margin-top:40px}
.projects-hero-chips span{border:1px solid #bdb8ad;border-radius:100px;padding:9px 15px;font-size:10px;font-weight:800;letter-spacing:.09em}
.projects-divider{height:1px;background:#d7d2c9;margin-top:72px}
.archive-section{padding:45px 0 125px}
.archive-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}
.archive-head h2{font:700 clamp(33px,4vw,56px)/1 var(--display);letter-spacing:-.055em}
.archive-head h2 span{font:600 13px var(--sans);color:#7f7971;vertical-align:top;margin-left:5px}
.work-search{width:min(350px,45vw);display:flex;align-items:center;gap:12px;border:1px solid #ccc7bf;border-radius:100px;background:#f9f8f5;padding:13px 20px;color:#8d8478}
.work-search input{border:0;outline:0;min-width:0;width:100%;background:transparent;color:#211f1d;font-size:13px}
.work-search:focus-within{outline:2px solid #7d746b;outline-offset:2px}
.filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px 8px;margin:0 0 39px}
.filter-pill{display:inline-flex;align-items:center;gap:10px;line-height:1.2;border:1px solid #c9c5be;border-radius:100px;background:transparent;color:#3b3833;font-size:12px;font-weight:650;padding:11px 17px;transition:color .25s,background .25s,border-color .25s,transform .25s}
.filter-pill span{font-size:10px;opacity:.55}
.filter-pill:hover{border-color:#222;transform:translateY(-2px)}
.filter-pill.selected{background:#1b1b1a;color:#fff;border-color:#1b1b1a}
.archive-grid{row-gap:33px}
.archive-grid .work-card.is-hidden{display:none}
.empty-projects{padding:45px 20px;border:1px dashed #b9b3a9;border-radius:25px;color:#79736d;text-align:center;font-size:14px}
.archive-disclosure{font-size:11px;max-width:730px;color:#8a847c;line-height:1.7;margin-top:45px}
.archive-footer-cta{border-radius:42px;background:#191c1a;color:#f7f5f1;min-height:295px;margin-bottom:65px;padding:65px 75px;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;position:relative;overflow:hidden}
.archive-footer-cta::before{content:'';position:absolute;width:650px;height:650px;border:1px solid #ffffff20;border-radius:50%;right:-230px;top:-360px;box-shadow:0 0 0 70px #ffffff06,0 0 0 140px #ffffff06;pointer-events:none}
.archive-footer-cta>div,.archive-footer-cta>a{z-index:1}
.archive-footer-cta>div>span{font-size:10px;letter-spacing:.18em;font-weight:750;color:#ded9d3}
.archive-footer-cta h2{font:700 clamp(46px,5.4vw,82px)/.97 var(--display);letter-spacing:-.066em;margin-top:17px;max-width:740px}
.archive-footer-cta h2 em{font-weight:400}
/* The archive supports varied content length without unusual jumps. */
.project-card{display:none}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .work-card{transition:transform .35s var(--ease-out)}
 .service-card{transition:transform .4s var(--ease-out),box-shadow .4s ease,background .4s ease}
 .service-card:hover{transform:translateY(-8px) rotate(-.45deg);box-shadow:0 25px 55px rgba(35,29,20,.08)}
 .media-mountains img{animation:float-image 9s ease-in-out infinite alternate}
 .media-photographer img{animation:float-image 11s ease-in-out infinite alternate-reverse}
 @keyframes float-image{from{transform:scale(1.04) translate3d(0,-3px,0)}to{transform:scale(1.12) translate3d(0,9px,0)}}
}
@media(max-width:1050px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.featured-work-grid .work-card:last-child{grid-column:span 2}.featured-work-grid .work-card:last-child .work-cover{aspect-ratio:2.65}.projects-hero-grid{gap:30px}.projects-hero h1{font-size:clamp(63px,8vw,105px)}}
@media(max-width:740px){.work-grid{gap:25px 16px}.projects-hero{padding-top:64px}.projects-hero-grid{grid-template-columns:1fr;gap:33px}.projects-hero h1{font-size:clamp(61px,13vw,100px)}.projects-hero-aside{max-width:100%;justify-self:start;display:grid;grid-template-columns:100px 1fr;gap:8px 22px;align-items:center}.projects-hero-count{font-size:80px}.projects-hero-count span{font-size:10px;margin-left:4px}.projects-hero-aside p{margin:0}.projects-hero-aside .inline-link{grid-column:1/-1;margin-top:5px}.projects-divider{margin-top:45px}.archive-section{padding-bottom:75px}.archive-footer-cta{border-radius:30px;padding:40px 35px;min-height:320px;flex-direction:column;align-items:flex-start;justify-content:space-between}.archive-head{align-items:flex-start;flex-direction:column}.work-search{width:100%}}
@media(max-width:600px){.work-grid,.featured-work-grid{grid-template-columns:1fr;gap:27px}.featured-work-grid .work-card:last-child{grid-column:auto}.featured-work-grid .work-card:last-child .work-cover{aspect-ratio:1.37}.work-cover{border-radius:24px}.work-meta{padding:12px 2px 0}.work-meta h3{font-size:27px}.work-meta>div>span{font-size:9px}.work-open{width:34px;height:34px}.work-hover-chip{opacity:1;transform:none;padding:8px 12px;font-size:10px;right:10px;bottom:12px}.portfolio-cta{flex-direction:column;align-items:flex-start;margin-top:12px}.portfolio-cta .button{width:100%;justify-content:space-between}.projects-hero{padding-top:48px}.projects-hero h1{font-size:clamp(53px,12vw,72px)}.projects-hero-chips{margin-top:24px}.projects-hero-chips span{font-size:9px;padding:8px 11px}.projects-hero-aside{grid-template-columns:75px 1fr;gap:15px}.projects-hero-count{font-size:65px}.projects-hero-aside p{font-size:12px}.archive-head h2{font-size:40px}.filters{flex-wrap:nowrap;overflow-x:auto;max-width:calc(100vw - 18px);padding-bottom:13px;margin-right:-18px;scrollbar-width:thin;scroll-snap-type:x proximity}.filter-pill{flex:0 0 auto;scroll-snap-align:start}.archive-grid{row-gap:30px}.archive-footer-cta h2{font-size:53px}.archive-footer-cta .button{width:100%;justify-content:space-between}.portfolio-page .footer-bottom{gap:16px}}
@media(prefers-reduced-motion:reduce){.work-cover img,.work-card,.work-cover:before,.work-hover-chip{transition:none!important;animation:none!important}.reveal{opacity:1!important;transform:none!important}}

@media(max-width:600px){.hero-orbit{display:none!important}}
