*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--orange:#fe5000;--ink:#1a1a1a;--mid:#5a5a5a;--soft:#9a9a9a;--rule:#e8e8e8;--bg:#fff;--offwhite:#f9f8f6;--font-serif:"DM Serif Display",Georgia,serif;--font-sans:"DM Sans","Helvetica Neue",Arial,sans-serif;--max-width:1320px;--gutter:48px}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}img,video{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);letter-spacing:-.02em;font-weight:400;line-height:1.1}h1{font-size:clamp(48px,7vw,96px)}h2{font-size:clamp(32px,4vw,56px)}h3{font-size:clamp(22px,2.5vw,36px)}h4{font-size:clamp(18px,2vw,24px)}p{color:var(--mid);font-size:15px;font-weight:300;line-height:1.8}.eyebrow{font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--soft);margin-bottom:16px;font-size:11px;font-weight:400;display:block}.container{max-width:var(--max-width);padding:0 var(--gutter);margin:0 auto}.section{padding:80px var(--gutter)}.section--lg{padding:120px var(--gutter)}.border-top{border-top:1px solid var(--rule)}.border-bottom{border-bottom:1px solid var(--rule)}.btn{font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;padding:14px 32px;font-size:11px;font-weight:500;text-decoration:none;transition:background .2s,color .2s;display:inline-block}.btn--primary{background:var(--orange);color:#fff}.btn--primary:hover{background:var(--ink)}.btn--outline{border:1px solid var(--ink);color:var(--ink)}.btn--outline:hover{background:var(--ink);color:#fff}.arrow-link{letter-spacing:.1em;text-transform:uppercase;color:var(--ink);align-items:center;gap:10px;font-size:12px;font-weight:500;transition:color .2s;display:inline-flex}.arrow-link:hover{color:var(--orange)}.fade-up{opacity:0;transition:opacity .65s,transform .65s;transform:translateY(24px)}.fade-up.is-visible{opacity:1;transform:none}.fade-up.delay-1{transition-delay:.1s}.fade-up.delay-2{transition-delay:.2s}.fade-up.delay-3{transition-delay:.3s}.portfolio-grid{background:var(--rule);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.portfolio-card{background:var(--bg);flex-direction:column;display:flex;overflow:hidden}.portfolio-card:hover{background:var(--offwhite)}.portfolio-card__thumb{aspect-ratio:4/3;background:var(--offwhite);overflow:hidden}.portfolio-card__thumb img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.portfolio-card:hover .portfolio-card__thumb img{transform:scale(1.04)}.portfolio-card__body{flex:1;padding:20px 24px 28px}.portfolio-card__client{color:var(--ink);margin-bottom:4px;font-size:15px;font-weight:500}.portfolio-card__type{color:var(--soft);font-size:12px}.blog-grid{background:var(--rule);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.blog-card{background:var(--bg);flex-direction:column;display:flex}.blog-card__thumb{aspect-ratio:16/9;background:var(--offwhite);overflow:hidden}.blog-card__thumb img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.blog-card:hover .blog-card__thumb img{transform:scale(1.04)}.blog-card__body{flex-direction:column;flex:1;padding:24px 24px 32px;display:flex}.blog-card__cat{letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:12px;font-size:10px}.blog-card__title{font-family:var(--font-serif);color:var(--ink);margin-bottom:12px;font-size:20px;line-height:1.3}.blog-card__excerpt{color:var(--mid);flex:1;font-size:13px;line-height:1.7}.blog-card__meta{color:var(--soft);margin-top:20px;font-size:11px}.service-tag{letter-spacing:.08em;color:var(--mid);border:1px solid var(--rule);cursor:default;background:var(--bg);padding:7px 14px;font-size:11px;transition:all .2s}.service-tag:hover{background:var(--orange);color:#fff;border-color:var(--orange)}@media (max-width:1024px){:root{--gutter:32px}.portfolio-grid,.blog-grid{grid-template-columns:1fr 1fr}}@media (max-width:640px){:root{--gutter:20px}.portfolio-grid,.blog-grid{grid-template-columns:1fr}}
