@font-face{font-family:Display;src:url('assets/fonts/display.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Grotesk;src:url('assets/fonts/grotesk.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Grotesk;src:url('assets/fonts/grotesk-medium.woff2') format('woff2');font-weight:500;font-display:swap}
:root{--paper:#eee9e2;--ink:#080806;--muted:rgba(8,8,6,.52);--line:rgba(8,8,6,.13);--inverse:#f4efe8;--dark:#080806;--pad:clamp(16px,2.5vw,36px);--big:clamp(42px,7.4vw,122px);--med:clamp(28px,4.4vw,68px);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:Grotesk,Arial,sans-serif;font-size:16px;line-height:1.08;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img,video{display:block;max-width:100%;object-fit:cover}button,input,textarea{font:inherit;color:inherit}.page{opacity:0;animation:pageIn .8s var(--ease) forwards}@keyframes pageIn{to{opacity:1}}.site-header{position:fixed;top:0;left:0;z-index:80;width:100%;padding:18px var(--pad);mix-blend-mode:normal;color:var(--ink);pointer-events:none;transition:color .35s var(--ease)}.site-header.nav-inverse{color:#fff}.nav{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;min-height:46px;padding:0}.nav a,.nav button{pointer-events:auto}.nav-left,.nav-right{display:flex;gap:clamp(14px,2.2vw,34px);align-items:center}.nav-right{justify-content:flex-end}.nav a,.quote-mini,.mobile-open{font-family:Grotesk,Arial,sans-serif;text-transform:uppercase;font-size:12px;letter-spacing:.045em;font-weight:400}.brand{font-family:Grotesk,Arial,sans-serif;font-size:clamp(17px,1.7vw,24px);font-weight:400;letter-spacing:-.035em;text-align:center}.brand b{font-weight:400;font-family:Grotesk}.quote-mini,.mobile-open{border:1px solid currentColor;background:transparent;color:currentColor;border-radius:999px;padding:10px 17px;cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)}.quote-mini:hover,.mobile-open:hover{background:currentColor}.quote-mini:hover{color:var(--paper)}.site-header.nav-inverse .quote-mini:hover,.site-header.nav-inverse .mobile-open:hover{color:var(--ink)}.mobile-open{display:none}.hero{position:relative;min-height:100vh;background:#000;color:#fff;overflow:hidden}.hero-media{position:absolute;inset:0}.hero-media video,.hero-media img{position:absolute;inset:0;width:100%;height:100%;opacity:0;transform:scale(1.04);transition:opacity 1.4s var(--ease),transform 7s linear}.hero-media .is-active{opacity:1;transform:scale(1)}.shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.08) 40%,rgba(0,0,0,.35))}.hero-content{position:relative;z-index:2;min-height:100vh;display:grid;grid-template-rows:1fr auto;align-items:end;padding:calc(var(--pad) + 72px) var(--pad) var(--pad)}.hero-title{font-family:Grotesk,Arial,sans-serif;font-size:var(--big);font-weight:400;line-height:.9;letter-spacing:-.045em;margin:0;max-width:15ch}.hero-bottom{display:grid;grid-template-columns:1fr 1.2fr auto;gap:28px;align-items:end;margin-top:42px}.kicker{text-transform:uppercase;font-size:12px;letter-spacing:.12em;color:rgba(255,255,255,.74)}.hero-copy{font-size:clamp(17px,1.55vw,25px);line-height:1.05;max-width:760px}.cta{display:inline-flex;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:999px;padding:14px 22px;text-transform:uppercase;font-family:Grotesk,Arial,sans-serif;font-size:14px;white-space:nowrap;transition:background .35s var(--ease),color .35s var(--ease),transform .35s var(--ease)}.cta:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}.section{padding:clamp(80px,12vw,170px) var(--pad)}.intro-grid{display:grid;grid-template-columns:.8fr 1.4fr;gap:clamp(42px,8vw,150px);align-items:start}.eyebrow{font-family:Grotesk,Arial,sans-serif;text-transform:uppercase;font-size:14px;letter-spacing:.02em;color:var(--muted)}.large-copy{font-family:Grotesk,Arial,sans-serif;font-size:clamp(28px,4.2vw,62px);font-weight:400;line-height:1;letter-spacing:-.035em;margin:0}.text{font-size:clamp(18px,1.7vw,25px);line-height:1.18;color:var(--muted);max-width:760px}.work-strip{padding:0 var(--pad) var(--pad)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}.section-title{font-family:Grotesk,Arial,sans-serif;font-size:var(--med);font-weight:400;line-height:.96;letter-spacing:-.035em;margin:0}.filter-row{display:flex;flex-wrap:wrap;gap:8px}.filter-row button{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 13px;cursor:pointer;color:var(--muted)}.filter-row button.active{background:var(--ink);color:var(--paper)}.portfolio-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:10px}.project-card{position:relative;display:block;overflow:hidden;background:#ddd;min-height:400px}.project-card img{width:100%;height:100%;transition:transform 1s var(--ease),filter .7s var(--ease)}.project-card:hover img{transform:scale(1.055);filter:saturate(1.05) contrast(1.02)}.project-card:nth-child(1),.project-card:nth-child(6){grid-column:span 7;height:72vh}.project-card:nth-child(2),.project-card:nth-child(5){grid-column:span 5;height:72vh}.project-card:nth-child(3),.project-card:nth-child(4),.project-card:nth-child(7),.project-card:nth-child(8),.project-card:nth-child(9){grid-column:span 4;height:50vh}.project-info{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:20px;padding:18px;color:#fff;background:linear-gradient(0deg,rgba(0,0,0,.45),transparent)}.project-info h3{margin:0;font-family:Grotesk,Arial,sans-serif;font-size:clamp(19px,1.8vw,28px);font-weight:400;letter-spacing:-.025em}.tags{font-size:12px;text-transform:uppercase;letter-spacing:.08em;align-self:end}.dark-block{background:var(--dark);color:var(--paper)}.services-list{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(244,239,232,.18)}.service-card{min-height:380px;padding:24px;border-right:1px solid rgba(244,239,232,.18);display:flex;flex-direction:column;justify-content:space-between}.service-card:last-child{border-right:0}.service-card h3{font-family:Grotesk,Arial,sans-serif;font-size:clamp(24px,2.6vw,40px);font-weight:400;line-height:1;letter-spacing:-.03em;margin:0}.service-card p{font-size:17px;color:rgba(244,239,232,.62);line-height:1.18}.service-meta{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:rgba(244,239,232,.48)}.sketches{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:10px;align-items:end}.sketches img{width:100%;height:clamp(220px,34vw,520px);filter:none;transition:transform .9s var(--ease)}.sketches img:hover{filter:none;transform:scale(.985)}.cta-band{padding:clamp(70px,9vw,130px) var(--pad);display:grid;grid-template-columns:1.3fr auto;gap:30px;align-items:end;border-top:1px solid var(--line)}.cta-band h2{font-family:Grotesk,Arial,sans-serif;font-size:clamp(36px,5.4vw,82px);font-weight:400;line-height:.96;letter-spacing:-.04em;margin:0}.footer{padding:var(--pad);border-top:1px solid var(--line)}.footer-logo{font-family:Grotesk,Arial,sans-serif;font-size:clamp(46px,10vw,150px);font-weight:400;line-height:.86;letter-spacing:-.06em;margin-bottom:60px}.footer-grid{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:32px}.footer p,.footer a{color:var(--muted);line-height:1.28}.footer h4{margin:0 0 14px;text-transform:uppercase;font-size:12px;letter-spacing:.1em}.page-hero{padding:calc(var(--pad) + 110px) var(--pad) clamp(40px,7vw,90px);min-height:70vh;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}.page-hero h1{font-family:Grotesk,Arial,sans-serif;font-size:var(--big);font-weight:400;line-height:.9;letter-spacing:-.045em;margin:0}.page-hero p{font-size:clamp(18px,2.1vw,32px);line-height:1.02;color:var(--muted);max-width:780px}.top-line{border-top:1px solid var(--line)}.case-hero{position:relative;height:100vh;background:#000;color:white;overflow:hidden}.case-hero img{width:100%;height:100%;opacity:.82}.case-title{position:absolute;left:var(--pad);right:var(--pad);bottom:var(--pad);display:grid;grid-template-columns:1.4fr .8fr;gap:30px;align-items:end}.case-title h1{font-family:Grotesk,Arial,sans-serif;font-size:var(--big);font-weight:400;line-height:.9;letter-spacing:-.045em;margin:0}.case-title p{font-size:clamp(17px,1.55vw,24px);line-height:1.14}.info-table{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.info-cell{padding:22px;border-right:1px solid var(--line);min-height:120px}.info-cell:last-child{border-right:0}.info-cell span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:18px}.case-gallery{padding:10px;display:grid;grid-template-columns:repeat(12,1fr);gap:10px}.case-gallery figure{margin:0;overflow:hidden}.case-gallery img{width:100%;height:100%}.case-gallery .wide{grid-column:span 8;height:68vh}.case-gallery .small{grid-column:span 4;height:68vh}.case-gallery .half{grid-column:span 6;height:58vh}.case-gallery .full{grid-column:span 12;height:82vh}.next-prev{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.next-prev a{padding:40px var(--pad);font-family:Grotesk,Arial,sans-serif;font-size:clamp(30px,4.6vw,78px);letter-spacing:-.045em}.next-prev a:last-child{text-align:right;border-left:1px solid var(--line)}.process-grid,.pricing-grid,.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.process-card,.price-card,.article-card{border:1px solid var(--line);padding:24px;min-height:310px;display:flex;flex-direction:column;justify-content:space-between}.process-card b,.price-card b{font-family:Grotesk,Arial,sans-serif;font-size:clamp(32px,4.6vw,70px);font-weight:400;letter-spacing:-.04em}.process-card h3,.price-card h3,.article-card h3{font-family:Grotesk,Arial,sans-serif;font-size:clamp(23px,2.4vw,36px);font-weight:400;line-height:1;letter-spacing:-.03em;margin:0}.form-wrap{display:grid;grid-template-columns:.9fr 1.2fr;gap:clamp(50px,9vw,160px);padding:calc(var(--pad) + 110px) var(--pad) var(--pad)}form{display:grid;gap:10px}input,textarea{width:100%;border:1px solid var(--line);background:transparent;padding:18px;border-radius:0}textarea{min-height:220px;resize:vertical}.submit{border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:18px;border-radius:999px;cursor:pointer;text-transform:uppercase;font-family:Grotesk,Arial,sans-serif}.contact-panel{position:fixed;inset:0 0 auto 0;min-height:100vh;z-index:120;background:var(--paper);color:var(--ink);transform:translateY(-105%);transition:transform .9s var(--ease);padding:var(--pad);display:grid;grid-template-rows:auto 1fr}.contact-panel.open{transform:translateY(0)}.panel-top{display:flex;justify-content:space-between;align-items:center}.panel-close{border:1px solid var(--ink);background:transparent;border-radius:999px;padding:10px 17px;cursor:pointer}.panel-content{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}.panel-content h2{font-family:Grotesk,Arial,sans-serif;font-size:clamp(44px,8vw,130px);font-weight:400;line-height:.9;letter-spacing:-.055em;margin:0}.panel-links{display:grid;grid-template-columns:1fr 1fr;gap:24px;font-size:20px}.panel-links span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}.mobile-menu{display:none}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal.in{opacity:1;transform:translateY(0)}
@media(max-width:900px){.nav{padding:0}.nav-left,.nav-right{display:none}.mobile-open{display:block;justify-self:end}.nav{grid-template-columns:1fr auto}.brand{text-align:left}.mobile-menu{display:block;position:fixed;inset:0;z-index:110;background:var(--dark);color:var(--paper);padding:var(--pad);transform:translateX(105%);transition:transform .75s var(--ease)}.mobile-menu.open{transform:translateX(0)}.mobile-menu nav{display:grid;gap:18px;margin-top:90px}.mobile-menu a{font-family:Grotesk,Arial,sans-serif;font-size:clamp(44px,13vw,86px);line-height:.9;letter-spacing:-.05em}.hero-bottom,.intro-grid,.cta-band,.page-hero,.case-title,.form-wrap,.panel-content{grid-template-columns:1fr}.portfolio-grid{display:block}.project-card{height:68vh!important;margin-bottom:10px}.services-list,.process-grid,.pricing-grid,.blog-grid,.footer-grid,.info-table{grid-template-columns:1fr}.service-card,.info-cell{border-right:0;border-bottom:1px solid var(--line)}.sketches{grid-template-columns:1fr}.case-gallery{display:block}.case-gallery figure{height:62vh!important;margin-bottom:10px}.next-prev{grid-template-columns:1fr}.next-prev a:last-child{text-align:left;border-left:0;border-top:1px solid var(--line)}.page-hero{min-height:auto;padding-top:120px}.footer-logo{font-size:22vw}.hero-title{font-size:14vw}.panel-links{grid-template-columns:1fr}.site-header{mix-blend-mode:normal}.site-header.nav-inverse{color:#fff}}

.lightbox-trigger{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in;color:inherit;overflow:hidden}.lightbox-trigger img{width:100%;height:100%;transition:transform 1s var(--ease),filter .6s var(--ease)}.lightbox-trigger:hover img{transform:scale(1.025);filter:saturate(1.04)}.tp-lightbox{position:fixed;inset:0;z-index:250;display:grid;grid-template-rows:auto 1fr auto;background:rgba(7,7,6,.94);color:var(--paper);opacity:0;pointer-events:none;transition:opacity .35s var(--ease);touch-action:none}.tp-lightbox.open{opacity:1;pointer-events:auto}.tp-lightbox-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px var(--pad);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.tp-lightbox-close,.tp-lightbox-arrow{border:1px solid rgba(244,239,232,.36);background:rgba(244,239,232,.04);color:var(--paper);border-radius:999px;cursor:pointer;transition:background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}.tp-lightbox-close{padding:10px 16px;text-transform:uppercase}.tp-lightbox-close:hover,.tp-lightbox-arrow:hover{background:rgba(244,239,232,.14);border-color:rgba(244,239,232,.72)}.tp-lightbox-stage{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;padding:0 var(--pad)}.tp-lightbox-image{max-width:min(92vw,1600px);max-height:78vh;width:auto;height:auto;object-fit:contain;opacity:0;transform:scale(.985);transition:opacity .32s var(--ease),transform .32s var(--ease)}.tp-lightbox.open .tp-lightbox-image.loaded{opacity:1;transform:scale(1)}.tp-lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;font-size:24px;line-height:1}.tp-lightbox-arrow:hover{transform:translateY(-50%) scale(1.04)}.tp-lightbox-prev{left:var(--pad)}.tp-lightbox-next{right:var(--pad)}.tp-lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px var(--pad);border-top:1px solid rgba(244,239,232,.14)}.tp-lightbox-caption{font-size:14px;color:rgba(244,239,232,.72)}.tp-lightbox-count{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:rgba(244,239,232,.58)}body.lightbox-lock{overflow:hidden}
.contact-hero{padding:calc(var(--pad) + 120px) var(--pad) clamp(70px,10vw,150px);min-height:82vh;display:grid;grid-template-columns:1.18fr .82fr;gap:clamp(36px,7vw,120px);align-items:end}.contact-hero h1{font-size:clamp(48px,8vw,126px);font-weight:400;line-height:.89;letter-spacing:-.055em;margin:18px 0 0}.contact-intro{display:grid;gap:28px;align-content:end}.contact-intro p{font-size:clamp(19px,2.1vw,34px);line-height:1.04;color:var(--muted);margin:0}.contact-main-cta{display:inline-flex;width:max-content;align-items:center;justify-content:center;border:1px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:999px;padding:16px 24px;text-transform:uppercase;font-size:13px;letter-spacing:.06em;transition:transform .3s var(--ease),background .3s var(--ease),color .3s var(--ease)}.contact-main-cta:hover{transform:translateY(-2px);background:transparent;color:var(--ink)}.contact-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 var(--pad) var(--pad)}.contact-card{min-height:310px;border:1px solid var(--line);padding:24px;display:flex;flex-direction:column;justify-content:space-between;background:rgba(255,255,255,.13);transition:background .35s var(--ease),transform .35s var(--ease)}.contact-card:hover{background:rgba(255,255,255,.32);transform:translateY(-3px)}.contact-card span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.contact-card strong{font-size:clamp(28px,3.2vw,52px);font-weight:400;line-height:.98;letter-spacing:-.04em}.contact-card em{font-style:normal;color:var(--muted);line-height:1.2}.contact-brief-block .eyebrow{color:rgba(244,239,232,.58)}
.service-packages{padding:0 var(--pad) var(--pad);display:grid;gap:10px}.service-package{display:grid;grid-template-columns:.18fr 1.35fr .47fr;gap:clamp(20px,4vw,70px);align-items:stretch;border-top:1px solid var(--line);padding:clamp(26px,4.6vw,72px) 0}.service-package:last-child{border-bottom:1px solid var(--line)}.service-number{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:8px}.service-copy h2{font-size:clamp(38px,5.6vw,94px);font-weight:400;line-height:.92;letter-spacing:-.052em;margin:0 0 22px}.service-copy p{font-size:clamp(18px,1.9vw,30px);line-height:1.07;color:var(--muted);max-width:920px;margin:0 0 34px}.service-details{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.service-details div{border:1px solid var(--line);padding:18px;min-height:150px;color:var(--muted);line-height:1.18}.service-details span{display:block;text-transform:uppercase;font-size:11px;letter-spacing:.1em;color:var(--ink);margin-bottom:18px}.service-action{display:flex;align-items:flex-end;justify-content:flex-end}.services-hero{min-height:64vh}
@media(max-width:900px){.tp-lightbox-top,.tp-lightbox-bottom{padding:14px 16px}.tp-lightbox-stage{padding:0}.tp-lightbox-image{max-width:100vw;max-height:76vh}.tp-lightbox-arrow{display:none}.tp-lightbox-caption{font-size:13px}.contact-hero,.contact-highlights,.service-package,.service-details{grid-template-columns:1fr}.contact-hero{min-height:auto;padding-top:120px}.contact-highlights{padding-bottom:10px}.contact-card{min-height:230px}.service-package{gap:22px}.service-action{justify-content:flex-start}.service-copy h2{font-size:clamp(40px,12vw,72px)}}

.contact-hero-compact h1{font-size:clamp(42px,6.1vw,92px);max-width:980px}.contact-highlighted .contact-card strong a{text-decoration:none}.social-card strong{font-size:clamp(24px,2.7vw,42px);line-height:1.05}.sketch-tile{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;overflow:hidden;text-align:left}.sketch-lightbox-grid{grid-template-columns:1fr .7fr .9fr .8fr}.sketch-lightbox-grid .sketch-tile:nth-child(2){align-self:start}.sketch-lightbox-grid .sketch-tile:nth-child(4){align-self:center}.services-cms-list{padding:0 var(--pad) var(--pad);display:grid;gap:10px}.service-row{display:grid;grid-template-columns:minmax(260px,.72fr) 1.35fr .44fr;gap:clamp(18px,3vw,48px);align-items:stretch;border-top:1px solid var(--line);padding:10px 0}.service-row:last-child{border-bottom:1px solid var(--line)}.service-media{display:block;height:clamp(280px,36vw,520px);overflow:hidden;background:#ddd}.service-media img{width:100%;height:100%;transition:transform .9s var(--ease),filter .5s var(--ease)}.service-media:hover img{transform:scale(1.035);filter:saturate(1.04)}.service-body{padding:clamp(18px,3vw,42px) 0;display:flex;flex-direction:column;justify-content:center}.service-index{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:18px}.service-body h2{font-size:clamp(34px,4.5vw,76px);font-weight:400;line-height:.95;letter-spacing:-.045em;margin:0 0 18px}.service-body p{font-size:clamp(17px,1.55vw,24px);line-height:1.14;color:var(--muted);max-width:820px;margin:0 0 24px}.service-points{display:flex;flex-wrap:wrap;gap:8px}.service-points span{border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:var(--muted);font-size:13px}.service-cta{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:18px;padding:clamp(18px,3vw,42px) 0}.service-cta span{font-size:13px;color:var(--muted);text-align:right}.team-section{padding:0 var(--pad) clamp(80px,10vw,150px)}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.team-card{border:1px solid var(--line);background:rgba(255,255,255,.13)}.team-card img{width:100%;height:clamp(300px,34vw,520px);filter:grayscale(1);transition:filter .5s var(--ease)}.team-card:hover img{filter:grayscale(0)}.team-card div{padding:20px}.team-card span,.value-grid span,.article-card span{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.team-card h3{font-size:clamp(22px,2.4vw,36px);font-weight:400;line-height:1;letter-spacing:-.03em;margin:0}.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.value-grid article{border:1px solid rgba(244,239,232,.18);padding:22px;min-height:250px;display:flex;flex-direction:column;justify-content:space-between}.value-grid h3{font-size:clamp(24px,2.4vw,40px);font-weight:400;margin:0}.value-grid p{color:rgba(244,239,232,.62);line-height:1.18}.blog-cms-list{padding:0 var(--pad) var(--pad)}.blog-feature{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,80px);align-items:center;border-top:1px solid var(--line);padding:10px 0 clamp(60px,8vw,110px)}.blog-image{height:clamp(380px,48vw,720px);overflow:hidden}.blog-image img,.article-card img{width:100%;height:100%;transition:transform .9s var(--ease)}.blog-image:hover img,.article-card:hover img{transform:scale(1.035)}.blog-copy h2{font-size:clamp(36px,5vw,82px);font-weight:400;letter-spacing:-.045em;line-height:.96;margin:0 0 22px}.blog-copy p{font-size:clamp(18px,1.7vw,26px);line-height:1.14;color:var(--muted);margin-bottom:30px}.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.article-card{min-height:auto}.article-card img{height:260px;margin:-24px -24px 22px;width:calc(100% + 48px);max-width:none}.article-card h3{font-size:clamp(22px,2.1vw,34px);font-weight:400;line-height:1;letter-spacing:-.03em;margin:0 0 16px}.article-card p{font-size:16px;color:var(--muted);line-height:1.2}.article-page{padding-top:calc(var(--pad) + 100px)}.article-hero{padding:0 var(--pad) clamp(36px,6vw,90px);display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}.article-hero h1{font-size:clamp(42px,6vw,96px);font-weight:400;line-height:.95;letter-spacing:-.045em;margin:0}.article-hero p{font-size:clamp(19px,2vw,30px);color:var(--muted);line-height:1.08}.article-hero-image{width:100%;height:72vh}.article-body{max-width:860px;margin:0 auto;padding:clamp(60px,9vw,130px) var(--pad);font-size:clamp(19px,1.7vw,25px);line-height:1.22;color:var(--muted)}.article-body p{margin:0 0 28px}@media(max-width:900px){.sketch-lightbox-grid,.service-row,.team-grid,.value-grid,.blog-feature,.article-grid,.article-hero{grid-template-columns:1fr}.service-cta{align-items:flex-start;padding-top:0}.service-cta span{text-align:left}.service-media{height:360px}.team-section{padding-bottom:80px}.value-grid article{min-height:210px}.article-hero-image{height:54vh}.contact-hero-compact h1{font-size:clamp(42px,12vw,70px)}}

.team-card p{font-size:16px;line-height:1.22;color:var(--muted);margin:14px 0 0;max-width:92%;}
.price-card h3{margin-top:auto;}

.sketches-section .section-head{margin-bottom:16px}
.sketch-lightbox-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;align-items:stretch}
.sketch-lightbox-grid .sketch-tile{height:clamp(190px,24vw,390px)}
.sketch-lightbox-grid .sketch-tile:nth-child(1),.sketch-lightbox-grid .sketch-tile:nth-child(4){grid-column:span 2}
.sketch-lightbox-grid .sketch-tile:nth-child(2),.sketch-lightbox-grid .sketch-tile:nth-child(3),.sketch-lightbox-grid .sketch-tile:nth-child(5),.sketch-lightbox-grid .sketch-tile:nth-child(6){grid-column:span 2}
.sketch-lightbox-grid .sketch-tile img{height:100%;width:100%;object-fit:cover;filter:none!important}
@media(max-width:900px){.sketch-lightbox-grid{grid-template-columns:repeat(2,1fr)}.sketch-lightbox-grid .sketch-tile{grid-column:span 1!important;height:240px}}
@media(max-width:560px){.sketch-lightbox-grid{grid-template-columns:1fr}.sketch-lightbox-grid .sketch-tile{height:280px}}

.sketch-lightbox-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:10px!important;align-items:stretch!important}
.sketch-lightbox-grid .sketch-tile{grid-column:auto!important;height:clamp(220px,24vw,380px)!important}
.sketch-lightbox-grid .sketch-tile img{width:100%!important;height:100%!important;object-fit:cover!important;filter:none!important}
.team-card img{filter:none!important;object-fit:cover;object-position:center}
.team-card:hover img{filter:none!important}
@media(max-width:900px){.sketch-lightbox-grid{grid-template-columns:repeat(2,1fr)!important}.sketch-lightbox-grid .sketch-tile{height:250px!important}}
@media(max-width:560px){.sketch-lightbox-grid{grid-template-columns:1fr!important}.sketch-lightbox-grid .sketch-tile{height:290px!important}}

.team-card img{object-fit:cover!important;object-position:center 32%!important;filter:none!important;}
.quote-mini,
a.cta[href="contact.html"]{background:#000!important;color:#fff!important;border-color:#000!important;}
.quote-mini:hover,
a.cta[href="contact.html"]:hover{background:#000!important;color:#fff!important;border-color:#000!important;transform:translateY(-2px);}
.site-header.nav-inverse .quote-mini{background:#000!important;color:#fff!important;border-color:#000!important;}
.footer .cta[href="contact.html"]{background:#000!important;color:#fff!important;border-color:#000!important;}
.hero-media video{opacity:1!important;transform:none!important;}

.nav{grid-template-columns:auto 1fr auto!important;}
.brand{justify-self:start;text-align:left;letter-spacing:.075em!important;}
.brand b{letter-spacing:.075em!important;}
.nav-right{justify-self:end;}
.hero-clean{grid-template-rows:1fr auto;}
.hero-bottom-clean{grid-template-columns:1fr!important;margin-top:24px;}
.services-hub{padding-top:0;}
.service-hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.service-hub-card{border:1px solid var(--line);padding:clamp(24px,4vw,54px);min-height:360px;display:flex;flex-direction:column;justify-content:space-between;background:rgba(255,255,255,.13);}
.service-hub-card h3{font-size:clamp(30px,4vw,64px);font-weight:400;line-height:.96;letter-spacing:-.04em;margin:20px 0;}
.service-hub-card p{color:var(--muted);font-size:clamp(17px,1.45vw,23px);line-height:1.16;max-width:760px;}
@media(max-width:900px){.nav{grid-template-columns:1fr auto!important}.brand{justify-self:start}.service-hub-grid{grid-template-columns:1fr}.hero-bottom-clean{display:block}}

.nav-right .quote-mini{
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
  padding:10px 16px!important;
  margin-left:clamp(4px,1vw,10px);
}
.site-header.nav-inverse .nav-right .quote-mini{
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
}
.nav-right .quote-mini:hover{
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
  transform:translateY(-1px);
}
.footer{
  display:grid;
  grid-template-columns:minmax(260px,1.25fr) minmax(520px,2fr);
  gap:clamp(32px,6vw,110px);
  align-items:end;
}
.footer-logo{
  margin-bottom:0!important;
  align-self:end;
  letter-spacing:.045em!important;
  line-height:.72!important;
}
.footer-grid{
  grid-template-columns:repeat(4,1fr)!important;
  align-items:end;
}
.footer .cta[href="contact.html"]{display:none!important;}
.mobile-quote{
  width:max-content;
  margin-top:20px;
  font-size:14px!important;
  letter-spacing:.06em!important;
}
@media(max-width:900px){
  .footer{display:block;}
  .footer-logo{margin-bottom:46px!important;line-height:.86!important;}
  .footer-grid{grid-template-columns:1fr!important;}
}

.footer{
  grid-template-columns:minmax(220px,.82fr) minmax(620px,2.4fr)!important;
  gap:clamp(28px,4vw,72px)!important;
}
.footer-logo{
  font-size:clamp(38px,5.2vw,96px)!important;
  line-height:.82!important;
  letter-spacing:.065em!important;
  white-space:nowrap!important;
}
.cta-band h2,
.next-prev a{
  font-size:clamp(28px,4.2vw,62px)!important;
  line-height:1!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
}
.nav-right{gap:clamp(14px,1.8vw,28px)!important;}
.nav-right a:not(.quote-mini){display:inline-flex;align-items:center;}
@media(max-width:1100px){
  .footer{display:block!important;}
  .footer-logo{margin-bottom:46px!important;font-size:clamp(40px,12vw,96px)!important;}
  .footer-grid{grid-template-columns:repeat(2,1fr)!important;gap:30px!important;}
}
@media(max-width:560px){
  .footer-grid{grid-template-columns:1fr!important;}
}

.site-header .brand{
  color:#fff!important;
  mix-blend-mode:difference!important;
  letter-spacing:.095em!important;
  z-index:2;
}
.site-header .brand b{letter-spacing:.095em!important;}

.footer{
  display:grid!important;
  grid-template-columns:minmax(360px,.78fr) minmax(760px,1.6fr)!important;
  gap:clamp(40px,5vw,92px)!important;
  align-items:end!important;
  padding:clamp(28px,3vw,48px) var(--pad)!important;
}
.footer-logo{
  font-size:clamp(38px,3.7vw,72px)!important;
  line-height:.86!important;
  letter-spacing:.075em!important;
  white-space:nowrap!important;
  margin:0!important;
  align-self:end!important;
  max-width:100%!important;
}
.footer-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(120px,1fr))!important;
  gap:clamp(28px,4vw,74px)!important;
  align-items:end!important;
}
.footer-grid > div{min-width:0;}
.footer h4{margin-bottom:18px!important;}
.footer p{margin:0!important;}

.portfolio-note{
  grid-column:span 4;
  height:50vh;
  min-height:360px;
  border:1px solid var(--line);
  padding:clamp(20px,2.4vw,34px);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:transparent;
}
.portfolio-note p{
  margin:18px 0 0;
  max-width:460px;
  font-size:clamp(24px,2.9vw,48px);
  line-height:1;
  letter-spacing:-.035em;
}
.inline-link{
  width:max-content;
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.08em;
}
.next-prev a:last-child{border-left:0!important;}

@media(max-width:1100px){
  .footer{
    grid-template-columns:1fr!important;
    gap:42px!important;
  }
  .footer-logo{
    font-size:clamp(42px,10vw,96px)!important;
  }
  .footer-grid{
    grid-template-columns:repeat(2,minmax(140px,1fr))!important;
    gap:32px!important;
  }
}
@media(max-width:900px){
  .portfolio-note{height:auto;min-height:280px;margin-bottom:10px;}
}
@media(max-width:560px){
  .footer-grid{grid-template-columns:1fr!important;}
}

.site-header .brand,
.site-header .brand b{
  color:#fff!important;
  mix-blend-mode:difference!important;
  letter-spacing:.095em!important;
  position:relative;
  z-index:3;
}

.footer{
  display:grid!important;
  grid-template-columns:minmax(420px,0.92fr) minmax(760px,1.8fr)!important;
  gap:clamp(48px,6vw,120px)!important;
  align-items:center!important;
  padding:clamp(42px,4.2vw,72px) var(--pad)!important;
  border-top:1px solid var(--line)!important;
}
.footer-logo{
  font-size:clamp(64px,6vw,118px)!important;
  line-height:.82!important;
  letter-spacing:.055em!important;
  white-space:nowrap!important;
  margin:0!important;
  align-self:center!important;
  max-width:100%!important;
}
.footer-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(120px,1fr))!important;
  gap:clamp(36px,4.5vw,82px)!important;
  align-items:start!important;
}
.footer-grid > div{min-width:0!important;align-self:start!important;}
.footer h4{margin:0 0 18px!important;}
.footer p{margin:0!important;}

.portfolio-note{display:none!important;}

.next-prev a:last-child{border-left:0!important;}
.next-prev{border-top:1px solid var(--line)!important;}

@media(max-width:1200px){
  .footer{grid-template-columns:1fr!important;gap:42px!important;}
  .footer-logo{font-size:clamp(56px,11vw,118px)!important;}
  .footer-grid{grid-template-columns:repeat(4,minmax(120px,1fr))!important;}
}
@media(max-width:760px){
  .footer-grid{grid-template-columns:repeat(2,minmax(120px,1fr))!important;gap:30px!important;}
}
@media(max-width:560px){
  .footer-grid{grid-template-columns:1fr!important;}
}

.site-header{
  background:transparent!important;
  box-shadow:none!important;
  isolation:auto!important;
}
.site-header .brand,
.site-header .brand b,
.site-header .nav-right a:not(.quote-mini){
  color:#fff!important;
  mix-blend-mode:difference!important;
  position:relative!important;
  z-index:5!important;
}
.site-header .nav-right a:not(.quote-mini){
  opacity:1!important;
}
.site-header .quote-mini{
  mix-blend-mode:normal!important;
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
}
.footer{
  display:grid!important;
  grid-template-columns:minmax(330px,.78fr) minmax(720px,1.9fr)!important;
  gap:clamp(54px,6vw,120px)!important;
  align-items:start!important;
  padding:clamp(48px,5vw,84px) var(--pad)!important;
}
.footer-logo{
  display:flex!important;
  flex-direction:column!important;
  align-self:start!important;
  justify-self:start!important;
  margin:0!important;
  padding:0!important;
  font-size:clamp(72px,7.4vw,138px)!important;
  line-height:.78!important;
  letter-spacing:.055em!important;
  white-space:normal!important;
  max-width:none!important;
}
.footer-logo span{display:block!important;line-height:.78!important;}
.footer-grid{
  align-self:start!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(120px,1fr))!important;
  gap:clamp(36px,4.5vw,82px)!important;
  align-items:start!important;
  padding-top:0!important;
}
.footer-grid > div{align-self:start!important;}
.footer h4{margin-top:0!important;}
@media(max-width:1200px){
  .footer{grid-template-columns:1fr!important;gap:42px!important;}
  .footer-logo{font-size:clamp(62px,15vw,130px)!important;}
  .footer-grid{grid-template-columns:repeat(4,minmax(120px,1fr))!important;}
}
@media(max-width:760px){
  .footer-grid{grid-template-columns:repeat(2,minmax(120px,1fr))!important;}
}
@media(max-width:560px){
  .footer-grid{grid-template-columns:1fr!important;}
}

.page{
  opacity:1!important;
  animation:none!important;
}
.site-header,
.site-header .nav,
.site-header .nav-right{
  background:transparent!important;
  box-shadow:none!important;
  isolation:auto!important;
}
.site-header .brand,
.site-header .brand b,
.site-header .nav-right a:not(.quote-mini){
  color:#fff!important;
  mix-blend-mode:difference!important;
  opacity:1!important;
  position:relative!important;
  z-index:10!important;
  text-shadow:none!important;
}
.site-header .quote-mini{
  mix-blend-mode:normal!important;
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
  position:relative!important;
  z-index:11!important;
}
.footer-logo{
  transform:translateY(-18px)!important;
}
@media(max-width:900px){
  .footer-logo{transform:none!important;}
}

.site-header{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  z-index:1000!important;
  padding:18px var(--pad)!important;
  background:transparent!important;
  color:#fff!important;
  pointer-events:none!important;
  mix-blend-mode:normal!important;
  isolation:isolate!important;
}
.site-header .nav-blend{
  width:100%!important;
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  align-items:center!important;
  min-height:46px!important;
  gap:24px!important;
  padding:0 190px 0 0!important;
  color:#fff!important;
  mix-blend-mode:difference!important;
  isolation:auto!important;
  pointer-events:none!important;
  position:relative!important;
  z-index:2!important;
}
.site-header .brand,
.site-header .brand b,
.site-header .nav-right a:not(.quote-mini){
  color:#fff!important;
  mix-blend-mode:normal!important;
  opacity:1!important;
  text-shadow:none!important;
}
.site-header .brand{
  justify-self:start!important;
  letter-spacing:.08em!important;
}
.site-header .nav-right{
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  gap:clamp(18px,2vw,34px)!important;
  color:#fff!important;
  mix-blend-mode:normal!important;
}
.site-header .nav-right a:not(.quote-mini){
  pointer-events:auto!important;
}
.site-header .nav-quote-fixed{
  position:absolute!important;
  top:18px!important;
  right:var(--pad)!important;
  z-index:5!important;
  pointer-events:auto!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
  mix-blend-mode:normal!important;
}
.site-header .nav-quote-fixed:hover{
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
  transform:none!important;
}

.portfolio-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:stretch!important;
  grid-auto-flow:row!important;
}
.portfolio-grid .project-card,
.project-card:nth-child(1),.project-card:nth-child(2),.project-card:nth-child(3),
.project-card:nth-child(4),.project-card:nth-child(5),.project-card:nth-child(6),
.project-card:nth-child(7),.project-card:nth-child(8),.project-card:nth-child(9){
  grid-column:auto!important;
  height:clamp(360px,39vw,640px)!important;
  min-height:0!important;
}
.portfolio-grid .project-card img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
.footer-logo{
  transform:translateY(-42px)!important;
}
@media(max-width:900px){
  .site-header .nav-blend{
    grid-template-columns:1fr auto!important;
    padding-right:0!important;
    mix-blend-mode:normal!important;
    color:#fff!important;
  }
  .site-header .nav-right,
  .site-header .nav-quote-fixed{display:none!important;}
  .site-header .mobile-open{display:block!important;pointer-events:auto!important;}
  .portfolio-grid{display:block!important;}
  .portfolio-grid .project-card{height:68vh!important;margin-bottom:10px!important;}
  .footer-logo{transform:none!important;}
}

.site-header{isolation:auto!important;contain:none!important;}
.site-header .nav-blend{isolation:auto!important;contain:none!important;}

.portfolio-grid{
  display:grid!important;
  grid-template-columns:repeat(12,1fr)!important;
  gap:10px!important;
  align-items:stretch!important;
  grid-auto-flow:row!important;
}
.project-card{
  min-height:400px!important;
}
.project-card:nth-child(1),
.project-card:nth-child(6){
  grid-column:span 7!important;
  height:72vh!important;
}
.project-card:nth-child(2),
.project-card:nth-child(5){
  grid-column:span 5!important;
  height:72vh!important;
}
.project-card:nth-child(3),
.project-card:nth-child(4),
.project-card:nth-child(7),
.project-card:nth-child(8),
.project-card:nth-child(9){
  grid-column:span 4!important;
  height:50vh!important;
}
.portfolio-grid .project-card img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
.footer-logo{
  font-size:clamp(56px,6.2vw,112px)!important;
  line-height:.78!important;
  letter-spacing:.055em!important;
  transform:translateY(-18px)!important;
}
@media(max-width:900px){
  .portfolio-grid{display:block!important;}
  .portfolio-grid .project-card{height:68vh!important;margin-bottom:10px!important;}
  .footer-logo{font-size:clamp(56px,18vw,110px)!important;transform:none!important;}
}

.site-header{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  z-index:2147483000!important;
  padding:18px var(--pad)!important;
  background:transparent!important;
  color:#fff!important;
  pointer-events:none!important;
  mix-blend-mode:difference!important;
  isolation:auto!important;
  contain:none!important;
  box-shadow:none!important;
}
.site-header .nav,
.site-header .nav-blend{
  position:relative!important;
  width:100%!important;
  min-height:46px!important;
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  align-items:center!important;
  gap:24px!important;
  padding:0 210px 0 0!important;
  background:transparent!important;
  color:#fff!important;
  mix-blend-mode:normal!important;
  isolation:auto!important;
  contain:none!important;
}
.site-header .brand,
.site-header .brand b,
.site-header .nav-right,
.site-header .nav-right a:not(.quote-mini){
  color:#fff!important;
  mix-blend-mode:normal!important;
  opacity:1!important;
  text-shadow:none!important;
  filter:none!important;
}
.site-header .brand{
  justify-self:start!important;
  text-align:left!important;
  letter-spacing:.095em!important;
  pointer-events:auto!important;
}
.site-header .brand b{letter-spacing:.095em!important;}
.site-header .nav-right{
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:clamp(18px,2vw,34px)!important;
  pointer-events:auto!important;
}
.site-header .nav-right a:not(.quote-mini){
  pointer-events:auto!important;
}
.nav-quote-fixed{
  position:fixed!important;
  top:18px!important;
  right:var(--pad)!important;
  z-index:2147483001!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
  mix-blend-mode:normal!important;
  pointer-events:auto!important;
  isolation:isolate!important;
}
.nav-quote-fixed:hover{
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
  transform:none!important;
}
.footer{
  display:grid!important;
  grid-template-columns:minmax(330px,.82fr) minmax(760px,1.9fr)!important;
  gap:clamp(54px,6vw,120px)!important;
  align-items:start!important;
  padding:clamp(56px,5vw,86px) var(--pad)!important;
}
.footer-logo{
  align-self:start!important;
  justify-self:start!important;
  margin:0!important;
  padding:0!important;
  transform:translateY(-34px)!important;
  font-size:clamp(58px,6.8vw,124px)!important;
  line-height:.78!important;
  letter-spacing:.055em!important;
  white-space:normal!important;
}
.footer-logo span{display:block!important;line-height:.78!important;}
.footer-grid{
  align-self:start!important;
  padding-top:0!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(120px,1fr))!important;
  gap:clamp(36px,4.5vw,82px)!important;
  align-items:start!important;
}
.footer-grid > div{align-self:start!important;}
.footer h4{margin-top:0!important;}
@media(max-width:900px){
  .site-header .nav,
  .site-header .nav-blend{padding-right:0!important;grid-template-columns:1fr auto!important;}
  .site-header .nav-right{display:none!important;}
  .site-header .mobile-open{display:block!important;pointer-events:auto!important;color:#fff!important;}
  .nav-quote-fixed{display:none!important;}
  .footer{grid-template-columns:1fr!important;gap:42px!important;}
  .footer-logo{transform:none!important;font-size:clamp(54px,17vw,112px)!important;}
  .footer-grid{grid-template-columns:repeat(2,minmax(120px,1fr))!important;}
}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr!important;}}

.footer-logo{
  transform:translateY(-6px)!important;
}
@media(max-width:900px){
  .footer-logo{transform:none!important;}
}

.page{
  opacity:1!important;
  animation:none!important;
  transform:none!important;
  filter:none!important;
}
.site-header{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  z-index:2147483000!important;
  width:100%!important;
  padding:22px var(--pad)!important;
  background:transparent!important;
  color:#fff!important;
  mix-blend-mode:difference!important;
  pointer-events:none!important;
  isolation:auto!important;
  contain:none!important;
  box-shadow:none!important;
}
.site-header .nav,
.site-header .nav-blend{
  width:100%!important;
  min-height:44px!important;
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  align-items:center!important;
  gap:32px!important;
  padding:0!important;
  background:transparent!important;
  color:#fff!important;
  mix-blend-mode:normal!important;
  pointer-events:none!important;
  isolation:auto!important;
  contain:none!important;
}
.site-header .brand,
.site-header .brand b,
.site-header .nav-right,
.site-header .nav-right a,
.site-header .mobile-open{
  color:#fff!important;
  background:transparent!important;
  opacity:1!important;
  text-shadow:none!important;
  filter:none!important;
  mix-blend-mode:normal!important;
}
.site-header .brand{
  justify-self:start!important;
  text-align:left!important;
  font-size:clamp(17px,1.25vw,23px)!important;
  letter-spacing:.105em!important;
  font-weight:400!important;
  pointer-events:auto!important;
}
.site-header .brand b{font-weight:400!important;letter-spacing:.105em!important;}
.site-header .nav-right{
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:clamp(22px,2.25vw,42px)!important;
  pointer-events:auto!important;
}
.site-header .nav-right a:not(.quote-mini){
  font-size:12px!important;
  letter-spacing:.04em!important;
  font-weight:400!important;
  line-height:1!important;
  pointer-events:auto!important;
}
.site-header .quote-mini,
.site-header .nav-quote{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  padding:0 24px!important;
  border:1px solid rgba(255,255,255,.92)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#fff!important;
  font-size:12px!important;
  letter-spacing:.04em!important;
  font-weight:400!important;
  line-height:1!important;
  pointer-events:auto!important;
  transition:border-color .25s ease, background .25s ease!important;
}
.site-header .quote-mini:hover,
.site-header .nav-quote:hover{
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  transform:none!important;
}
.nav-quote-fixed{display:none!important;}

body:has(.work-strip) .page-hero{
  min-height:54vh!important;
  padding-top:calc(var(--pad) + 82px)!important;
  padding-bottom:clamp(34px,5vw,72px)!important;
  align-items:end!important;
}
body:has(.work-strip) .page-hero h1{
  transform:translateY(-24px)!important;
}
body:has(.work-strip) .page-hero p{
  justify-self:end!important;
  max-width:440px!important;
  text-align:left!important;
  margin-right:clamp(0px,5vw,120px)!important;
  font-size:clamp(18px,1.45vw,26px)!important;
  line-height:1.06!important;
}
body:has(.work-strip) .section-head .section-title{
  font-size:clamp(26px,2.5vw,44px)!important;
  font-weight:400!important;
  letter-spacing:-.035em!important;
}

.portfolio-grid{
  display:grid!important;
  grid-template-columns:repeat(12,1fr)!important;
  gap:10px!important;
  align-items:stretch!important;
  grid-auto-flow:row!important;
}
.project-card{min-height:400px!important;}
.project-card:nth-child(1),
.project-card:nth-child(6){grid-column:span 7!important;height:72vh!important;}
.project-card:nth-child(2),
.project-card:nth-child(5){grid-column:span 5!important;height:72vh!important;}
.project-card:nth-child(3),
.project-card:nth-child(4),
.project-card:nth-child(7),
.project-card:nth-child(8),
.project-card:nth-child(9){grid-column:span 4!important;height:50vh!important;}
.portfolio-grid .project-card img{width:100%!important;height:100%!important;object-fit:cover!important;}

.next-prev a:last-child{border-left:0!important;}
.next-prev{border-top:1px solid var(--line)!important;}

.footer{
  display:grid!important;
  grid-template-columns:minmax(420px,.92fr) minmax(720px,1.7fr)!important;
  gap:clamp(60px,7vw,130px)!important;
  align-items:start!important;
  padding:clamp(72px,5.6vw,98px) var(--pad)!important;
}
.footer-logo{
  align-self:start!important;
  justify-self:start!important;
  margin:0!important;
  padding:0!important;
  transform:translateY(-10px)!important;
  font-size:clamp(74px,7.9vw,150px)!important;
  line-height:.78!important;
  letter-spacing:.055em!important;
  white-space:normal!important;
}
.footer-logo span{display:block!important;line-height:.78!important;}
.footer-grid{
  align-self:start!important;
  padding-top:0!important;
  margin-top:0!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(120px,1fr))!important;
  gap:clamp(36px,4.5vw,82px)!important;
  align-items:start!important;
}
.footer-grid > div{align-self:start!important;}
.footer h4{margin-top:0!important;}

@media(max-width:900px){
  .site-header{mix-blend-mode:normal!important;color:#fff!important;padding:18px var(--pad)!important;}
  .site-header .nav,.site-header .nav-blend{grid-template-columns:1fr auto!important;}
  .site-header .nav-right{display:none!important;}
  .site-header .mobile-open{display:block!important;pointer-events:auto!important;color:#fff!important;border-color:#fff!important;}
  body:has(.work-strip) .page-hero{grid-template-columns:1fr!important;min-height:auto!important;padding-top:120px!important;}
  body:has(.work-strip) .page-hero h1{transform:none!important;}
  body:has(.work-strip) .page-hero p{justify-self:start!important;margin-right:0!important;max-width:100%!important;}
  .portfolio-grid{display:block!important;}
  .portfolio-grid .project-card{height:68vh!important;margin-bottom:10px!important;}
  .footer{grid-template-columns:1fr!important;gap:42px!important;}
  .footer-logo{transform:none!important;font-size:clamp(54px,17vw,112px)!important;}
  .footer-grid{grid-template-columns:repeat(2,minmax(120px,1fr))!important;}
}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr!important;}}

.site-header{
  mix-blend-mode:normal!important;
  isolation:isolate!important;
  color:#fff!important;
}
.site-header .nav,
.site-header .nav-blend{
  mix-blend-mode:normal!important;
  isolation:isolate!important;
  color:#fff!important;
}
.site-header .brand,
.site-header .nav-right a:not(.quote-mini):not(.nav-quote){
  color:#fff!important;
  mix-blend-mode:difference!important;
  isolation:auto!important;
  opacity:1!important;
  text-shadow:none!important;
}
.site-header .quote-mini,
.site-header .nav-quote,
.site-header .nav-right .quote-mini,
.site-header .nav-right .nav-quote{
  mix-blend-mode:normal!important;
  isolation:isolate!important;
  background:transparent!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.95)!important;
  border-radius:999px!important;
  min-height:42px!important;
  padding:0 24px!important;
  font-weight:400!important;
  box-shadow:none!important;
}
.site-header .quote-mini:hover,
.site-header .nav-quote:hover,
.site-header .nav-right .quote-mini:hover,
.site-header .nav-right .nav-quote:hover{
  background:rgba(255,255,255,.14)!important;
  color:#fff!important;
  border-color:#fff!important;
  transform:none!important;
}

body:has(.filter-row) .section-head .section-title{
  font-size:clamp(22px,2.05vw,34px)!important;
  font-weight:300!important;
  letter-spacing:-.025em!important;
  line-height:1.05!important;
}
body:has(.filter-row) .page-hero p{
  font-weight:300!important;
  color:var(--muted)!important;
  line-height:1.08!important;
}
body:has(.filter-row) .page-hero h1{
  transform:translateY(-34px)!important;
}

body:has(.filter-row) .portfolio-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  width:100%!important;
  align-items:stretch!important;
}
body:has(.filter-row) .portfolio-grid .project-card,
body:has(.filter-row) .portfolio-grid .project-card:nth-child(n){
  grid-column:auto!important;
  height:clamp(330px,34vw,560px)!important;
  min-height:0!important;
  width:100%!important;
}
body:has(.filter-row) .portfolio-grid .project-card img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}

@media(max-width:1100px){
  body:has(.filter-row) .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  body:has(.filter-row) .portfolio-grid .project-card,
  body:has(.filter-row) .portfolio-grid .project-card:nth-child(n){height:clamp(300px,48vw,520px)!important;}
}
@media(max-width:700px){
  body:has(.filter-row) .portfolio-grid{display:block!important;}
  body:has(.filter-row) .portfolio-grid .project-card,
  body:has(.filter-row) .portfolio-grid .project-card:nth-child(n){height:68vh!important;margin-bottom:10px!important;}
}

.site-header{
  mix-blend-mode:normal!important;
  color:inherit!important;
  background:transparent!important;
  isolation:auto!important;
}
.site-header .brand,
.site-header .nav-right > a:not(.nav-quote),
.site-header .mobile-open{
  color:#fff!important;
  mix-blend-mode:difference!important;
  isolation:auto!important;
}
.site-header .nav-quote,
.site-header .quote-mini.nav-quote{
  mix-blend-mode:normal!important;
  background:#000!important;
  color:#fff!important;
  border:1px solid #000!important;
  border-radius:999px!important;
  padding:12px 22px!important;
  box-shadow:none!important;
}
.site-header .nav-quote:hover,
.site-header .quote-mini.nav-quote:hover{
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
  transform:none!important;
}
body.lightbox-lock .site-header{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.tp-lightbox{
  z-index:9999!important;
}
.tp-lightbox-close{
  position:relative;
  z-index:10001!important;
}

.site-header,
.site-header.nav-blend,
.site-header .nav,
.site-header .nav-blend,
.site-header .nav-right{
  mix-blend-mode:normal!important;
  isolation:auto!important;
  background:transparent!important;
  box-shadow:none!important;
}
.site-header{
  color:#080806!important;
  transition:color .18s ease!important;
}
.site-header.nav-white{
  color:#fff!important;
}
.site-header .brand,
.site-header .brand b,
.site-header .nav-right > a:not(.nav-quote),
.site-header .mobile-open{
  color:currentColor!important;
  mix-blend-mode:normal!important;
  opacity:1!important;
  text-shadow:none!important;
}
.site-header .nav-quote,
.site-header .quote-mini.nav-quote,
.site-header.nav-white .nav-quote,
.site-header.nav-white .quote-mini.nav-quote{
  mix-blend-mode:normal!important;
  background:#000!important;
  color:#fff!important;
  border:1px solid #000!important;
  border-radius:999px!important;
  padding:12px 22px!important;
  box-shadow:none!important;
}
.site-header .nav-quote:hover,
.site-header .quote-mini.nav-quote:hover,
.site-header.nav-white .nav-quote:hover,
.site-header.nav-white .quote-mini.nav-quote:hover{
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
  transform:none!important;
}
body.lightbox-lock .site-header{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

.site-header,
.site-header *{
  mix-blend-mode:normal!important;
}
.site-header{
  color:transparent!important;
  background:transparent!important;
  pointer-events:none!important;
}
.site-header .nav,
.site-header .nav-blend{
  background:transparent!important;
  box-shadow:none!important;
}
.site-header .brand,
.site-header .nav-right > a:not(.nav-quote):not(.quote-mini),
.site-header .mobile-open{
  color:#080806!important;
  transition:color .18s ease!important;
  text-shadow:none!important;
  opacity:1!important;
  pointer-events:auto!important;
}
.site-header .brand.nav-item-white,
.site-header .nav-right > a.nav-item-white:not(.nav-quote):not(.quote-mini),
.site-header .mobile-open.nav-item-white{
  color:#fff!important;
}
.site-header .brand.nav-item-black,
.site-header .nav-right > a.nav-item-black:not(.nav-quote):not(.quote-mini),
.site-header .mobile-open.nav-item-black{
  color:#080806!important;
}
.site-header .nav-quote,
.site-header .quote-mini.nav-quote,
.site-header .nav-right .nav-quote{
  background:#000!important;
  color:#fff!important;
  border:1px solid #000!important;
  border-radius:999px!important;
  padding:12px 22px!important;
  mix-blend-mode:normal!important;
  opacity:1!important;
  text-shadow:none!important;
  pointer-events:auto!important;
}
.site-header .nav-quote:hover,
.site-header .quote-mini.nav-quote:hover{
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
  transform:none!important;
}
body.lightbox-lock .site-header{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

.tp-lightbox{z-index:9999!important;background:rgba(7,7,6,.96)!important;}
.tp-lightbox-stage{padding:0 clamp(20px,3vw,56px)!important;}
.tp-lightbox-image{
  max-width:96vw!important;
  max-height:88vh!important;
  width:auto!important;
  height:auto!important;
  object-fit:contain!important;
}
.tp-lightbox-top{padding:16px var(--pad) 10px!important;}
.tp-lightbox-bottom{padding:10px var(--pad) 16px!important;}
@media(max-width:900px){
  .tp-lightbox-stage{padding:0!important;}
  .tp-lightbox-image{max-width:100vw!important;max-height:88vh!important;}
}

.services-hero,
.about-hero{
  min-height:54vh!important;
  padding-top:calc(var(--pad) + 82px)!important;
  padding-bottom:clamp(34px,5vw,72px)!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:40px!important;
  align-items:end!important;
}
.services-hero h1,
.about-hero h1{
  transform:translateY(-34px)!important;
}
.services-hero p,
.about-hero p{
  justify-self:end!important;
  max-width:440px!important;
  text-align:left!important;
  margin-right:clamp(0px,5vw,120px)!important;
  font-size:clamp(18px,1.45vw,26px)!important;
  line-height:1.06!important;
  font-weight:300!important;
  color:var(--muted)!important;
}
.contact-hero.contact-hero-compact{
  min-height:54vh!important;
  padding-top:calc(var(--pad) + 82px)!important;
  padding-bottom:clamp(34px,5vw,72px)!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:40px!important;
  align-items:end!important;
}
.contact-hero.contact-hero-compact h1{
  transform:translateY(-34px)!important;
  font-size:var(--big)!important;
  font-weight:400!important;
  line-height:.9!important;
  letter-spacing:-.045em!important;
  margin:0!important;
  max-width:none!important;
}
.contact-hero.contact-hero-compact .eyebrow{
  display:none!important;
}
.contact-hero.contact-hero-compact .contact-intro{
  justify-self:end!important;
  align-self:end!important;
  max-width:440px!important;
  margin-right:clamp(0px,5vw,120px)!important;
  gap:22px!important;
}
.contact-hero.contact-hero-compact .contact-intro p{
  font-size:clamp(18px,1.45vw,26px)!important;
  line-height:1.06!important;
  font-weight:300!important;
  text-align:left!important;
  color:var(--muted)!important;
}
.contact-hero.contact-hero-compact .contact-main-cta{
  font-size:12px!important;
  padding:13px 20px!important;
}
@media(max-width:900px){
  .services-hero,
  .about-hero,
  .contact-hero.contact-hero-compact{
    grid-template-columns:1fr!important;
    min-height:auto!important;
    padding-top:120px!important;
  }
  .services-hero h1,
  .about-hero h1,
  .contact-hero.contact-hero-compact h1{
    transform:none!important;
  }
  .services-hero p,
  .about-hero p,
  .contact-hero.contact-hero-compact .contact-intro{
    justify-self:start!important;
    margin-right:0!important;
    max-width:100%!important;
  }
}

@media (min-width: 1600px){
  body:has(.filter-row) .page-hero,
  .services-hero,
  .about-hero,
  .contact-hero.contact-hero-compact{
    min-height:clamp(430px,38vh,700px)!important;
    padding-top:calc(var(--pad) + 58px)!important;
    padding-bottom:clamp(24px,3.6vw,58px)!important;
    align-items:end!important;
  }

  body:has(.filter-row) .page-hero h1,
  .services-hero h1,
  .about-hero h1,
  .contact-hero.contact-hero-compact h1{
    transform:translateY(-10px)!important;
  }

  body:has(.filter-row) .page-hero p,
  .services-hero p,
  .about-hero p,
  .contact-hero.contact-hero-compact .contact-intro{
    margin-right:clamp(0px,4vw,90px)!important;
    max-width:430px!important;
  }
}

@media (min-width: 2200px){
  body:has(.filter-row) .page-hero,
  .services-hero,
  .about-hero,
  .contact-hero.contact-hero-compact{
    min-height:clamp(460px,34vh,720px)!important;
    padding-top:calc(var(--pad) + 52px)!important;
    padding-bottom:clamp(22px,3vw,54px)!important;
  }
}

.services-hero{
  grid-template-columns:1fr!important;
  min-height:clamp(300px,28vh,480px)!important;
  padding-bottom:clamp(24px,3vw,56px)!important;
}
.services-hero h1{
  align-self:end!important;
  transform:none!important;
}
.about-summary-clean{
  padding-top:clamp(42px,5vw,96px)!important;
  padding-bottom:clamp(72px,8vw,140px)!important;
}
.about-summary-clean .about-statement{
  width:min(58vw,1040px);
  margin-left:auto;
  margin-right:var(--pad);
}
.about-summary-clean .large-copy{
  font-size:clamp(46px,5.4vw,112px)!important;
  line-height:.96!important;
  letter-spacing:-.055em!important;
  margin:0 0 clamp(20px,2vw,36px)!important;
}
.about-summary-clean .text{
  max-width:720px!important;
  font-size:clamp(18px,1.35vw,25px)!important;
  line-height:1.2!important;
  color:var(--muted)!important;
}
.contact-hero.contact-hero-compact .contact-intro{
  text-align:right!important;
  align-items:flex-end!important;
  display:flex!important;
  flex-direction:column!important;
}
.contact-hero.contact-hero-compact .contact-intro p{
  text-align:right!important;
}
.contact-hero.contact-hero-compact .contact-main-cta{
  align-self:flex-end!important;
}
.contact-brief-block{
  display:none!important;
}
@media (min-width:1600px){
  .services-hero{
    min-height:clamp(300px,26vh,480px)!important;
  }
  .about-summary-clean{
    padding-top:clamp(34px,4vw,78px)!important;
  }
}
@media(max-width:900px){
  .about-summary-clean .about-statement{
    width:auto;
    margin-left:var(--pad);
  }
  .about-summary-clean .large-copy{
    font-size:clamp(42px,12vw,72px)!important;
  }
  .contact-hero.contact-hero-compact .contact-intro,
  .contact-hero.contact-hero-compact .contact-intro p{
    text-align:left!important;
    align-items:flex-start!important;
  }
  .contact-hero.contact-hero-compact .contact-main-cta{
    align-self:flex-start!important;
  }
}

.site-header,
.site-header *{
  mix-blend-mode: normal !important;
  isolation: auto !important;
  contain: none !important;
}
.site-header{
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  z-index: 1000 !important;
  width: 100% !important;
  padding: 24px var(--pad) 18px !important;
  pointer-events: none !important;
  background: transparent !important;
  color: #080808 !important;
  transform: none !important;
}
.site-header .nav,
.site-header .nav-clean{
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  align-items: center !important;
  gap: 32px !important;
  min-height: 48px !important;
  width: 100% !important;
  padding: 0 !important;
}
.site-header .brand{
  pointer-events: auto !important;
  justify-self: start !important;
  text-align: left !important;
  font-size: clamp(16px, 1.18vw, 23px) !important;
  letter-spacing: .13em !important;
  font-weight: 400 !important;
  color: #080808 !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
}
.site-header .brand b{
  font-weight: 400 !important;
  letter-spacing: .13em !important;
}
.site-header .nav-right{
  justify-self: end !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(24px, 3vw, 52px) !important;
  pointer-events: auto !important;
}
.site-header .nav-right > a:not(.nav-quote):not(.quote-mini),
.site-header .mobile-open{
  color: #080808 !important;
  border-color: currentColor !important;
  background: transparent !important;
  font-size: clamp(11px, .78vw, 14px) !important;
  letter-spacing: .035em !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  transition: color .18s ease, border-color .18s ease !important;
}
.site-header .brand.tp-nav-white,
.site-header .brand.tp-nav-white b,
.site-header .nav-right > a.tp-nav-white:not(.nav-quote):not(.quote-mini),
.site-header .mobile-open.tp-nav-white{
  color: #fff !important;
}
.site-header .brand.tp-nav-black,
.site-header .brand.tp-nav-black b,
.site-header .nav-right > a.tp-nav-black:not(.nav-quote):not(.quote-mini),
.site-header .mobile-open.tp-nav-black{
  color: #080808 !important;
}
.site-header .nav-quote,
.site-header .quote-mini.nav-quote{
  pointer-events: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0 24px !important;
  border-radius: 999px !important;
  border: 1px solid #000 !important;
  background: #000 !important;
  color: #fff !important;
  font-size: clamp(11px, .78vw, 14px) !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
.site-header .nav-quote:hover,
.site-header .quote-mini.nav-quote:hover{
  background: #000 !important;
  color: #fff !important;
  border-color: #000 !important;
}
body.lightbox-lock .site-header{
  display: none !important;
}

.page-hero,
.services-hero,
.about-hero{
  min-height: min(54vh, 560px) !important;
  padding-top: clamp(130px, 12vh, 190px) !important;
  padding-bottom: clamp(38px, 6vh, 72px) !important;
  grid-template-columns: 1fr 0.72fr !important;
  align-items: end !important;
}
.page-hero p,
.services-hero p,
.about-hero p{
  justify-self: end !important;
  max-width: 520px !important;
  font-size: clamp(16px, 1.15vw, 22px) !important;
  line-height: 1.12 !important;
  font-weight: 300 !important;
  text-align: left !important;
}
body:has(.work-strip) .page-hero h1{transform:none!important;}
body:has(.work-strip) .page-hero p{font-weight:300!important;}
.section-head .section-title{font-weight:300!important;font-size:clamp(26px,3.1vw,54px)!important;}

body:has(.work-strip) .portfolio-grid{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: 100% !important;
}
body:has(.work-strip) .project-card,
body:has(.work-strip) .project-card:nth-child(n){
  grid-column: span 1 !important;
  height: clamp(300px, 31vw, 620px) !important;
  min-height: 0 !important;
}
body:has(.work-strip) .project-card img{width:100%!important;height:100%!important;object-fit:cover!important;}

.contact-hero-simple{
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-items: end !important;
}
.contact-hero-simple .contact-intro{display:none!important;}
.contact-highlights{padding-top: clamp(24px, 4vw, 70px)!important;}
.about-summary-clean,.about-summary{display:none!important;}

.tp-lightbox-img{
  max-width: 96vw !important;
  max-height: 92vh !important;
}
.tp-lightbox-stage{
  padding: 30px 28px !important;
}

.footer-grid{
  align-items: start !important;
}
.footer-logo{
  transform: translateY(0) !important;
  margin-top: 0 !important;
  align-self: start !important;
  font-size: clamp(54px, 8.4vw, 150px) !important;
}
.footer-logo span{display:block!important;line-height:.78!important;}

@media (min-width: 1800px){
  .page-hero,.services-hero,.about-hero{min-height: 500px !important; padding-top: 130px !important; padding-bottom: 56px !important;}
}
@media (max-width: 900px){
  .site-header{padding:18px var(--pad)!important;}
  .site-header .nav,.site-header .nav-clean{grid-template-columns:1fr auto!important;}
  .site-header .nav-right{display:none!important;}
  .site-header .mobile-open{display:block!important;pointer-events:auto!important;}
  .page-hero,.services-hero,.about-hero{grid-template-columns:1fr!important;min-height:auto!important;padding-top:120px!important;}
  body:has(.work-strip) .portfolio-grid{display:block!important;}
  body:has(.work-strip) .project-card{height:68vh!important;margin-bottom:10px!important;}
}

.about-hero{
  min-height:clamp(300px,34vh,470px)!important;
  grid-template-columns:1fr!important;
  padding-bottom:clamp(22px,4vw,56px)!important;
}
.about-hero h1{
  transform:none!important;
}
.about-hero p{
  display:none!important;
}
.about-visual-intro{
  padding:0 var(--pad) clamp(82px,9vw,160px);
  display:grid;
  grid-template-columns:.62fr 1fr;
  gap:clamp(18px,5vw,92px);
  align-items:start;
  border-bottom:1px solid var(--line);
}
.about-intro-copy{
  max-width:520px;
  padding-top:clamp(10px,2vw,34px);
}
.about-intro-copy p{
  font-size:clamp(21px,2vw,38px);
  line-height:1.06;
  letter-spacing:-.035em;
  font-weight:300;
  color:var(--muted);
  margin:0;
}
.about-intro-images{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  align-items:start;
}
.about-intro-image{
  aspect-ratio:1/1;
  margin:0;
  overflow:hidden;
  border:0!important;
  background:transparent!important;
}
.about-intro-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border:0!important;
  outline:0!important;
  filter:none!important;
}
.about-intro-image-a{
  margin-top:clamp(24px,5vw,90px);
}
.about-intro-image-b{
  margin-top:0;
}
.team-section{
  padding-top:clamp(64px,8vw,130px)!important;
}
.team-card,
.team-card img{
  border:0!important;
  outline:0!important;
}
@media(max-width:900px){
  .about-visual-intro{
    grid-template-columns:1fr;
  }
  .about-intro-images{
    grid-template-columns:1fr 1fr;
  }
  .about-intro-image-a{
    margin-top:34px;
  }
}
@media(max-width:620px){
  .about-intro-images{
    grid-template-columns:1fr;
  }
  .about-intro-image-a{
    margin-top:0;
  }
}

.about-intro-image img{
  object-position:center 28%!important;
}
.about-intro-image-b img{
  object-position:center 36%!important;
}
.team-section{
  display:none!important;
}

.site-header{position:fixed!important;top:0!important;left:0!important;z-index:1000!important;width:100%!important;padding:24px var(--pad) 18px!important;background:transparent!important;mix-blend-mode:normal!important;color:#080808!important;pointer-events:none!important;}
.site-header .nav-clean{display:grid!important;grid-template-columns:auto 1fr!important;align-items:center!important;gap:32px!important;width:100%!important;min-height:48px!important;}
.site-header .brand{justify-self:start!important;text-align:left!important;font-size:clamp(16px,1.18vw,23px)!important;letter-spacing:.13em!important;font-weight:400!important;text-transform:uppercase!important;color:#080808!important;line-height:1!important;pointer-events:auto!important;}
.site-header .brand b{font-weight:400!important;letter-spacing:.13em!important;}
.site-header .nav-right{justify-self:end!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:clamp(24px,3vw,52px)!important;pointer-events:auto!important;}
.site-header .nav-right>a:not(.nav-quote){font-size:clamp(11px,.78vw,14px)!important;letter-spacing:.035em!important;font-weight:400!important;text-transform:uppercase!important;color:#080808!important;line-height:1!important;}
.site-header .brand.tp-nav-white,.site-header .brand.tp-nav-white b,.site-header .nav-right>a.tp-nav-white:not(.nav-quote){color:#fff!important;}
.site-header .brand.tp-nav-black,.site-header .brand.tp-nav-black b,.site-header .nav-right>a.tp-nav-black:not(.nav-quote){color:#080808!important;}
.site-header .nav-quote{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;padding:0 24px!important;border-radius:999px!important;border:1px solid #000!important;background:#000!important;color:#fff!important;font-size:clamp(11px,.78vw,14px)!important;letter-spacing:.035em!important;text-transform:uppercase!important;font-weight:400!important;line-height:1!important;white-space:nowrap!important;}
.site-header .nav-quote:hover{background:#000!important;color:#fff!important;border-color:#000!important;}
.nav-left{display:none!important;}
body.lightbox-lock .site-header{display:none!important;}
.hero .hero-content>div:first-child .kicker,.hero .hero-copy,.hero .hero-bottom>.cta{display:none!important;}
.contact-hero.contact-hero-compact{min-height:min(54vh,560px)!important;padding-top:clamp(130px,12vh,190px)!important;padding-bottom:clamp(38px,6vh,72px)!important;display:grid!important;grid-template-columns:1fr .72fr!important;gap:40px!important;align-items:end!important;}
.contact-hero.contact-hero-compact .contact-intro{justify-self:end!important;max-width:520px!important;text-align:right!important;display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:22px!important;}
.contact-hero.contact-hero-compact .contact-intro p{font-size:clamp(18px,1.45vw,26px)!important;line-height:1.06!important;font-weight:300!important;color:var(--muted)!important;margin:0!important;}
.contact-hero.contact-hero-compact .contact-main-cta{font-size:12px!important;padding:13px 20px!important;}
.about-intro-image{border:0!important;}
.about-intro-image img{border:0!important;}
.footer{display:grid!important;grid-template-columns:minmax(260px,0.72fr) 1.45fr!important;gap:clamp(44px,8vw,140px)!important;align-items:start!important;}
.footer-logo{font-size:clamp(54px,10vw,132px)!important;line-height:.78!important;letter-spacing:-.055em!important;margin:0!important;transform:translateY(0)!important;}
.footer-logo span{display:block!important;line-height:.78!important;}
.footer-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:32px!important;align-items:start!important;}
@media(max-width:900px){.site-header .nav-right{display:none!important}.site-header .mobile-open{display:block!important;pointer-events:auto!important}.contact-hero.contact-hero-compact{grid-template-columns:1fr!important}.contact-hero.contact-hero-compact .contact-intro{justify-self:start!important;text-align:left!important;align-items:flex-start!important}.footer{grid-template-columns:1fr!important}.footer-grid{grid-template-columns:1fr 1fr!important}.footer-logo{font-size:clamp(54px,18vw,112px)!important}}

.contact-hero.contact-hero-compact h1{
  font-size:clamp(40px,5.15vw,82px)!important;
  line-height:.94!important;
  max-width:980px!important;
}
@media(max-width:900px){
  .contact-hero.contact-hero-compact h1{
    font-size:clamp(38px,10vw,64px)!important;
  }
}

.footer{
  grid-template-columns:minmax(470px,.9fr) minmax(760px,1.65fr)!important;
  align-items:start!important;
}
.footer-logo{
  font-size:clamp(94px,8.2vw,158px)!important;
  line-height:.72!important;
  letter-spacing:.055em!important;
  transform:translateY(-12px)!important;
  margin:0!important;
}
.footer-logo span{
  display:block!important;
  line-height:.72!important;
}
.footer-grid{
  padding-top:0!important;
  align-self:start!important;
}
.footer h4{
  margin-top:0!important;
}
@media(max-width:1200px){
  .footer{grid-template-columns:1fr!important;}
  .footer-logo{font-size:clamp(70px,13vw,132px)!important;transform:none!important;}
}

.footer{
  grid-template-columns:minmax(380px,.72fr) minmax(760px,1.65fr)!important;
  align-items:start!important;
}
.footer-logo{
  font-size:clamp(70px,5.35vw,106px)!important;
  line-height:.76!important;
  letter-spacing:.052em!important;
  margin:0!important;
  padding-top:0!important;
  transform:none!important;
  align-self:start!important;
}
.footer-logo span{
  display:block!important;
  line-height:.76!important;
}
.footer-grid{
  padding-top:0!important;
  align-self:start!important;
}
.footer h4{
  margin-top:0!important;
}
@media(min-width:2200px){
  .footer-logo{font-size:112px!important;}
}
@media(max-width:1200px){
  .footer{grid-template-columns:1fr!important;}
  .footer-logo{font-size:clamp(62px,12vw,104px)!important;}
}

.services-hero{
  grid-template-columns: 1fr 0.72fr !important;
  align-items: end !important;
}
.services-hero p{
  display:block !important;
  justify-self:end !important;
  max-width:520px !important;
  margin:0 !important;
  font-size:clamp(16px,1.15vw,22px) !important;
  line-height:1.12 !important;
  font-weight:300 !important;
  color:var(--muted) !important;
}
@media(max-width:900px){
  .services-hero{grid-template-columns:1fr!important;}
  .services-hero p{justify-self:start!important;max-width:100%!important;}
}

.services-hero.services-hero-editorial{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
  min-height:clamp(440px,48vh,620px)!important;
  padding-top:clamp(118px,11vh,170px)!important;
  padding-bottom:clamp(42px,6vw,82px)!important;
}
.services-hero-editorial .services-header-copy{
  width:min(1120px,78vw)!important;
  display:flex!important;
  flex-direction:column!important;
  gap:clamp(22px,2.4vw,42px)!important;
}
.services-hero-editorial h1{
  max-width:1120px!important;
  margin:0!important;
  font-size:clamp(54px,6.2vw,132px)!important;
  line-height:.9!important;
  letter-spacing:-.055em!important;
  font-weight:400!important;
}
.services-hero-editorial p{
  display:block!important;
  justify-self:auto!important;
  align-self:flex-start!important;
  max-width:760px!important;
  margin:0!important;
  font-size:clamp(15px,1.05vw,20px)!important;
  line-height:1.18!important;
  letter-spacing:-.015em!important;
  font-weight:300!important;
  color:var(--ink)!important;
}
@media(min-width:1800px){
  .services-hero.services-hero-editorial{
    min-height:520px!important;
    padding-top:140px!important;
    padding-bottom:72px!important;
  }
  .services-hero-editorial h1{font-size:118px!important;}
}
@media(max-width:900px){
  .services-hero.services-hero-editorial{
    min-height:auto!important;
    padding-top:120px!important;
    padding-bottom:54px!important;
  }
  .services-hero-editorial .services-header-copy{
    width:100%!important;
  }
  .services-hero-editorial h1{
    font-size:clamp(42px,12vw,72px)!important;
  }
  .services-hero-editorial p{
    max-width:100%!important;
  }
}

.services-hero-editorial p{
  color:rgba(20,20,20,.52)!important;
  font-weight:300!important;
}

.site-header .brand,
.site-header .brand b{
  font-weight:600!important;
}
.site-header .nav-quote{
  background:transparent!important;
  border:1px solid currentColor!important;
  color:currentColor!important;
  min-height:44px!important;
  padding:0 25px!important;
  border-radius:999px!important;
}
.site-header .nav-quote.tp-nav-white{
  color:#fff!important;
  border-color:#fff!important;
  background:transparent!important;
}
.site-header .nav-quote.tp-nav-black{
  color:#080808!important;
  border-color:#080808!important;
  background:transparent!important;
}
.site-header .nav-quote:hover{
  background:transparent!important;
  color:currentColor!important;
}
.site-header .mobile-open.tp-nav-white{
  color:#fff!important;
  border-color:#fff!important;
  background:transparent!important;
}
.site-header .mobile-open.tp-nav-black{
  color:#080808!important;
  border-color:#080808!important;
  background:transparent!important;
}

.footer.footer-v47{
  display:grid!important;
  grid-template-columns:minmax(360px,1fr) auto!important;
  column-gap:clamp(42px,6vw,120px)!important;
  align-items:start!important;
  padding:clamp(40px,4vw,70px) var(--pad)!important;
}
.footer-brand-block{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:clamp(22px,2.2vw,38px)!important;
}
.footer-logo.footer-logo-single{
  display:block!important;
  font-size:clamp(70px,9.4vw,178px)!important;
  line-height:.78!important;
  letter-spacing:-.06em!important;
  font-weight:400!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  white-space:nowrap!important;
}
.footer-legal-inline{
  display:flex!important;
  gap:clamp(24px,2.8vw,48px)!important;
  align-items:center!important;
}
.footer-legal-inline a{
  color:var(--muted)!important;
  font-size:clamp(16px,1.05vw,21px)!important;
  line-height:1!important;
}
.footer-columns-v47{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(132px,180px))!important;
  gap:clamp(34px,4.2vw,86px)!important;
  justify-content:end!important;
  align-items:start!important;
  width:auto!important;
  padding-top:0!important;
}
.footer-columns-v47 h4{
  margin:0 0 20px!important;
}
.footer-columns-v47 p,
.footer-columns-v47 a{
  font-size:clamp(16px,1.05vw,21px)!important;
  line-height:1.22!important;
}

.about-hero.about-hero-editorial{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
  min-height:clamp(440px,48vh,620px)!important;
  padding-top:clamp(118px,11vh,170px)!important;
  padding-bottom:clamp(42px,6vw,82px)!important;
}
.about-header-copy{
  width:min(1120px,78vw)!important;
  display:flex!important;
  flex-direction:column!important;
  gap:clamp(20px,2vw,34px)!important;
}
.about-header-copy h1{
  max-width:1120px!important;
  margin:0!important;
  font-size:clamp(54px,6.2vw,132px)!important;
  line-height:.9!important;
  letter-spacing:-.055em!important;
  font-weight:400!important;
}
.about-header-copy p{
  max-width:820px!important;
  margin:0!important;
  font-size:clamp(16px,1.08vw,22px)!important;
  line-height:1.18!important;
  letter-spacing:-.015em!important;
  font-weight:300!important;
  color:rgba(20,20,20,.52)!important;
}
.about-portraits{
  display:block!important;
  padding:0 var(--pad) clamp(78px,9vw,150px)!important;
}
.about-portraits .about-intro-images{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
  width:100%!important;
  align-items:start!important;
}
.about-portraits .about-intro-image{
  position:relative!important;
  aspect-ratio:1/1!important;
  margin:0!important;
  overflow:hidden!important;
  border:0!important;
}
.about-portraits .about-intro-image-a{
  margin-top:clamp(34px,5vw,92px)!important;
}
.about-portraits .about-intro-image-b{
  margin-top:0!important;
}
.about-portraits img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center 30%!important;
  border:0!important;
  transition:transform .9s var(--ease),filter .9s var(--ease)!important;
}
.about-portraits .portrait-hover:hover img{
  transform:scale(1.035)!important;
  filter:saturate(1.04) contrast(1.02)!important;
}
.about-portraits figcaption{
  position:absolute!important;
  left:50%!important;
  bottom:24px!important;
  transform:translate(-50%,12px)!important;
  opacity:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  padding:0 24px!important;
  border:1px solid rgba(255,255,255,.92)!important;
  border-radius:999px!important;
  color:#fff!important;
  background:rgba(0,0,0,.08)!important;
  backdrop-filter:blur(8px)!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
  font-size:13px!important;
  transition:opacity .35s var(--ease),transform .35s var(--ease)!important;
  pointer-events:none!important;
}
.about-portraits .portrait-hover:hover figcaption{
  opacity:1!important;
  transform:translate(-50%,0)!important;
}
@media(min-width:1800px){
  .about-hero.about-hero-editorial{min-height:520px!important;padding-top:140px!important;padding-bottom:72px!important;}
  .about-header-copy h1{font-size:118px!important;}
}
@media(max-width:1200px){
  .footer.footer-v47{grid-template-columns:1fr!important;row-gap:46px!important;}
  .footer-columns-v47{justify-content:start!important;grid-template-columns:repeat(3,minmax(130px,1fr))!important;}
  .footer-logo.footer-logo-single{font-size:clamp(60px,14vw,140px)!important;}
}
@media(max-width:900px){
  .about-hero.about-hero-editorial{min-height:auto!important;padding-top:120px!important;padding-bottom:54px!important;}
  .about-header-copy{width:100%!important;}
  .about-header-copy h1{font-size:clamp(42px,12vw,72px)!important;}
  .about-header-copy p{max-width:100%!important;}
  .about-portraits .about-intro-images{grid-template-columns:1fr 1fr!important;}
  .about-portraits .about-intro-image-a{margin-top:34px!important;}
  .footer-columns-v47{grid-template-columns:1fr 1fr!important;}
}
@media(max-width:620px){
  .about-portraits .about-intro-images{grid-template-columns:1fr!important;}
  .about-portraits .about-intro-image-a{margin-top:0!important;}
  .footer-columns-v47{grid-template-columns:1fr!important;}
  .footer-legal-inline{flex-direction:column!important;align-items:flex-start!important;gap:12px!important;}
}

.about-visual-intro.about-compact{
  display:grid!important;
  grid-template-columns:minmax(280px,.72fr) minmax(360px,1fr)!important;
  gap:clamp(34px,5vw,96px)!important;
  align-items:start!important;
  padding:clamp(28px,4vw,76px) var(--pad) clamp(72px,8vw,132px)!important;
}
.about-story-copy{
  display:block!important;
  max-width:640px!important;
  padding-top:clamp(10px,3vw,58px)!important;
}
.about-story-copy .about-kicker{
  margin:0 0 22px!important;
  text-transform:uppercase!important;
  letter-spacing:.045em!important;
  font-size:clamp(13px,.82vw,16px)!important;
  line-height:1!important;
  color:rgba(16,16,16,.48)!important;
}
.about-story-copy h2{
  margin:0 0 clamp(22px,2.4vw,38px)!important;
  max-width:720px!important;
  font-size:clamp(34px,3.7vw,74px)!important;
  line-height:.98!important;
  letter-spacing:-.052em!important;
  font-weight:400!important;
}
.about-story-copy p:not(.about-kicker){
  margin:0 0 16px!important;
  max-width:560px!important;
  font-size:clamp(16px,1vw,20px)!important;
  line-height:1.22!important;
  letter-spacing:-.015em!important;
  color:rgba(20,20,20,.56)!important;
  font-weight:300!important;
}
.about-compact.about-portraits .about-intro-images{
  width:100%!important;
  max-width:920px!important;
  justify-self:end!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:clamp(10px,1vw,18px)!important;
}
.about-compact.about-portraits .about-intro-image{
  aspect-ratio:1/1!important;
  max-height:min(31vw,520px)!important;
  min-height:260px!important;
  overflow:hidden!important;
}
.about-compact.about-portraits .about-intro-image-a{
  margin-top:clamp(38px,4vw,74px)!important;
}
.about-compact.about-portraits .about-intro-image-b{
  margin-top:0!important;
}
.about-compact.about-portraits figcaption{
  display:none!important;
}
.portrait-cursor-bubble{
  position:fixed!important;
  z-index:99999!important;
  left:0;
  top:0;
  transform:translate(18px,18px)!important;
  opacity:0!important;
  pointer-events:none!important;
  min-height:42px!important;
  padding:0 24px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid rgba(255,255,255,.94)!important;
  border-radius:999px!important;
  background:rgba(0,0,0,.34)!important;
  color:#fff!important;
  backdrop-filter:blur(9px)!important;
  text-transform:uppercase!important;
  letter-spacing:.045em!important;
  font-size:13px!important;
  transition:opacity .18s ease!important;
  will-change:transform,left,top!important;
}
.portrait-cursor-bubble.is-visible{opacity:1!important;}
@media(min-width:1800px){
  .about-visual-intro.about-compact{padding-top:54px!important;}
  .about-compact.about-portraits .about-intro-image{max-height:500px!important;}
}
@media(max-width:1000px){
  .about-visual-intro.about-compact{grid-template-columns:1fr!important;}
  .about-compact.about-portraits .about-intro-images{justify-self:start!important;max-width:none!important;}
  .about-compact.about-portraits .about-intro-image{max-height:none!important;min-height:0!important;}
}
@media(max-width:640px){
  .about-compact.about-portraits .about-intro-images{grid-template-columns:1fr!important;}
  .about-compact.about-portraits .about-intro-image-a{margin-top:0!important;}
}

.footer.footer-v47{
  display:grid!important;
  grid-template-columns:minmax(420px,1fr) auto!important;
  column-gap:clamp(56px,8vw,150px)!important;
  align-items:start!important;
  padding:clamp(42px,4vw,76px) var(--pad)!important;
  background:var(--paper)!important;
  color:var(--ink)!important;
}
.footer-brand-block{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:clamp(24px,2.4vw,42px)!important;
  min-width:0!important;
}
.footer-logo.footer-logo-single,
.footer.footer-v47 .footer-logo.footer-logo-single,
.footer.footer-v47 a.footer-logo.footer-logo-single{
  color:#080806!important;
  opacity:1!important;
  display:block!important;
  width:auto!important;
  max-width:min(42vw,760px)!important;
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:clamp(64px,8.2vw,154px)!important;
  line-height:.74!important;
  letter-spacing:-.065em!important;
  font-weight:400!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
}
.footer-legal-inline{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:clamp(24px,2.4vw,46px)!important;
  margin:0!important;
  padding:0!important;
}
.footer.footer-v47 .footer-legal-inline a{
  color:rgba(8,8,6,.48)!important;
  font-size:clamp(16px,1.05vw,21px)!important;
  line-height:1!important;
  letter-spacing:-.012em!important;
  font-weight:400!important;
}
.footer-columns-v47{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(128px,184px))!important;
  gap:clamp(46px,5.4vw,112px)!important;
  justify-content:end!important;
  align-items:start!important;
  width:auto!important;
  min-width:min(52vw,720px)!important;
  padding-top:4px!important;
}
.footer-columns-v47 h4{
  color:#080806!important;
  margin:0 0 22px!important;
}
.footer-columns-v47 p,
.footer-columns-v47 a{
  color:rgba(8,8,6,.48)!important;
  font-size:clamp(16px,1.05vw,21px)!important;
  line-height:1.22!important;
  letter-spacing:-.012em!important;
}
@media(max-width:1200px){
  .footer.footer-v47{grid-template-columns:1fr!important;row-gap:46px!important;}
  .footer-logo.footer-logo-single{max-width:100%!important;font-size:clamp(58px,14vw,132px)!important;}
  .footer-columns-v47{justify-content:start!important;min-width:0!important;grid-template-columns:repeat(3,minmax(130px,1fr))!important;gap:34px!important;}
}
@media(max-width:720px){
  .footer-logo.footer-logo-single{font-size:clamp(48px,18vw,92px)!important;}
  .footer-columns-v47{grid-template-columns:1fr!important;}
  .footer-legal-inline{gap:22px!important;}
}

.footer.footer-v47 .footer-logo.footer-logo-single,
.footer.footer-v47 a.footer-logo.footer-logo-single{
  color:#080806!important;
  font-size:clamp(54px,6.2vw,122px)!important;
  line-height:.78!important;
  letter-spacing:-.055em!important;
  max-width:min(36vw,640px)!important;
  white-space:nowrap!important;
}
@media(min-width:1800px){
  .footer.footer-v47 .footer-logo.footer-logo-single,
  .footer.footer-v47 a.footer-logo.footer-logo-single{
    font-size:clamp(96px,5.8vw,132px)!important;
    max-width:min(34vw,720px)!important;
  }
  .about-compact.about-portraits .about-intro-images{
    max-width:min(54vw,1360px)!important;
    gap:clamp(18px,1.4vw,34px)!important;
  }
  .about-compact.about-portraits .about-intro-image{
    max-height:min(34vw,760px)!important;
    min-height:440px!important;
  }
  .about-compact.about-portraits .about-intro-image-a{
    margin-top:clamp(56px,4vw,110px)!important;
  }
}
@media(max-width:720px){
  .footer.footer-v47 .footer-logo.footer-logo-single,
  .footer.footer-v47 a.footer-logo.footer-logo-single{
    font-size:clamp(46px,15vw,82px)!important;
    max-width:100%!important;
  }
}

.footer.footer-v47{
  display:grid!important;
  grid-template-columns:minmax(360px, 38vw) 1fr!important;
  gap:clamp(70px, 10vw, 180px)!important;
  align-items:start!important;
  padding:clamp(42px, 5vw, 86px) var(--pad) clamp(42px, 4.8vw, 78px)!important;
  background:var(--paper)!important;
  color:#080806!important;
  border-top:1px solid var(--line)!important;
}
.footer-brand-block{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:clamp(18px, 1.2vw, 24px)!important;
  min-width:0!important;
}
.footer.footer-v47 .footer-logo.footer-logo-single,
.footer.footer-v47 a.footer-logo.footer-logo-single{
  display:block!important;
  margin:0!important;
  padding:0!important;
  color:#080806!important;
  opacity:1!important;
  white-space:nowrap!important;
  font-family:Grotesk, Arial, sans-serif!important;
  font-weight:400!important;
  letter-spacing:-.065em!important;
  line-height:.82!important;
  font-size:clamp(64px, 8vw, 150px)!important;
  max-width:none!important;
}
.footer-legal-inline{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:clamp(28px, 2.4vw, 50px)!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
}
.footer.footer-v47 .footer-legal-inline a{
  color:rgba(8,8,6,.48)!important;
  font-size:clamp(16px,1vw,21px)!important;
  line-height:1!important;
  letter-spacing:-.012em!important;
  font-weight:400!important;
}
.footer-columns-v47{
  display:grid!important;
  grid-template-columns:repeat(3, minmax(130px, 190px))!important;
  gap:clamp(48px, 6vw, 120px)!important;
  justify-content:end!important;
  align-items:start!important;
  width:100%!important;
  min-width:0!important;
  padding-top:clamp(4px,.5vw,10px)!important;
}
.footer-columns-v47 h4{
  margin:0 0 22px!important;
  color:#080806!important;
  text-transform:uppercase!important;
  font-size:12px!important;
  letter-spacing:.08em!important;
  font-weight:600!important;
}
.footer-columns-v47 p,
.footer-columns-v47 a{
  color:rgba(8,8,6,.48)!important;
  font-size:clamp(16px,1.02vw,21px)!important;
  line-height:1.22!important;
  letter-spacing:-.012em!important;
  font-weight:400!important;
}
@media(max-width:1100px){
  .footer.footer-v47{grid-template-columns:1fr!important;gap:46px!important;}
  .footer-columns-v47{justify-content:start!important;grid-template-columns:repeat(3,minmax(130px,1fr))!important;gap:34px!important;}
  .footer.footer-v47 .footer-logo.footer-logo-single,
  .footer.footer-v47 a.footer-logo.footer-logo-single{font-size:clamp(56px,14vw,120px)!important;}
}
@media(max-width:720px){
  .footer-columns-v47{grid-template-columns:1fr!important;}
  .footer.footer-v47 .footer-logo.footer-logo-single,
  .footer.footer-v47 a.footer-logo.footer-logo-single{font-size:clamp(46px,17vw,82px)!important;}
  .footer-legal-inline{gap:22px!important;}
}

.footer.footer-final{
  display:grid!important;
  grid-template-columns:minmax(360px,1fr) auto!important;
  align-items:start!important;
  column-gap:clamp(56px,8vw,170px)!important;
  padding:clamp(44px,4.4vw,72px) var(--pad) clamp(48px,4vw,70px)!important;
  border-top:1px solid var(--line)!important;
  background:var(--paper)!important;
  color:var(--ink)!important;
}
.footer-final .footer-brand-block{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:clamp(22px,1.7vw,34px)!important;
  min-width:0!important;
}
.footer-final .footer-logo.footer-logo-single{
  display:block!important;
  color:#000!important;
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:clamp(62px,7.2vw,138px)!important;
  font-weight:400!important;
  letter-spacing:-.058em!important;
  line-height:.82!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  white-space:nowrap!important;
}
.footer-final .footer-legal-inline{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  gap:clamp(28px,2.6vw,48px)!important;
  margin-top:clamp(8px,0.7vw,15px)!important;
  padding:0!important;
}
.footer-final .footer-legal-inline a{
  color:var(--muted)!important;
  font-size:clamp(15px,1.05vw,21px)!important;
  line-height:1!important;
  margin:0!important;
  padding:0!important;
}
.footer-final .footer-columns-final{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(132px,185px))!important;
  gap:clamp(38px,4.8vw,92px)!important;
  justify-content:end!important;
  align-items:start!important;
  width:auto!important;
  padding:0!important;
  margin:0!important;
}
.footer-final .footer-columns-final h4{
  margin:0 0 clamp(18px,1.35vw,26px)!important;
  color:#000!important;
  text-transform:uppercase!important;
  font-size:12px!important;
  letter-spacing:.1em!important;
  font-weight:600!important;
}
.footer-final .footer-columns-final p,
.footer-final .footer-columns-final a{
  color:var(--muted)!important;
  font-size:clamp(15px,1.05vw,21px)!important;
  line-height:1.24!important;
  margin:0!important;
}
@media(min-width:1800px){
  .footer.footer-final{padding-top:64px!important;}
  .footer-final .footer-logo.footer-logo-single{font-size:132px!important;}
  .footer-final .footer-legal-inline{margin-top:14px!important;}
}
@media(max-width:900px){
  .footer.footer-final{grid-template-columns:1fr!important;gap:42px!important;}
  .footer-final .footer-logo.footer-logo-single{font-size:clamp(54px,17vw,108px)!important;}
  .footer-final .footer-columns-final{grid-template-columns:1fr 1fr!important;justify-content:start!important;gap:34px!important;}
}
@media(max-width:560px){
  .footer-final .footer-columns-final{grid-template-columns:1fr!important;}
}

.footer.footer-final{
  grid-template-columns:minmax(300px,0.95fr) auto!important;
}
.footer-final .footer-brand-block{
  gap:18px!important;
}
.footer-final .footer-logo.footer-logo-single{
  font-size:clamp(58px,6.2vw,116px)!important;
  line-height:.82!important;
  letter-spacing:-.055em!important;
}
.footer-final .footer-legal-inline{
  margin-top:0!important;
  gap:clamp(26px,2.25vw,42px)!important;
}
@media(min-width:1800px){
  .footer-final .footer-logo.footer-logo-single{font-size:116px!important;}
  .footer-final .footer-legal-inline{margin-top:0!important;}
}
@media(max-width:900px){
  .footer-final .footer-logo.footer-logo-single{font-size:clamp(50px,15vw,96px)!important;}
}

body:has(.about-visual-intro.about-compact) .page-hero.about-hero{
  display:none!important;
}
.about-visual-intro.about-compact{
  padding-top:clamp(104px,8vw,150px)!important;
}
@media(min-width:1800px){
  .about-visual-intro.about-compact{
    padding-top:clamp(118px,7vw,156px)!important;
  }
}
@media(max-width:900px){
  .about-visual-intro.about-compact{
    padding-top:104px!important;
  }
}

.services-hero-editorial h1{
  font-size:clamp(40px,5.15vw,82px)!important;
  line-height:.94!important;
  letter-spacing:-.045em!important;
  max-width:980px!important;
}
body:has(.work-strip) .page-hero h1{
  font-size:clamp(52px,6.2vw,112px)!important;
  line-height:.92!important;
  letter-spacing:-.045em!important;
}
@media(min-width:1800px){
  .services-hero-editorial h1{font-size:82px!important;}
  body:has(.work-strip) .page-hero h1{font-size:108px!important;}
}
@media(max-width:900px){
  .services-hero-editorial h1{font-size:clamp(38px,10vw,64px)!important;}
  body:has(.work-strip) .page-hero h1{font-size:clamp(44px,12vw,72px)!important;}
}

:root{
  --tp-page-heading-final: clamp(40px, 4.45vw, 78px);
}

body:has(.work-strip) .page-hero h1,
.services-hero-editorial h1,
.about-story-copy h2,
.contact-hero.contact-hero-compact h1{
  font-size: var(--tp-page-heading-final) !important;
  line-height: .96 !important;
  letter-spacing: -0.045em !important;
  font-weight: 400 !important;
  transform: none !important;
}

.services-hero.services-hero-editorial{
  display: flex !important;
  justify-content: flex-start !important;
  align-items: flex-end !important;
  min-height: clamp(380px, 42vh, 540px) !important;
  padding: clamp(118px, 11vh, 170px) var(--pad) clamp(42px, 6vw, 82px) !important;
}
.services-hero-editorial .services-header-copy{
  width: min(980px, 100%) !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: clamp(18px, 2vw, 32px) !important;
}
.services-hero-editorial p{
  max-width: 760px !important;
}

body:has(.work-strip) .page-hero{
  min-height: min(54vh, 560px) !important;
  padding-top: clamp(130px, 12vh, 190px) !important;
  padding-bottom: clamp(38px, 6vh, 72px) !important;
}
body:has(.work-strip) .page-hero p{
  font-size: clamp(16px, 1.15vw, 22px) !important;
  line-height: 1.12 !important;
}

.contact-hero.contact-hero-compact h1{
  max-width: 980px !important;
}

@media (min-width: 1800px){
  :root{ --tp-page-heading-final: 78px; }
  .services-hero-editorial h1,
  body:has(.work-strip) .page-hero h1,
  .about-story-copy h2,
  .contact-hero.contact-hero-compact h1{
    font-size: 78px !important;
  }
}
@media (max-width: 900px){
  :root{ --tp-page-heading-final: clamp(38px, 10vw, 64px); }
  .services-hero.services-hero-editorial{
    min-height: auto !important;
    padding-top: 120px !important;
    padding-bottom: 54px !important;
  }
}

body:has(.pricing-grid) .page-hero h1,
body:has(.blog-grid) .page-hero h1{
  font-size: var(--tp-page-heading-final) !important;
  line-height: .96 !important;
  letter-spacing: -0.045em !important;
  font-weight: 400 !important;
  transform: none !important;
}
body:has(.pricing-grid) .page-hero,
body:has(.blog-grid) .page-hero{
  min-height: min(54vh, 560px) !important;
  padding-top: clamp(130px, 12vh, 190px) !important;
  padding-bottom: clamp(38px, 6vh, 72px) !important;
}
body:has(.pricing-grid) .page-hero p,
body:has(.blog-grid) .page-hero p{
  font-size: clamp(16px, 1.15vw, 22px) !important;
  line-height: 1.12 !important;
  color: var(--muted) !important;
}
@media (min-width: 1800px){
  body:has(.pricing-grid) .page-hero h1,
  body:has(.blog-grid) .page-hero h1{
    font-size: 78px !important;
  }
}
@media (max-width: 900px){
  body:has(.pricing-grid) .page-hero h1,
  body:has(.blog-grid) .page-hero h1{
    font-size: clamp(38px, 10vw, 64px) !important;
  }
}

.blog-hero h1,
body .blog-hero h1{
  font-size: var(--tp-page-heading-final) !important;
  line-height: .96 !important;
  letter-spacing: -0.045em !important;
  font-weight: 400 !important;
  transform: none !important;
}
.blog-hero{
  min-height: min(54vh, 560px) !important;
  padding-top: clamp(130px, 12vh, 190px) !important;
  padding-bottom: clamp(38px, 6vh, 72px) !important;
}
.blog-hero p{
  font-size: clamp(16px, 1.15vw, 22px) !important;
  line-height: 1.12 !important;
  color: var(--muted) !important;
}
@media (min-width: 1800px){
  .blog-hero h1,
  body .blog-hero h1{
    font-size: 78px !important;
  }
}
@media (max-width: 900px){
  .blog-hero h1,
  body .blog-hero h1{
    font-size: clamp(38px, 10vw, 64px) !important;
  }
}

.site-header{
  transform: translate3d(0,0,0) !important;
  opacity: 1 !important;
  transition: transform .62s cubic-bezier(.22,.61,.36,1), opacity .42s ease !important;
  will-change: transform, opacity !important;
}
.site-header.nav-scroll-hidden{
  transform: translate3d(0,-120%,0) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.site-header.nav-scroll-visible{
  transform: translate3d(0,0,0) !important;
  opacity: 1 !important;
}
.mobile-menu.open ~ .site-header,
body.lightbox-lock .site-header{
  transition: none !important;
}

.site-header{
  background:rgba(244,239,232,.94)!important;
  border-bottom:1px solid rgba(8,8,8,.08)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
  color:#080808!important;
}
.site-header .brand,
.site-header .brand b,
.site-header .brand.tp-nav-white,
.site-header .brand.tp-nav-white b,
.site-header .brand.tp-nav-black,
.site-header .brand.tp-nav-black b,
.site-header .nav-right>a:not(.nav-quote):not(.quote-mini),
.site-header .nav-right>a.tp-nav-white:not(.nav-quote):not(.quote-mini),
.site-header .nav-right>a.tp-nav-black:not(.nav-quote):not(.quote-mini),
.site-header .mobile-open,
.site-header .mobile-open.tp-nav-white,
.site-header .mobile-open.tp-nav-black{
  color:#080808!important;
  border-color:#080808!important;
}
.site-header .nav-quote,
.site-header .quote-mini.nav-quote,
.site-header .nav-quote.tp-nav-white,
.site-header .quote-mini.nav-quote.tp-nav-white,
.site-header .nav-quote.tp-nav-black,
.site-header .quote-mini.nav-quote.tp-nav-black{
  color:#080808!important;
  border-color:#080808!important;
  background:transparent!important;
}
body.lightbox-lock .site-header{
  display:none!important;
}

.site-header,
.site-header.nav-inverse{
  color:#080808!important;
}
.site-header .brand,
.site-header .brand b,
.site-header .brand.tp-nav-white,
.site-header .brand.tp-nav-white b,
.site-header .brand.tp-nav-black,
.site-header .brand.tp-nav-black b,
.site-header .nav-right > a:not(.nav-quote):not(.quote-mini),
.site-header .nav-right > a.tp-nav-white:not(.nav-quote):not(.quote-mini),
.site-header .nav-right > a.tp-nav-black:not(.nav-quote):not(.quote-mini),
.site-header .mobile-open,
.site-header .mobile-open.tp-nav-white,
.site-header .mobile-open.tp-nav-black{
  color:#080808!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
  filter:none!important;
}
.site-header .nav-right > a:not(.nav-quote):not(.quote-mini):hover{
  color:#080808!important;
  opacity:.62!important;
}
.site-header .nav-quote,
.site-header .quote-mini.nav-quote,
.site-header .nav-quote.tp-nav-white,
.site-header .quote-mini.nav-quote.tp-nav-white,
.site-header .nav-quote.tp-nav-black,
.site-header .quote-mini.nav-quote.tp-nav-black{
  background:transparent!important;
  color:#080808!important;
  border-color:#080808!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
}
.site-header .nav-quote:hover,
.site-header .quote-mini.nav-quote:hover{
  background:#080808!important;
  color:#f4efe8!important;
  border-color:#080808!important;
}

.site-header{
  transition: transform .28s cubic-bezier(.2,.7,.2,1), opacity .18s ease !important;
  will-change: transform, opacity !important;
}
.site-header.nav-scroll-hidden{
  transform: translate3d(0,-105%,0) !important;
  opacity:0 !important;
}
.site-header.nav-scroll-visible{
  transform: translate3d(0,0,0) !important;
  opacity:1 !important;
}

.site-header,
.site-header.nav-inverse,
.site-header.nav-scroll-visible{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  z-index:1000!important;
  padding:16px var(--pad)!important;
  background:#f4efe8!important;
  border-bottom:1px solid rgba(8,8,6,.08)!important;
  color:#080806!important;
  pointer-events:none!important;
  mix-blend-mode:normal!important;
  isolation:auto!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transform:translate3d(0,0,0)!important;
  opacity:1!important;
  transition:transform .22s cubic-bezier(.2,.7,.2,1), opacity .16s ease!important;
  will-change:transform,opacity!important;
  contain:layout style!important;
}
.site-header.nav-scroll-hidden{
  transform:translate3d(0,-104%,0)!important;
  opacity:0!important;
  pointer-events:none!important;
}
.site-header .nav,
.site-header .nav-clean{
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  align-items:center!important;
  gap:24px!important;
  min-height:44px!important;
  padding:0!important;
  background:transparent!important;
  color:#080806!important;
  transform:none!important;
}
.site-header .brand,
.site-header .brand b,
.site-header .nav-right > a,
.site-header .mobile-open{
  font-family:Grotesk,Arial,sans-serif!important;
  font-synthesis:none!important;
  -webkit-font-smoothing:antialiased!important;
  color:#080806!important;
  mix-blend-mode:normal!important;
  filter:none!important;
  opacity:1!important;
  transform:none!important;
  text-shadow:none!important;
  transition:opacity .16s ease, background-color .16s ease, color .16s ease!important;
}
.site-header .brand,
.site-header .brand b{
  justify-self:start!important;
  text-align:left!important;
  font-size:clamp(17px,1.45vw,22px)!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:.085em!important;
  white-space:nowrap!important;
}
.site-header .brand b{font-weight:600!important;}
.site-header .nav-right{
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:clamp(18px,2.2vw,34px)!important;
  color:#080806!important;
  background:transparent!important;
  transform:none!important;
}
.site-header .nav-right > a:not(.quote-mini){
  font-size:12px!important;
  line-height:1!important;
  font-weight:400!important;
  letter-spacing:.045em!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.site-header .nav-right > a:not(.quote-mini):hover{opacity:.58!important;}
.site-header .quote-mini,
.site-header .quote-mini.nav-quote{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  padding:0 22px!important;
  border:1px solid #080806!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#080806!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:400!important;
  letter-spacing:.045em!important;
  white-space:nowrap!important;
  transform:none!important;
}
.site-header .quote-mini:hover,
.site-header .quote-mini.nav-quote:hover{
  background:#080806!important;
  color:#f4efe8!important;
  border-color:#080806!important;
  opacity:1!important;
  transform:none!important;
}
.site-header a,
.site-header button{pointer-events:auto!important;}
body.lightbox-lock .site-header{display:none!important;}
.site-header *:focus{outline:none!important;}
.site-header *:focus-visible{outline:1px solid rgba(8,8,6,.35)!important;outline-offset:4px!important;}

@media(max-width:900px){
  .site-header .nav,
  .site-header .nav-clean{grid-template-columns:auto auto!important;justify-content:space-between!important;}
  .site-header .nav-right{display:none!important;}
  .site-header .mobile-open{display:inline-flex!important;align-items:center!important;justify-content:center!important;border:1px solid #080806!important;background:transparent!important;color:#080806!important;}
}

.site-header,
.site-header.nav-inverse,
.site-header.nav-white,
.site-header.nav-scroll-visible,
.site-header.nav-is-navigating{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  z-index:1000!important;
  padding:16px var(--pad)!important;
  background:#f4efe8!important;
  border-bottom:1px solid rgba(8,8,6,.08)!important;
  color:#080806!important;
  pointer-events:none!important;
  mix-blend-mode:normal!important;
  isolation:auto!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transform:translate3d(0,0,0)!important;
  opacity:1!important;
  transition:transform .18s cubic-bezier(.2,.7,.2,1), opacity .14s ease!important;
  will-change:transform,opacity!important;
  contain:none!important;
  backface-visibility:hidden!important;
  -webkit-font-smoothing:antialiased!important;
  text-rendering:geometricPrecision!important;
}
.site-header.nav-scroll-hidden:not(.nav-is-navigating){
  transform:translate3d(0,-104%,0)!important;
  opacity:0!important;
  pointer-events:none!important;
}
.site-header.nav-is-navigating{
  transform:translate3d(0,0,0)!important;
  opacity:1!important;
}
.site-header .nav,
.site-header .nav-clean,
.site-header .nav-blend{
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  align-items:center!important;
  gap:24px!important;
  min-height:44px!important;
  padding:0!important;
  background:transparent!important;
  color:#080806!important;
  transform:none!important;
  transition:none!important;
  contain:none!important;
}
.site-header .brand,
.site-header .brand b,
.site-header .nav-right > a:not(.quote-mini):not(.nav-quote),
.site-header .mobile-open{
  font-family:Grotesk,Arial,sans-serif!important;
  font-synthesis:none!important;
  -webkit-font-smoothing:antialiased!important;
  text-rendering:geometricPrecision!important;
  color:#080806!important;
  mix-blend-mode:normal!important;
  filter:none!important;
  opacity:1!important;
  transform:none!important;
  text-shadow:none!important;
  background:transparent!important;
  border-color:#080806!important;
  transition:opacity .14s ease!important;
}
.site-header .brand,
.site-header .brand b{
  justify-self:start!important;
  text-align:left!important;
  font-size:clamp(17px,1.45vw,22px)!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:.085em!important;
  white-space:nowrap!important;
  min-width:0!important;
}
.site-header .brand b{font-weight:600!important;}
.site-header .nav-right{
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:clamp(18px,2.2vw,34px)!important;
  color:#080806!important;
  background:transparent!important;
  transform:none!important;
  transition:none!important;
}
.site-header .nav-right > a:not(.quote-mini):not(.nav-quote){
  display:inline-flex!important;
  align-items:center!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:400!important;
  letter-spacing:.045em!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  min-height:auto!important;
  white-space:nowrap!important;
}
.site-header .nav-right > a:not(.quote-mini):not(.nav-quote):hover{opacity:.58!important;}
.site-header .quote-mini,
.site-header .quote-mini.nav-quote,
.site-header .nav-right .quote-mini,
.site-header .nav-right .nav-quote{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  padding:0 22px!important;
  margin:0!important;
  border:1px solid #080806!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#080806!important;
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:400!important;
  letter-spacing:.045em!important;
  white-space:nowrap!important;
  transform:none!important;
  opacity:1!important;
  box-shadow:none!important;
  transition:background-color .14s ease,color .14s ease,border-color .14s ease!important;
}
.site-header .quote-mini:hover,
.site-header .quote-mini.nav-quote:hover,
.site-header .nav-right .quote-mini:hover,
.site-header .nav-right .nav-quote:hover{
  background:#080806!important;
  color:#f4efe8!important;
  border-color:#080806!important;
  opacity:1!important;
  transform:none!important;
}
.site-header a,
.site-header button{pointer-events:auto!important;}
.site-header a:active,
.site-header button:active{transform:none!important;}
.site-header *:focus{outline:none!important;}
.site-header *:focus-visible{outline:1px solid rgba(8,8,6,.35)!important;outline-offset:4px!important;}
body.lightbox-lock .site-header{display:none!important;}
@media(max-width:900px){
  .site-header .nav,
  .site-header .nav-clean,
  .site-header .nav-blend{grid-template-columns:auto auto!important;justify-content:space-between!important;}
  .site-header .nav-right{display:none!important;}
  .site-header .mobile-open{display:inline-flex!important;align-items:center!important;justify-content:center!important;border:1px solid #080806!important;background:transparent!important;color:#080806!important;}
}

:root{
  --tp-font: Grotesk, Arial, sans-serif;
  --tp-ink: #080806;
  --tp-muted: rgba(8,8,6,.55);
  --tp-line: rgba(8,8,6,.13);
  --tp-page-title: clamp(44px, 5.1vw, 88px);
  --tp-section-title: clamp(34px, 3.5vw, 56px);
  --tp-card-title: clamp(24px, 2.15vw, 36px);
  --tp-body: clamp(16px, 1.15vw, 20px);
  --tp-label: 12px;
  --tp-button: 12px;
}

.site-header{
  position:fixed!important;
  top:0!important;left:0!important;right:0!important;
  z-index:1000!important;
  width:100%!important;
  padding:16px clamp(16px,2.5vw,36px)!important;
  background:#f4efe8!important;
  border-bottom:1px solid rgba(8,8,6,.08)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  color:var(--tp-ink)!important;
  mix-blend-mode:normal!important;
  pointer-events:none!important;
  transform:translate3d(0,0,0);
  opacity:1;
  transition:transform .18s cubic-bezier(.2,.7,.2,1), opacity .14s ease!important;
  will-change:transform,opacity;
}
.site-header.nav-scroll-hidden{transform:translate3d(0,-110%,0)!important;opacity:0!important;}
.site-header.nav-scroll-visible{transform:translate3d(0,0,0)!important;opacity:1!important;}
.site-header .nav,
.site-header .nav.nav-clean{
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  align-items:center!important;
  gap:24px!important;
  min-height:44px!important;
  padding:0!important;
}
.site-header a,.site-header button{pointer-events:auto!important;}
.site-header .brand,
.site-header .brand b{
  justify-self:start!important;
  color:var(--tp-ink)!important;
  font-family:var(--tp-font)!important;
  font-size:clamp(17px,1.45vw,22px)!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:.085em!important;
  white-space:nowrap!important;
  text-align:left!important;
  text-decoration:none!important;
  mix-blend-mode:normal!important;
  font-synthesis:none!important;
}
.site-header .nav-right{
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:clamp(18px,2.2vw,34px)!important;
}
.site-header .nav-right > a:not(.quote-mini),
.site-header .mobile-open{
  color:var(--tp-ink)!important;
  font-family:var(--tp-font)!important;
  text-transform:uppercase!important;
  font-size:var(--tp-button)!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:.045em!important;
  text-decoration:none!important;
  mix-blend-mode:normal!important;
  font-synthesis:none!important;
}
.site-header .quote-mini{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  padding:0 22px!important;
  border:1px solid var(--tp-ink)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:var(--tp-ink)!important;
  font-family:var(--tp-font)!important;
  text-transform:uppercase!important;
  font-size:var(--tp-button)!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:.045em!important;
  white-space:nowrap!important;
  text-decoration:none!important;
  transform:none!important;
}
.site-header .quote-mini:hover{background:var(--tp-ink)!important;color:var(--paper)!important;transform:none!important;}
.mobile-open{display:none!important;}
body.lightbox-open .site-header{display:none!important;}

.eyebrow,
.kicker,
.about-kicker,
.service-index,
.service-meta,
.tags,
.info-cell span,
.filter-row button,
.value-grid article span,
.panel-links span{
  font-family:var(--tp-font)!important;
  font-size:var(--tp-label)!important;
  font-weight:400!important;
  line-height:1.15!important;
  letter-spacing:.095em!important;
  text-transform:uppercase!important;
  color:var(--tp-muted)!important;
}
.kicker{color:rgba(255,255,255,.72)!important;}

.page-hero h1,
.contact-hero-compact h1,
.about-story-copy h2,
.pricing-page .page-hero h1,
.blog-page .page-hero h1,
.services-page .page-hero h1,
.work-page .page-hero h1{
  font-family:var(--tp-font)!important;
  font-size:var(--tp-page-title)!important;
  font-weight:400!important;
  line-height:.96!important;
  letter-spacing:-.045em!important;
  color:var(--tp-ink)!important;
}

.section-title,
.cta-band h2,
.blog-copy h2{
  font-family:var(--tp-font)!important;
  font-size:var(--tp-section-title)!important;
  font-weight:400!important;
  line-height:.98!important;
  letter-spacing:-.04em!important;
  color:inherit!important;
}

.project-info h3,
.service-row h2,
.service-card h3,
.price-card h3,
.article-card h3,
.value-grid article h3,
.blog-copy h3{
  font-family:var(--tp-font)!important;
  font-size:var(--tp-card-title)!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:-.03em!important;
}

.text,
.page-hero p,
.service-row p,
.service-card p,
.price-card p,
.article-card p,
.article-hero p,
.article-body,
.about-story-copy p,
.contact-hero-compact p,
.blog-copy p,
.value-grid article p,
.footer p,
.footer a{
  font-family:var(--tp-font)!important;
  font-size:var(--tp-body)!important;
  font-weight:400!important;
  line-height:1.18!important;
  letter-spacing:-.01em!important;
  color:var(--tp-muted)!important;
}

.cta,
.quote-mini,
.mobile-open,
.service-row .cta,
.price-card .cta,
.contact-button,
.panel-close{
  font-family:var(--tp-font)!important;
  font-size:var(--tp-button)!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:.045em!important;
  text-transform:uppercase!important;
  border-radius:999px!important;
  border-width:1px!important;
}

.footer.footer-final{
  display:grid!important;
  grid-template-columns:minmax(300px, .9fr) minmax(620px, 1.35fr)!important;
  gap:clamp(44px,8vw,150px)!important;
  align-items:start!important;
  padding:clamp(38px,5vw,76px) var(--pad)!important;
  background:var(--paper)!important;
  color:var(--tp-ink)!important;
}
.footer-brand-block{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:clamp(18px,2vw,30px)!important;}
.footer-logo-single{
  display:block!important;
  color:var(--tp-ink)!important;
  font-family:var(--tp-font)!important;
  font-size:clamp(56px,8vw,132px)!important;
  font-weight:400!important;
  line-height:.78!important;
  letter-spacing:-.055em!important;
  white-space:nowrap!important;
  margin:0!important;
}
.footer-legal-inline{
  display:flex!important;
  align-items:center!important;
  gap:clamp(18px,2.1vw,34px)!important;
  margin-top:-2px!important;
}
.footer-legal-inline a{font-size:var(--tp-body)!important;color:var(--tp-muted)!important;line-height:1!important;}
.footer-columns-final{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(120px,1fr))!important;
  gap:clamp(44px,6vw,110px)!important;
  align-items:start!important;
}
.footer h4{font-size:var(--tp-label)!important;letter-spacing:.095em!important;line-height:1.15!important;text-transform:uppercase!important;margin:0 0 18px!important;color:var(--tp-ink)!important;font-weight:600!important;}

.about-intro-images{align-items:start!important;}
.about-intro-image img{filter:none!important;border:0!important;}
@media(min-width:1700px){
  .about-intro-image{width:clamp(360px,25vw,560px)!important;height:clamp(360px,25vw,560px)!important;}
}
@media(max-width:900px){
  .site-header .nav{grid-template-columns:auto auto!important;justify-content:space-between!important;}
  .site-header .nav-right{display:none!important;}
  .mobile-open{display:inline-flex!important;color:var(--tp-ink)!important;border-color:var(--tp-ink)!important;background:transparent!important;}
  .footer.footer-final{display:block!important;}
  .footer-logo-single{font-size:clamp(48px,16vw,88px)!important;line-height:.9!important;}
  .footer-columns-final{grid-template-columns:1fr!important;gap:28px!important;margin-top:44px!important;}
}

:root{
  --type-label: clamp(11px, .72vw, 13px);
  --type-page: clamp(56px, 6.2vw, 112px);
  --type-section: clamp(32px, 3.2vw, 58px);
  --type-card: clamp(22px, 1.9vw, 34px);
  --type-body: clamp(15px, 1.05vw, 18px);
  --type-meta: 11px;
  --type-button: 12px;
  --type-muted: rgba(8,8,6,.56);
  --type-inverse-muted: rgba(244,239,232,.68);
  --type-inverse-soft: rgba(244,239,232,.52);
}

.sketches-section{display:none!important;}

.site-header .brand,
.nav .brand{font-weight:600!important;letter-spacing:.085em!important;}

.eyebrow,
.kicker,
.service-index,
.service-meta,
.tags,
.project-info .tags,
.info-cell span,
.team-card span,
.value-grid span,
.article-card span,
.blog-copy span,
.price-card span,
.process-card span{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:var(--type-label)!important;
  font-weight:400!important;
  line-height:1.1!important;
  letter-spacing:.115em!important;
  text-transform:uppercase!important;
  color:var(--type-muted)!important;
}

.page-hero h1,
.services-hero h1,
.services-hero-editorial h1,
.contact-hero-compact h1,
.about-story-copy h2,
.blog-page .page-hero h1,
.pricing-page .page-hero h1{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:var(--type-page)!important;
  font-weight:400!important;
  line-height:.95!important;
  letter-spacing:-.045em!important;
  color:var(--ink)!important;
}

.section-title,
.cta-band h2,
.large-copy,
.blog-copy h2,
.article-hero h1{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:var(--type-section)!important;
  font-weight:400!important;
  line-height:.98!important;
  letter-spacing:-.035em!important;
  color:inherit!important;
}

.project-info h3,
.service-card h3,
.service-row h2,
.service-copy h2,
.price-card h3,
.process-card h3,
.article-card h3,
.value-grid h3,
.team-card h3{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:var(--type-card)!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:-.028em!important;
  color:inherit!important;
}

.text,
.page-hero p,
.services-hero p,
.services-hero-editorial p,
.service-card p,
.service-row p,
.service-copy p,
.price-card p,
.process-card p,
.article-card p,
.blog-copy p,
.article-hero p,
.article-body,
.about-story-copy p,
.contact-hero-compact p,
.value-grid p,
.footer p,
.footer a{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:var(--type-body)!important;
  font-weight:400!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  color:var(--type-muted)!important;
}

.cta,
.quote-mini,
.mobile-open,
.contact-button,
.panel-close,
.filter-row button,
.service-row .cta,
.price-card .cta{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:var(--type-button)!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:.045em!important;
  text-transform:uppercase!important;
  border-radius:999px!important;
  border-width:1px!important;
}

.dark-block,
.dark-block .section-title,
.dark-block .service-card,
.dark-block .service-card h3{
  color:var(--paper)!important;
}
.dark-block .eyebrow,
.dark-block .kicker,
.dark-block .service-meta,
.dark-block .tags{
  color:var(--type-inverse-soft)!important;
}
.dark-block .service-card p,
.dark-block .text,
.dark-block p{
  color:var(--type-inverse-muted)!important;
}
.dark-block .cta{
  color:var(--paper)!important;
  border-color:rgba(244,239,232,.86)!important;
}
.dark-block .cta:hover{
  background:var(--paper)!important;
  color:var(--ink)!important;
}

.project-card .project-info,
.project-card .project-info h3,
.project-card .project-info .tags{
  color:#fff!important;
}

.footer.footer-final .footer-logo-single{color:#080806!important;}
.footer.footer-final h4{color:#080806!important;}
.footer.footer-final a,.footer.footer-final p{color:rgba(8,8,6,.56)!important;}

@media(max-width:900px){
  :root{
    --type-page:clamp(42px,12vw,72px);
    --type-section:clamp(30px,9vw,52px);
    --type-card:clamp(22px,7vw,34px);
    --type-body:16px;
  }
}

.filter-row button,
.filter-row button:not(.active){
  color:var(--type-muted)!important;
  background:transparent!important;
  border-color:var(--line)!important;
}
.filter-row button.active,
.filter-row button.is-active,
.filter-row button[aria-pressed="true"]{
  color:var(--paper)!important;
  background:var(--ink)!important;
  border-color:var(--ink)!important;
}
.filter-row button.active *,
.filter-row button.is-active *,
.filter-row button[aria-pressed="true"] *{
  color:var(--paper)!important;
}
.value-grid,
.dark-block .value-grid,
.dark-block .value-grid article,
.dark-block .value-grid h3{
  color:var(--paper)!important;
}
.value-grid span,
.dark-block .value-grid span{
  color:var(--type-inverse-soft)!important;
}
.value-grid p,
.dark-block .value-grid p{
  color:var(--type-inverse-muted)!important;
}
.dark-block .section-title,
.dark-block .large-copy,
.dark-block .value-grid h3,
.dark-block .service-card h3{
  color:var(--paper)!important;
}

.dark-block .service-card p,
.dark-block .value-grid p,
.dark-block .process-card p,
.dark-block .price-card p,
.dark-block .article-card p{
  color:var(--type-inverse-muted)!important;
}

.footer.footer-final.footer-v77{
  display:grid!important;
  grid-template-columns:minmax(340px, .95fr) minmax(720px, 1.55fr)!important;
  column-gap:clamp(26px,4vw,82px)!important;
  align-items:start!important;
  padding:clamp(38px,5vw,76px) var(--pad)!important;
  background:var(--paper)!important;
  color:#080806!important;
}
.footer.footer-final.footer-v77 .footer-brand-block{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:0!important;
  min-width:0!important;
}
.footer.footer-final.footer-v77 .footer-logo-single{
  display:block!important;
  color:#080806!important;
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:clamp(54px,7.2vw,126px)!important;
  font-weight:400!important;
  line-height:.82!important;
  letter-spacing:-.055em!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
}
.footer.footer-final.footer-v77 .footer-columns-v77{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(108px,1fr))!important;
  gap:clamp(26px,3.6vw,74px)!important;
  justify-content:start!important;
  align-items:start!important;
  width:100%!important;
  padding:0!important;
  margin:0!important;
}
.footer.footer-final.footer-v77 .footer-columns-v77 h4{
  margin:0 0 18px!important;
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:var(--tp-label)!important;
  font-weight:600!important;
  line-height:1.15!important;
  letter-spacing:.095em!important;
  text-transform:uppercase!important;
  color:#080806!important;
}
.footer.footer-final.footer-v77 .footer-columns-v77 p,
.footer.footer-final.footer-v77 .footer-columns-v77 a{
  margin:0!important;
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:var(--tp-body)!important;
  font-weight:400!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  color:rgba(8,8,6,.56)!important;
}
.footer.footer-final.footer-v77 .footer-legal-inline{display:none!important;}
@media(max-width:1100px){
  .footer.footer-final.footer-v77{grid-template-columns:1fr!important;row-gap:38px!important;}
  .footer.footer-final.footer-v77 .footer-columns-v77{grid-template-columns:repeat(2,minmax(120px,1fr))!important;}
}
@media(max-width:560px){
  .footer.footer-final.footer-v77 .footer-columns-v77{grid-template-columns:1fr!important;}
}

.dark-block > .section-head{
  padding-left:24px!important;
}
@media(max-width:900px){
  .dark-block > .section-head{
    padding-left:0!important;
  }
}

.work-page .portfolio-grid.playtime-masonry{
  position:relative!important;
  display:block!important;
  width:100%!important;
  gap:0!important;
  min-height:60vh;
}
.work-page .portfolio-grid.playtime-masonry .project-card{
  position:absolute!important;
  display:block;
  overflow:hidden;
  min-height:0!important;
  height:auto;
  background:#ddd;
  will-change:transform,opacity;
}
.work-page .portfolio-grid.playtime-masonry .project-card img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
.work-page .portfolio-grid.playtime-masonry .project-card:nth-child(n){
  grid-column:auto!important;
  height:auto;
}
.work-page .portfolio-grid.playtime-masonry .project-card.is-filter-hidden{
  display:none!important;
}
.work-page .portfolio-grid.playtime-masonry .project-info{
  padding:clamp(16px,1.4vw,24px)!important;
}
.work-page .portfolio-grid.playtime-masonry .project-info h3{
  font-size:var(--type-card)!important;
  line-height:1!important;
  letter-spacing:-.028em!important;
}
.work-page .portfolio-grid.playtime-masonry .project-info .tags{
  font-size:var(--type-meta)!important;
  line-height:1.1!important;
  letter-spacing:.09em!important;
}
@media(max-width:900px){
  .work-page .portfolio-grid.playtime-masonry .project-card{position:absolute!important;}
}
@media(max-width:560px){
  .work-page .portfolio-grid.playtime-masonry{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  .work-page .portfolio-grid.playtime-masonry .project-card{position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:70vh!important;transform:none!important;}
}

.work-page .portfolio-grid.playtime-masonry{
  display:block!important;
  column-count:3!important;
  column-gap:10px!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
}
.work-page .portfolio-grid.playtime-masonry .project-card,
.work-page .portfolio-grid.playtime-masonry .project-card:nth-child(n){
  position:relative!important;
  left:auto!important;
  top:auto!important;
  display:inline-block!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0 0 10px 0!important;
  break-inside:avoid!important;
  page-break-inside:avoid!important;
  -webkit-column-break-inside:avoid!important;
  vertical-align:top!important;
  grid-column:auto!important;
}
.work-page .portfolio-grid.playtime-masonry .project-card img{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  object-fit:contain!important;
  display:block!important;
}
.work-page .portfolio-grid.playtime-masonry .project-card.is-filter-hidden{
  display:none!important;
}
@media(max-width:1100px){
  .work-page .portfolio-grid.playtime-masonry{column-count:2!important;}
}
@media(max-width:640px){
  .work-page .portfolio-grid.playtime-masonry{column-count:1!important;}
  .work-page .portfolio-grid.playtime-masonry .project-card,
  .work-page .portfolio-grid.playtime-masonry .project-card:nth-child(n){height:auto!important;margin-bottom:10px!important;}
}

.project-card.is-filter-hidden,
.project-card[hidden],
.work-page .portfolio-grid.playtime-masonry .project-card.is-filter-hidden,
.work-page .portfolio-grid.playtime-masonry .project-card[hidden]{
  display:none!important;
}

.work-page .portfolio-grid.playtime-masonry.is-filtered-view{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  column-count:auto!important;
  column-gap:10px!important;
  row-gap:10px!important;
  align-items:start!important;
  height:auto!important;
}
.work-page .portfolio-grid.playtime-masonry.is-filtered-view .project-card:not(.is-filter-hidden){
  display:block!important;
  width:100%!important;
  margin:0!important;
  break-inside:auto!important;
  position:relative!important;
  left:auto!important;
  top:auto!important;
}
.work-page .portfolio-grid.playtime-masonry.is-filtered-view .project-card img{
  width:100%!important;
  height:auto!important;
  display:block!important;
  object-fit:contain!important;
}
@media(max-width:1100px){
  .work-page .portfolio-grid.playtime-masonry.is-filtered-view{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:640px){
  .work-page .portfolio-grid.playtime-masonry.is-filtered-view{
    grid-template-columns:1fr!important;
  }
}

.work-page .portfolio-grid.playtime-masonry.is-filtered-view{
  position:relative!important;
  display:block!important;
  column-count:auto!important;
  column-gap:0!important;
  row-gap:0!important;
  width:100%!important;
  min-height:0!important;
  height:auto;
}
.work-page .portfolio-grid.playtime-masonry.is-filtered-view .project-card:not(.is-filter-hidden){
  position:absolute!important;
  display:block!important;
  width:auto;
  height:auto;
  min-height:0!important;
  margin:0!important;
  break-inside:auto!important;
  page-break-inside:auto!important;
  -webkit-column-break-inside:auto!important;
  grid-column:auto!important;
}
.work-page .portfolio-grid.playtime-masonry.is-filtered-view .project-card img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
@media(max-width:640px){
  .work-page .portfolio-grid.playtime-masonry.is-filtered-view{
    display:block!important;
    height:auto!important;
  }
  .work-page .portfolio-grid.playtime-masonry.is-filtered-view .project-card:not(.is-filter-hidden){
    position:relative!important;
    left:auto!important;
    top:auto!important;
    width:100%!important;
    height:auto!important;
    margin:0 0 10px 0!important;
  }
  .work-page .portfolio-grid.playtime-masonry.is-filtered-view .project-card img{
    height:auto!important;
    object-fit:contain!important;
  }
}

.case-overview-section .intro-grid{
  align-items:start!important;
}
.case-overview-section .case-overview-copy{
  text-align:right!important;
  justify-self:end!important;
  max-width:900px!important;
}
.case-overview-section .case-overview-copy .text{
  margin-left:auto!important;
  margin-right:0!important;
  max-width:760px!important;
}
.related-clean-section{
  padding:clamp(86px,9vw,150px) var(--pad)!important;
}
.related-clean-section .related-clean-inner{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:clamp(28px,6vw,110px)!important;
  width:100%!important;
}
.related-clean-section .large-copy{
  margin:0!important;
  max-width:980px!important;
  text-align:left!important;
}
.related-clean-section p{
  margin:0!important;
}
.related-clean-section .cta{
  flex:0 0 auto!important;
}
@media(max-width:900px){
  .case-overview-section .case-overview-copy{
    text-align:left!important;
    justify-self:start!important;
    max-width:none!important;
  }
  .case-overview-section .case-overview-copy .text{
    margin-left:0!important;
    max-width:none!important;
  }
  .related-clean-section .related-clean-inner{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:start!important;
    gap:24px!important;
  }
}

.dark-block:has(.services-list) .section-head .section-title{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:clamp(24px,2.6vw,40px)!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:-.03em!important;
}
.service-cta:empty{display:none!important;}

.dark-block > .section-head .section-title,
.dark-block .section-head .section-title{
  font-size: clamp(22px, 1.9vw, 34px) !important;
  line-height: 1 !important;
  letter-spacing: -0.028em !important;
  max-width: 340px !important;
  white-space: nowrap !important;
}

.about-visual-intro.about-compact{
  min-height: 500px !important;
  padding: clamp(108px, 12vh, 132px) var(--pad) clamp(42px, 6vh, 76px) !important;
  display: grid !important;
  grid-template-columns: minmax(340px, 0.55fr) minmax(420px, 0.45fr) !important;
  gap: clamp(42px, 7vw, 120px) !important;
  align-items: start !important;
  background: var(--paper) !important;
}

.about-visual-intro.about-compact .about-story-copy{
  max-width: 640px !important;
  padding-top: 0 !important;
  align-self: start !important;
}

.about-visual-intro.about-compact .about-story-copy .about-kicker{
  display: none !important;
}

.about-visual-intro.about-compact .about-story-copy h2{
  max-width: 620px !important;
  margin: 0 0 22px !important;
  font-size: clamp(34px, 3.35vw, 62px) !important;
  line-height: 1.03 !important;
  letter-spacing: -0.046em !important;
  font-weight: 400 !important;
}

.about-visual-intro.about-compact .about-story-copy p:not(.about-kicker){
  max-width: 590px !important;
  margin: 0 !important;
  font-size: clamp(12px, 0.72vw, 14px) !important;
  line-height: 1.16 !important;
  letter-spacing: -0.01em !important;
  color: rgba(8, 8, 6, 0.58) !important;
}

.about-compact.about-portraits .about-intro-images{
  width: 100% !important;
  max-width: 560px !important;
  justify-self: start !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(18px, 1.5vw, 28px) !important;
  align-items: start !important;
  padding-top: 0 !important;
}

.about-compact.about-portraits .about-intro-image,
.about-compact.about-portraits .about-intro-image-a,
.about-compact.about-portraits .about-intro-image-b{
  margin-top: 0 !important;
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  background: #171717 !important;
  overflow: hidden !important;
}

.about-compact.about-portraits .about-intro-image img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

@media (min-width: 1700px){
  .about-compact.about-portraits .about-intro-image{
    width: 100% !important;
    height: auto !important;
  }
}

@media (max-width: 900px){
  .dark-block > .section-head .section-title,
  .dark-block .section-head .section-title{
    white-space: normal !important;
    max-width: 100% !important;
  }
  .about-visual-intro.about-compact{
    min-height: auto !important;
    grid-template-columns: 1fr !important;
    gap: 34px !important;
    padding-top: 112px !important;
  }
  .about-compact.about-portraits .about-intro-images{
    max-width: 100% !important;
  }
}

@media (max-width: 620px){
  .about-compact.about-portraits .about-intro-images{
    grid-template-columns: 1fr !important;
  }
}

.services-fast-quote-clean{
  padding:clamp(86px,9vw,150px) var(--pad)!important;
}
.services-fast-quote-clean .services-fast-quote-inner{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:clamp(28px,6vw,110px)!important;
  width:100%!important;
}
.services-fast-quote-clean .large-copy{
  margin:0!important;
  max-width:980px!important;
  text-align:left!important;
}
.services-fast-quote-clean .services-fast-quote-action{
  margin:0!important;
  flex:0 0 auto!important;
}
.services-fast-quote-clean .cta{
  flex:0 0 auto!important;
}
@media(max-width:900px){
  .services-fast-quote-clean .services-fast-quote-inner{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:start!important;
    gap:24px!important;
  }
}

:root{
  --type-hero:clamp(52px,6.35vw,122px);
  --type-page:clamp(40px,4.45vw,78px);
  --type-section:clamp(30px,3vw,58px);
  --type-card:clamp(22px,1.75vw,34px);
  --type-intro:clamp(17px,1.05vw,22px);
  --type-body:clamp(15px,.92vw,18px);
  --type-small:clamp(13px,.72vw,15px);
  --type-label:clamp(11px,.62vw,12px);
  --type-button:12px;
  --type-copy-narrow:620px;
  --type-copy:760px;
  --type-copy-wide:980px;
  --tp-body:var(--type-body);
  --tp-label:var(--type-label);
  --tp-button:var(--type-button);
}
html,
body{
  max-width:100%;
  overflow-x:clip;
}
@supports not (overflow:clip){
  html,
  body{overflow-x:hidden;}
}
.hero-title,
.case-title h1{
  font-size:var(--type-hero)!important;
  line-height:.9!important;
  letter-spacing:-.045em!important;
  max-width:min(15ch,1220px)!important;
}
.page-hero h1,
.services-hero h1,
.services-hero-editorial h1,
.contact-hero-compact h1,
.pricing-page .page-hero h1,
.blog-page .page-hero h1,
.work-page .page-hero h1{
  font-size:var(--type-page)!important;
  line-height:.96!important;
  letter-spacing:-.045em!important;
  max-width:var(--type-copy-wide)!important;
}
.section-title,
.large-copy,
.cta-band h2,
.blog-copy h2,
.article-hero h1,
.about-story-copy h2,
.next-prev a{
  font-size:var(--type-section)!important;
  line-height:.98!important;
  letter-spacing:-.036em!important;
  max-width:var(--type-copy-wide)!important;
}
.dark-block:has(.services-list) .section-title,
.dark-block > .section-head .section-title,
.dark-block .section-head .section-title{
  font-size:var(--type-card)!important;
  line-height:1!important;
  letter-spacing:-.028em!important;
  max-width:min(100%,380px)!important;
}
.project-info h3,
.service-card h3,
.service-row h2,
.service-copy h2,
.service-hub-card h3,
.price-card h3,
.process-card h3,
.article-card h3,
.value-grid h3,
.team-card h3,
.contact-card strong{
  font-size:var(--type-card)!important;
  line-height:1!important;
  letter-spacing:-.028em!important;
  max-width:var(--type-copy)!important;
}
.hero-copy,
.page-hero p,
.services-hero p,
.services-hero-editorial p,
.contact-intro p,
.article-hero p,
.blog-copy p{
  font-size:var(--type-intro)!important;
  line-height:1.16!important;
  letter-spacing:-.012em!important;
  max-width:var(--type-copy)!important;
}
.contact-hero.contact-hero-compact .contact-intro p{
  font-size:var(--type-intro)!important;
  line-height:1.16!important;
  letter-spacing:-.012em!important;
  max-width:var(--type-copy)!important;
}
.text,
.service-card p,
.service-row p,
.service-copy p,
.service-hub-card p,
.price-card p,
.process-card p,
.article-card p,
.article-body,
.about-story-copy p:not(.about-kicker),
.value-grid p,
.contact-card em,
.info-cell,
.panel-links,
.footer.footer-final.footer-v77 .footer-columns-v77 p,
.footer.footer-final.footer-v77 .footer-columns-v77 a{
  font-size:var(--type-body)!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
}
.footer p,
.footer a,
.footer.footer-final.footer-v77 .footer-columns-v77 p,
.footer.footer-final.footer-v77 .footer-columns-v77 a{
  overflow-wrap:anywhere;
}
.footer.footer-final.footer-v77 .footer-columns-v77 p,
.footer.footer-final.footer-v77 .footer-columns-v77 a{
  font-size:var(--type-small)!important;
}
.eyebrow,
.kicker,
.about-kicker,
.service-index,
.service-meta,
.service-points span,
.tags,
.project-info .tags,
.info-cell span,
.filter-row button,
.team-card span,
.value-grid span,
.article-card span,
.blog-copy span,
.price-card span,
.process-card span,
.panel-links span,
.footer h4{
  font-size:var(--type-label)!important;
  line-height:1.12!important;
  letter-spacing:.095em!important;
}
.cta,
.quote-mini,
.mobile-open,
.contact-button,
.panel-close,
.filter-row button,
.service-row .cta,
.price-card .cta{
  font-size:var(--type-button)!important;
  line-height:1!important;
  max-width:100%;
  text-align:center;
}
.contact-card strong,
.footer a,
.panel-links a{
  overflow-wrap:anywhere;
}
@media(max-width:900px){
  :root{
    --type-hero:clamp(48px,12vw,76px);
    --type-page:clamp(38px,10vw,64px);
    --type-section:clamp(28px,8vw,48px);
    --type-card:clamp(21px,6vw,32px);
    --type-intro:clamp(16px,4.4vw,19px);
    --type-body:16px;
    --type-small:14px;
  }
  .hero-title,
  .case-title h1,
  .page-hero h1,
  .services-hero h1,
  .services-hero-editorial h1,
  .contact-hero-compact h1,
  .section-title,
  .large-copy,
  .cta-band h2,
  .blog-copy h2,
  .article-hero h1,
  .about-story-copy h2,
  .next-prev a{
    max-width:100%!important;
  }
}

/* v101 text-size-only fixes from v100 working build */
.work-page .page-hero p{
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
}
.hero + .section .intro-grid .text{
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
}
.dark-block:has(.services-list) .service-card p{
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
}

/* v102 text-only fixes */
.about-story-copy p:not(.about-kicker),
.about-intro-copy.about-story-copy p:not(.about-kicker){
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  font-weight:300!important;
}
.work-page .page-hero p,
body:has(.filter-row) .page-hero p{
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  font-weight:300!important;
}

/* v103 text-only about font-size fixes, verified target copy blocks */
.about-story-copy p:not(.about-kicker){
  font-size:19px!important;
  line-height:1.22!important;
}
.value-grid p,
.dark-block .value-grid p{
  font-size:19px!important;
  line-height:1.22!important;
}


/* v104 hard fix: About intro exact target paragraphs, must stay last */
.about-intro-copy.about-story-copy p.about-intro-target-19,
.about-visual-intro .about-intro-copy.about-story-copy p.about-intro-target-19{
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  font-weight:300!important;
}

/* v105, home text-only fixes */
.home-services-snapshot-title{
  font-size:19px!important;
  line-height:1.15!important;
}
.home-studio-label{
  font-size:19px!important;
  line-height:1.2!important;
}
.home-studio-copy{
  text-align:right!important;
}
.home-studio-copy .large-copy,
.home-studio-copy .text{
  text-align:right!important;
}
@media(max-width:900px){
  .home-studio-copy,
  .home-studio-copy .large-copy,
  .home-studio-copy .text{
    text-align:left!important;
  }
}

/* v105 final correction, requested Services snapshot size */
.home-services-snapshot-title{
  font-size:26px!important;
  line-height:1.15!important;
}

/* v106 hard fix: home Studio approach copy aligns to the right edge */
.home-studio-approach{
  grid-template-columns:.8fr 1.4fr!important;
  align-items:start!important;
}
.home-studio-copy{
  justify-self:stretch!important;
  width:100%!important;
  margin-left:auto!important;
  text-align:right!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
}
.home-studio-copy .large-copy,
.home-studio-copy .text{
  display:block!important;
  width:min(100%,1220px)!important;
  max-width:min(100%,1220px)!important;
  margin-left:auto!important;
  margin-right:0!important;
  text-align:right!important;
}
.home-studio-copy .text{
  width:min(100%,760px)!important;
  max-width:min(100%,760px)!important;
}
@media(max-width:900px){
  .home-studio-approach{
    grid-template-columns:1fr!important;
  }
  .home-studio-copy{
    align-items:flex-start!important;
    text-align:left!important;
  }
  .home-studio-copy .large-copy,
  .home-studio-copy .text{
    margin-left:0!important;
    margin-right:auto!important;
    text-align:left!important;
  }
}

/* v107 home text-size fixes, requested only */
.home-studio-label{
  font-size:12px!important;
  line-height:1.2!important;
}
.dark-block:has(.services-list) .service-card h3,
.dark-block .services-list .service-card h3{
  font-size:24px!important;
  line-height:1.15!important;
  letter-spacing:-.02em!important;
}
.work-strip .section-head .section-title,
.work-strip h2.section-title{
  font-size:24px!important;
  line-height:1.15!important;
  letter-spacing:-.02em!important;
}
@media(max-width:900px){
  .home-studio-label{
    font-size:12px!important;
  }
  .dark-block:has(.services-list) .service-card h3,
  .dark-block .services-list .service-card h3,
  .work-strip .section-head .section-title,
  .work-strip h2.section-title{
    font-size:24px!important;
  }
}

/* v108 final fix: Services snapshot size and mobile alignment */
.dark-block:has(.services-list) .section-head .section-title.home-services-snapshot-title,
.dark-block .section-head .home-services-snapshot-title,
.home-services-snapshot-title{
  font-size:24px!important;
  line-height:1.15!important;
  letter-spacing:-.02em!important;
  font-weight:400!important;
  max-width:none!important;
  white-space:normal!important;
}
@media(max-width:900px){
  .dark-block:has(.services-list) > .section-head,
  .section.dark-block:has(.services-list) > .section-head{
    padding-left:24px!important;
  }
  .dark-block:has(.services-list) .section-head .section-title.home-services-snapshot-title,
  .dark-block .section-head .home-services-snapshot-title,
  .home-services-snapshot-title{
    font-size:24px!important;
    line-height:1.15!important;
    letter-spacing:-.02em!important;
    margin-left:0!important;
  }
}

/* v109 desktop-only optical match: Services snapshot to service-card headings */
@media (min-width:901px){
  .section.dark-block:has(.services-list) > .section-head .section-title.home-services-snapshot-title,
  .dark-block:has(.services-list) .section-head .section-title.home-services-snapshot-title,
  .dark-block .section-head .home-services-snapshot-title,
  .home-services-snapshot-title{
    font-size:28px!important;
    line-height:1!important;
    letter-spacing:-.03em!important;
    font-weight:400!important;
  }
}

/* v110 optical typography fixes, requested only */
/* Services snapshot must visually match service card headings on desktop and mobile. */
.section.dark-block:has(.services-list) > .section-head .section-title.home-services-snapshot-title,
.dark-block:has(.services-list) .section-head .section-title.home-services-snapshot-title,
.dark-block .section-head .home-services-snapshot-title,
.home-services-snapshot-title{
  font-size:28px!important;
  line-height:1!important;
  letter-spacing:-.03em!important;
  font-weight:400!important;
  font-family:Grotesk,Arial,sans-serif!important;
  font-synthesis:none!important;
}

/* Featured projects must visually match the Studio approach large heading. */
.work-strip .section-head .section-title,
.work-strip h2.section-title{
  font-size:var(--type-section)!important;
  line-height:.98!important;
  letter-spacing:-.036em!important;
  font-weight:400!important;
  font-family:Grotesk,Arial,sans-serif!important;
  font-synthesis:none!important;
}

@media(max-width:900px){
  .section.dark-block:has(.services-list) > .section-head .section-title.home-services-snapshot-title,
  .dark-block:has(.services-list) .section-head .section-title.home-services-snapshot-title,
  .dark-block .section-head .home-services-snapshot-title,
  .home-services-snapshot-title{
    font-size:28px!important;
    line-height:1!important;
    letter-spacing:-.03em!important;
    font-weight:400!important;
  }
  .work-strip .section-head .section-title,
  .work-strip h2.section-title{
    font-size:var(--type-section)!important;
    line-height:.98!important;
    letter-spacing:-.036em!important;
    font-weight:400!important;
  }
}

/* v111 final heading optical fix, exact requested targets only */
/* Services snapshot must use the same computed typography as service-card headings. */
.section.dark-block:has(.services-list) > .section-head .section-title.home-services-snapshot-title,
.dark-block:has(.services-list) .section-head .section-title.home-services-snapshot-title,
.dark-block .section-head .home-services-snapshot-title,
.home-services-snapshot-title{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:24px!important;
  line-height:1.15!important;
  letter-spacing:-.02em!important;
  font-weight:400!important;
  font-synthesis:none!important;
  max-width:none!important;
}

/* Featured projects must use the same computed typography as the Studio approach large heading. */
.work-strip > .section-head > h2.section-title,
.work-strip .section-head .section-title,
.work-strip h2.section-title{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:var(--type-section)!important;
  line-height:.98!important;
  letter-spacing:-.036em!important;
  font-weight:400!important;
  font-synthesis:none!important;
  max-width:var(--type-copy-wide)!important;
}

@media(max-width:900px){
  .section.dark-block:has(.services-list) > .section-head .section-title.home-services-snapshot-title,
  .dark-block:has(.services-list) .section-head .section-title.home-services-snapshot-title,
  .dark-block .section-head .home-services-snapshot-title,
  .home-services-snapshot-title{
    font-size:24px!important;
    line-height:1.15!important;
    letter-spacing:-.02em!important;
    font-weight:400!important;
  }
  .work-strip > .section-head > h2.section-title,
  .work-strip .section-head .section-title,
  .work-strip h2.section-title{
    font-size:var(--type-section)!important;
    line-height:.98!important;
    letter-spacing:-.036em!important;
    font-weight:400!important;
  }
}

/* v112 rollback: restore previous Services snapshot size only */
.section.dark-block:has(.services-list) > .section-head .section-title.home-services-snapshot-title,
.dark-block:has(.services-list) .section-head .section-title.home-services-snapshot-title,
.dark-block .section-head .home-services-snapshot-title,
.home-services-snapshot-title{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:28px!important;
  line-height:1!important;
  letter-spacing:-.03em!important;
  font-weight:400!important;
  font-synthesis:none!important;
  max-width:none!important;
}

@media(max-width:900px){
  .section.dark-block:has(.services-list) > .section-head .section-title.home-services-snapshot-title,
  .dark-block:has(.services-list) .section-head .section-title.home-services-snapshot-title,
  .dark-block .section-head .home-services-snapshot-title,
  .home-services-snapshot-title{
    font-size:28px!important;
    line-height:1!important;
    letter-spacing:-.03em!important;
    font-weight:400!important;
  }
}

/* v113: mobile footer two-column split. Navigation + Contact left, Social + Legal right */
@media (max-width: 560px){
  .footer.footer-final.footer-v77 .footer-columns-v77{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    column-gap:clamp(28px,12vw,54px)!important;
    row-gap:30px!important;
    align-items:start!important;
    width:100%!important;
  }
  .footer.footer-final.footer-v77 .footer-columns-v77 > div:nth-child(1){
    grid-column:1!important;
    grid-row:1!important;
  }
  .footer.footer-final.footer-v77 .footer-columns-v77 > div:nth-child(2){
    grid-column:1!important;
    grid-row:2!important;
  }
  .footer.footer-final.footer-v77 .footer-columns-v77 > div:nth-child(3){
    grid-column:2!important;
    grid-row:1!important;
  }
  .footer.footer-final.footer-v77 .footer-columns-v77 > div:nth-child(4){
    grid-column:2!important;
    grid-row:2!important;
  }
}


/* v114: mobile menu button transforms from MENU to CLOSE, mobile only */
@media (max-width: 900px){
  .site-header .mobile-open{
    position:relative!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:92px!important;
    min-height:43px!important;
    padding:0 21px!important;
    overflow:hidden!important;
    color:transparent!important;
    border-color:#080806!important;
    background:transparent!important;
    transition:
      border-color .32s cubic-bezier(.22,.61,.36,1),
      background-color .32s cubic-bezier(.22,.61,.36,1),
      transform .32s cubic-bezier(.22,.61,.36,1)!important;
  }
  .site-header .mobile-open::before,
  .site-header .mobile-open::after{
    position:absolute!important;
    inset:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-family:Grotesk,Arial,sans-serif!important;
    font-size:12px!important;
    font-weight:400!important;
    line-height:1!important;
    letter-spacing:.045em!important;
    color:#080806!important;
    text-transform:uppercase!important;
    pointer-events:none!important;
    transition:
      opacity .28s cubic-bezier(.22,.61,.36,1),
      transform .42s cubic-bezier(.22,.61,.36,1),
      letter-spacing .42s cubic-bezier(.22,.61,.36,1)!important;
    will-change:opacity,transform!important;
  }
  .site-header .mobile-open::before{
    content:"MENU"!important;
    opacity:1!important;
    transform:translate3d(0,0,0) scale(1)!important;
  }
  .site-header .mobile-open::after{
    content:"CLOSE"!important;
    opacity:0!important;
    transform:translate3d(0,115%,0) scale(.96)!important;
    letter-spacing:.025em!important;
  }
  .site-header .mobile-open.is-open::before{
    opacity:0!important;
    transform:translate3d(0,-115%,0) scale(.96)!important;
    letter-spacing:.025em!important;
  }
  .site-header .mobile-open.is-open::after{
    opacity:1!important;
    transform:translate3d(0,0,0) scale(1)!important;
    letter-spacing:.045em!important;
  }
  .site-header .mobile-open:active{
    transform:scale(.975)!important;
  }
  body.mobile-menu-is-open{
    overflow:hidden!important;
  }
}

/* v115: portfolio hero typography and description alignment only */
.work-page .page-hero h1,
body.work-page:has(.work-strip) .page-hero h1,
body.work-page:has(.filter-row) .page-hero h1{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:var(--type-section)!important;
  line-height:.98!important;
  letter-spacing:-.036em!important;
  font-weight:400!important;
  font-synthesis:none!important;
  transform:none!important;
  max-width:var(--type-copy-wide)!important;
}

.work-page .page-hero p,
body.work-page:has(.work-strip) .page-hero p,
body.work-page:has(.filter-row) .page-hero p{
  justify-self:end!important;
  align-self:end!important;
  width:min(100%,360px)!important;
  max-width:360px!important;
  margin-left:auto!important;
  margin-right:0!important;
  margin-bottom:clamp(4px,.8vw,14px)!important;
  text-align:left!important;
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  font-weight:300!important;
}

.work-page .page-hero,
body.work-page:has(.work-strip) .page-hero,
body.work-page:has(.filter-row) .page-hero{
  align-items:end!important;
}

@media(max-width:900px){
  .work-page .page-hero h1,
  body.work-page:has(.work-strip) .page-hero h1,
  body.work-page:has(.filter-row) .page-hero h1{
    font-size:var(--type-section)!important;
    line-height:.98!important;
    letter-spacing:-.036em!important;
  }
  .work-page .page-hero p,
  body.work-page:has(.work-strip) .page-hero p,
  body.work-page:has(.filter-row) .page-hero p{
    justify-self:start!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    margin-bottom:0!important;
    text-align:left!important;
  }
}

/* v116: portfolio hero description placement, Our work size, mobile filter alignment only */
.work-page .page-hero,
body.work-page:has(.work-strip) .page-hero,
body.work-page:has(.filter-row) .page-hero{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  gap:clamp(16px,1.8vw,28px)!important;
}

.work-page .page-hero p,
body.work-page:has(.work-strip) .page-hero p,
body.work-page:has(.filter-row) .page-hero p{
  order:2!important;
  justify-self:auto!important;
  align-self:flex-start!important;
  width:min(100%,560px)!important;
  max-width:560px!important;
  margin:0!important;
  text-align:left!important;
}

.work-page .page-hero h1,
body.work-page:has(.work-strip) .page-hero h1,
body.work-page:has(.filter-row) .page-hero h1{
  order:1!important;
}

.work-page .work-strip .section-head .section-title,
.work-page .work-strip h2.section-title,
body.work-page:has(.filter-row) .section-head .section-title{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:24px!important;
  line-height:1.05!important;
  letter-spacing:-.025em!important;
  font-weight:400!important;
  font-synthesis:none!important;
}

@media(max-width:900px){
  .work-page .page-hero,
  body.work-page:has(.work-strip) .page-hero,
  body.work-page:has(.filter-row) .page-hero{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-end!important;
    gap:16px!important;
  }
  .work-page .page-hero p,
  body.work-page:has(.work-strip) .page-hero p,
  body.work-page:has(.filter-row) .page-hero p{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    text-align:left!important;
  }
  .work-page .work-strip .section-head,
  body.work-page:has(.filter-row) .section-head{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:18px!important;
  }
  .work-page .filter-row,
  body.work-page:has(.filter-row) .filter-row{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
    max-width:420px!important;
  }
  .work-page .filter-row button,
  body.work-page:has(.filter-row) .filter-row button{
    width:100%!important;
    min-height:42px!important;
    padding:0 12px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
  .work-page .filter-row button[data-filter="animation"],
  body.work-page:has(.filter-row) .filter-row button[data-filter="animation"]{
    grid-column:1 / -1!important;
    justify-self:start!important;
    width:calc(50% - 4px)!important;
  }
}

@media(max-width:420px){
  .work-page .filter-row,
  body.work-page:has(.filter-row) .filter-row{
    max-width:100%!important;
  }
}

/* v117: portfolio mobile filter button placement and home Featured projects size only */
body:not(.work-page) .work-strip > .section-head > h2.section-title,
body:not(.work-page) .work-strip .section-head .section-title{
  font-size:24px!important;
  line-height:1.05!important;
  letter-spacing:-.025em!important;
  font-weight:400!important;
}

@media(max-width:900px){
  .work-page .filter-row,
  body.work-page:has(.filter-row) .filter-row{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
    max-width:420px!important;
  }
  .work-page .filter-row button[data-filter="animation"],
  body.work-page:has(.filter-row) .filter-row button[data-filter="animation"]{
    grid-column:2 / 3!important;
    grid-row:3!important;
    justify-self:stretch!important;
    width:100%!important;
    max-width:none!important;
  }
}

@media(max-width:420px){
  .work-page .filter-row,
  body.work-page:has(.filter-row) .filter-row{
    max-width:100%!important;
  }
}

/* v118: home studio copy left alignment and tighter portfolio hero only */
.home-studio-copy,
.home-studio-copy .large-copy,
.home-studio-copy .text{
  text-align:left!important;
}
.home-studio-copy{
  align-items:flex-start!important;
}
.home-studio-copy .large-copy,
.home-studio-copy .text{
  margin-left:0!important;
  margin-right:auto!important;
}

.work-page .page-hero,
body.work-page:has(.work-strip) .page-hero,
body.work-page:has(.filter-row) .page-hero{
  min-height:clamp(300px,34vh,400px)!important;
  padding-top:clamp(112px,10vh,145px)!important;
  padding-bottom:clamp(26px,4vw,42px)!important;
  gap:clamp(12px,1.3vw,20px)!important;
  justify-content:flex-end!important;
}
.work-page .page-hero p,
body.work-page:has(.work-strip) .page-hero p,
body.work-page:has(.filter-row) .page-hero p{
  margin-top:0!important;
  margin-bottom:0!important;
  align-self:flex-start!important;
}

@media(max-width:900px){
  .work-page .page-hero,
  body.work-page:has(.work-strip) .page-hero,
  body.work-page:has(.filter-row) .page-hero{
    min-height:auto!important;
    padding-top:112px!important;
    padding-bottom:34px!important;
    gap:14px!important;
  }
}

/* v119: home studio copy to left edge and safer mobile menu lettering only */
.home-studio-approach{
  display:block!important;
}
.home-studio-approach .home-studio-label{
  display:block!important;
  margin:0 0 clamp(28px,4vw,58px) 0!important;
}
.home-studio-copy{
  width:min(100%,920px)!important;
  max-width:920px!important;
  margin-left:0!important;
  margin-right:auto!important;
  align-items:flex-start!important;
  text-align:left!important;
}
.home-studio-copy .large-copy,
.home-studio-copy .text{
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
}
.home-studio-copy .text{
  max-width:760px!important;
}

@media(max-width:900px){
  .mobile-menu nav a{
    letter-spacing:-.025em!important;
    line-height:.98!important;
  }
  .home-studio-approach .home-studio-label{
    margin-bottom:24px!important;
  }
  .home-studio-copy{
    width:100%!important;
    max-width:100%!important;
  }
}

/* v120: reduce empty vertical space around home Studio approach only */
main > .section:has(.home-studio-approach){
  padding-top:clamp(44px,5vw,76px)!important;
  padding-bottom:clamp(44px,5vw,76px)!important;
}
.home-studio-approach .home-studio-label{
  margin-bottom:clamp(18px,2.4vw,34px)!important;
}
@media(max-width:900px){
  main > .section:has(.home-studio-approach){
    padding-top:44px!important;
    padding-bottom:44px!important;
  }
  .home-studio-approach .home-studio-label{
    margin-bottom:18px!important;
  }
}

/* v121: case pages overview alignment and case header text tuning only */
body:has(.case-hero) .case-title p{
  font-size:19px!important;
  line-height:1.16!important;
  letter-spacing:-.012em!important;
  align-self:end!important;
  transform:translateY(6px)!important;
  margin:0!important;
}
body:has(.case-hero) .case-overview-section{
  padding-top:clamp(88px,8.5vw,132px)!important;
  padding-bottom:clamp(88px,8.5vw,132px)!important;
}
body:has(.case-hero) .case-overview-section .intro-grid{
  align-items:start!important;
}
body:has(.case-hero) .case-overview-section .eyebrow{
  font-size:19px!important;
  line-height:1.1!important;
  letter-spacing:.095em!important;
  margin-top:clamp(10px,1.4vw,22px)!important;
}
body:has(.case-hero) .case-overview-section .case-overview-copy{
  text-align:left!important;
  justify-self:start!important;
  max-width:980px!important;
  width:100%!important;
}
body:has(.case-hero) .case-overview-section .case-overview-copy .large-copy,
body:has(.case-hero) .case-overview-section .case-overview-copy .text{
  text-align:left!important;
  margin-left:0!important;
  margin-right:auto!important;
}
body:has(.case-hero) .case-overview-section .case-overview-copy .large-copy{
  max-width:980px!important;
}
body:has(.case-hero) .case-overview-section .case-overview-copy .text{
  max-width:980px!important;
}
@media(max-width:900px){
  body:has(.case-hero) .case-title p{
    font-size:19px!important;
    transform:none!important;
  }
  body:has(.case-hero) .case-overview-section{
    padding-top:64px!important;
    padding-bottom:64px!important;
  }
  body:has(.case-hero) .case-overview-section .eyebrow{
    font-size:19px!important;
    margin-top:0!important;
  }
  body:has(.case-hero) .case-overview-section .case-overview-copy,
  body:has(.case-hero) .case-overview-section .case-overview-copy .large-copy,
  body:has(.case-hero) .case-overview-section .case-overview-copy .text{
    max-width:100%!important;
    width:100%!important;
    text-align:left!important;
  }
}

/* v122: case overview true left edge alignment + mobile two-column case nav */
body:has(.case-hero) .case-overview-section .intro-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:clamp(22px,2.8vw,44px)!important;
  align-items:start!important;
}
body:has(.case-hero) .case-overview-section .eyebrow{
  font-size:12px!important;
  line-height:1.1!important;
  letter-spacing:.12em!important;
  margin-top:0!important;
}
body:has(.case-hero) .case-overview-section .case-overview-copy{
  grid-column:1 / -1!important;
  justify-self:start!important;
  align-self:start!important;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  text-align:left!important;
}
body:has(.case-hero) .case-overview-section .case-overview-copy .large-copy,
body:has(.case-hero) .case-overview-section .case-overview-copy .text{
  width:100%!important;
  max-width:1040px!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
}
body:has(.case-hero) .case-overview-section .case-overview-copy .text{
  max-width:1120px!important;
}
@media(max-width:900px){
  body:has(.case-hero) .case-overview-section .intro-grid{
    grid-template-columns:1fr!important;
    gap:18px!important;
  }
  body:has(.case-hero) .case-overview-section .eyebrow{
    font-size:12px!important;
    line-height:1.1!important;
    letter-spacing:.12em!important;
  }
  body:has(.case-hero) .next-prev{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  }
  body:has(.case-hero) .next-prev a{
    padding:18px var(--pad)!important;
    font-size:clamp(13px,3.5vw,16px)!important;
    line-height:1!important;
    letter-spacing:-.01em!important;
    white-space:nowrap!important;
  }
  body:has(.case-hero) .next-prev a:first-child{
    text-align:left!important;
  }
  body:has(.case-hero) .next-prev a:last-child{
    text-align:right!important;
    border-left:1px solid var(--line)!important;
    border-top:0!important;
  }
}

/* v123: case overview readable width + project facts typography only */
body:has(.case-hero) .case-overview-section .case-overview-copy{
  width:100%!important;
  max-width:920px!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
}
body:has(.case-hero) .case-overview-section .case-overview-copy .large-copy{
  width:100%!important;
  max-width:920px!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
  line-height:.98!important;
}
body:has(.case-hero) .case-overview-section .case-overview-copy .text{
  width:100%!important;
  max-width:980px!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
  line-height:1.22!important;
}
body:has(.case-hero) .info-table .info-cell{
  font-size:19px!important;
  line-height:1.16!important;
  letter-spacing:-.01em!important;
}
body:has(.case-hero) .info-table .info-cell span{
  font-size:12px!important;
  line-height:1.12!important;
  letter-spacing:.095em!important;
}
@media(max-width:900px){
  body:has(.case-hero) .case-overview-section .case-overview-copy,
  body:has(.case-hero) .case-overview-section .case-overview-copy .large-copy,
  body:has(.case-hero) .case-overview-section .case-overview-copy .text{
    max-width:100%!important;
  }
  body:has(.case-hero) .info-table .info-cell{
    font-size:19px!important;
  }
  body:has(.case-hero) .info-table .info-cell span{
    font-size:12px!important;
  }
}

/* v124: services page requested typography only */
body:has(.services-hero-editorial) .services-hero-editorial .services-header-copy h1{
  font-size:48px!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
}
body:has(.services-hero-editorial) .services-cms-list .service-row .service-index{
  font-size:12px!important;
  line-height:1.12!important;
  letter-spacing:.095em!important;
}
body:has(.services-hero-editorial) .services-cms-list .service-row .service-body h2{
  font-size:48px!important;
  line-height:1!important;
  letter-spacing:-.035em!important;
}
body:has(.services-hero-editorial) .services-cms-list .service-row .service-body p{
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
}
@media(max-width:900px){
  body:has(.services-hero-editorial) .services-hero-editorial .services-header-copy h1,
  body:has(.services-hero-editorial) .services-cms-list .service-row .service-body h2{
    font-size:48px!important;
  }
  body:has(.services-hero-editorial) .services-cms-list .service-row .service-index{
    font-size:12px!important;
  }
  body:has(.services-hero-editorial) .services-cms-list .service-row .service-body p{
    font-size:19px!important;
  }
}

/* v125: services details + pricing insights typography only */
body:has(.services-hero-editorial) .services-cms-list .service-row .service-points span{
  font-size:12px!important;
  line-height:1.12!important;
  letter-spacing:.06em!important;
}
body:has(.services-hero-editorial) .services-hub .section-head .section-title,
body:has(.services-hero-editorial) .services-hub h2.section-title{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:48px!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
  font-synthesis:none!important;
}
body:has(.services-hero-editorial) .services-hub .service-hub-card > .eyebrow{
  font-size:12px!important;
  line-height:1.12!important;
  letter-spacing:.095em!important;
}
body:has(.services-hero-editorial) .services-hub .service-hub-card h3{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:24px!important;
  line-height:1.15!important;
  letter-spacing:-.02em!important;
  font-weight:400!important;
  font-synthesis:none!important;
}
body:has(.services-hero-editorial) .services-hub .service-hub-card p{
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
}
@media(max-width:900px){
  body:has(.services-hero-editorial) .services-cms-list .service-row .service-points span{
    font-size:12px!important;
  }
  body:has(.services-hero-editorial) .services-hub .section-head .section-title,
  body:has(.services-hero-editorial) .services-hub h2.section-title{
    font-size:48px!important;
  }
  body:has(.services-hero-editorial) .services-hub .service-hub-card > .eyebrow{
    font-size:12px!important;
  }
  body:has(.services-hero-editorial) .services-hub .service-hub-card h3{
    font-size:24px!important;
  }
  body:has(.services-hero-editorial) .services-hub .service-hub-card p{
    font-size:19px!important;
  }
}

/* v126: pricing page hero compact layout and typography only */
body:has(.pricing-grid) .page-hero{
  display:block!important;
  min-height:auto!important;
  padding-top:clamp(118px,10vw,170px)!important;
  padding-bottom:clamp(42px,5vw,72px)!important;
}
body:has(.pricing-grid) .page-hero h1{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:48px!important;
  line-height:1!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
  margin:0!important;
  max-width:720px!important;
}
body:has(.pricing-grid) .page-hero p{
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  color:var(--muted)!important;
  max-width:720px!important;
  margin:24px 0 0 0!important;
  text-align:left!important;
}
body:has(.pricing-grid) main > .section{
  padding-top:clamp(34px,4.5vw,64px)!important;
}
@media(max-width:900px){
  body:has(.pricing-grid) .page-hero{
    padding-top:118px!important;
    padding-bottom:44px!important;
  }
  body:has(.pricing-grid) .page-hero h1{
    font-size:48px!important;
  }
  body:has(.pricing-grid) .page-hero p{
    font-size:19px!important;
    max-width:100%!important;
  }
}


/* v127: pricing page left-aligned hero text + tighter pricing cards */
.pricing-page .page-hero{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  min-height:auto!important;
  padding-top:clamp(104px,8vw,138px)!important;
  padding-bottom:clamp(28px,3.2vw,48px)!important;
  gap:22px!important;
}
.pricing-page .page-hero h1{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:48px!important;
  line-height:1!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
  margin:0!important;
  max-width:720px!important;
}
.pricing-page .page-hero p{
  display:block!important;
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  color:var(--muted)!important;
  width:min(100%,720px)!important;
  max-width:720px!important;
  margin:0!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
  justify-self:start!important;
  align-self:flex-start!important;
}
.pricing-page main > .section:has(.pricing-grid){
  padding-top:clamp(22px,2.4vw,38px)!important;
}
.pricing-page .pricing-grid{
  align-items:stretch!important;
}
.pricing-page .price-card{
  min-height:260px!important;
  padding:24px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  gap:18px!important;
}
.pricing-page .price-card h3{
  margin:0!important;
}
.pricing-page .price-card p.text,
.pricing-page .price-card p{
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  margin:0!important;
}
.pricing-page .price-card .cta{
  margin-top:auto!important;
}
@media(max-width:900px){
  .pricing-page .page-hero{
    padding-top:112px!important;
    padding-bottom:34px!important;
    gap:18px!important;
  }
  .pricing-page .page-hero p{
    width:100%!important;
    max-width:100%!important;
    font-size:19px!important;
  }
  .pricing-page .price-card{
    min-height:auto!important;
  }
}

/* v128: restore footer breathing room on Pricing and Contact only */
.pricing-page main > .section:has(.pricing-grid){
  padding-bottom:clamp(130px,14vw,230px)!important;
}
body:has(.contact-hero.contact-hero-compact) .contact-highlights{
  padding-bottom:clamp(130px,14vw,230px)!important;
}
@media(max-width:900px){
  .pricing-page main > .section:has(.pricing-grid){
    padding-bottom:96px!important;
  }
  body:has(.contact-hero.contact-hero-compact) .contact-highlights{
    padding-bottom:96px!important;
  }
}

/* v129: pricing footer depth + blog hero/type cleanup */
.pricing-page main{
  padding-bottom:clamp(260px,26vw,520px)!important;
}
.pricing-page main > .section:has(.pricing-grid){
  padding-bottom:0!important;
}
.pricing-page .footer.footer-final.footer-v77{
  margin-top:0!important;
}
.blog-page .blog-hero,
body:has(.blog-cms-list) .blog-hero{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  min-height:auto!important;
  padding-top:clamp(104px,8vw,138px)!important;
  padding-bottom:clamp(28px,3.2vw,48px)!important;
  gap:22px!important;
}
.blog-page .blog-hero h1,
body:has(.blog-cms-list) .blog-hero h1{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:48px!important;
  line-height:1!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
  margin:0!important;
  max-width:720px!important;
  transform:none!important;
}
.blog-page .blog-hero p,
body:has(.blog-cms-list) .blog-hero p{
  display:block!important;
  width:min(100%,720px)!important;
  max-width:720px!important;
  margin:0!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
  justify-self:start!important;
  align-self:flex-start!important;
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  color:var(--muted)!important;
}
.blog-page .blog-cms-list,
body:has(.blog-cms-list) .blog-cms-list{
  padding-top:clamp(22px,2.4vw,38px)!important;
}
.blog-page .article-card span,
body:has(.blog-cms-list) .article-card span,
.blog-page .blog-copy .eyebrow,
body:has(.blog-cms-list) .blog-copy .eyebrow{
  font-size:12px!important;
  line-height:1.12!important;
  letter-spacing:.095em!important;
}
.blog-page .article-card p,
body:has(.blog-cms-list) .article-card p{
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
}
@media(max-width:900px){
  .pricing-page main{
    padding-bottom:160px!important;
  }
  .blog-page .blog-hero,
  body:has(.blog-cms-list) .blog-hero{
    padding-top:112px!important;
    padding-bottom:34px!important;
    gap:18px!important;
  }
  .blog-page .blog-hero h1,
  body:has(.blog-cms-list) .blog-hero h1{
    font-size:48px!important;
  }
  .blog-page .blog-hero p,
  body:has(.blog-cms-list) .blog-hero p{
    width:100%!important;
    max-width:100%!important;
    font-size:19px!important;
  }
  .blog-page .article-card span,
  body:has(.blog-cms-list) .article-card span,
  .blog-page .blog-copy .eyebrow,
  body:has(.blog-cms-list) .blog-copy .eyebrow{
    font-size:12px!important;
  }
  .blog-page .article-card p,
  body:has(.blog-cms-list) .article-card p{
    font-size:19px!important;
  }
}

/* v130: pricing gap cleanup + article pages left aligned */
.pricing-page main{
  padding-bottom:0!important;
}
.pricing-page main > .section:has(.pricing-grid){
  padding-top:clamp(18px,2.2vw,34px)!important;
  padding-bottom:clamp(44px,5vw,76px)!important;
}
.pricing-page .page-hero{
  padding-bottom:clamp(20px,2.4vw,36px)!important;
}
.pricing-page .pricing-grid{
  margin-bottom:0!important;
}
.pricing-page .footer.footer-final.footer-v77{
  margin-top:0!important;
}

.article-page{
  padding-top:0!important;
}
.article-page .article-hero{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  min-height:auto!important;
  padding:clamp(104px,8vw,138px) var(--pad) clamp(28px,3.2vw,48px)!important;
  gap:16px!important;
  text-align:left!important;
}
.article-page .article-hero .eyebrow{
  order:0!important;
  display:block!important;
  font-size:12px!important;
  line-height:1.12!important;
  letter-spacing:.095em!important;
  text-transform:uppercase!important;
  margin:0!important;
  color:var(--muted)!important;
  text-align:left!important;
}
.article-page .article-hero h1{
  order:1!important;
  margin:0!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
  align-self:flex-start!important;
  max-width:min(100%,980px)!important;
}
.article-page .article-hero p{
  order:2!important;
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  width:min(100%,860px)!important;
  max-width:860px!important;
  margin:0!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
  align-self:flex-start!important;
  color:var(--muted)!important;
}
.article-page .article-hero-image{
  order:3!important;
  width:100%!important;
  margin-top:clamp(18px,2.4vw,34px)!important;
}
.article-page .article-body{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(34px,5vw,72px) var(--pad) clamp(64px,8vw,110px)!important;
  text-align:left!important;
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  color:var(--muted)!important;
}
.article-page .article-body p{
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  width:min(100%,860px)!important;
  max-width:860px!important;
  margin:0 0 24px 0!important;
  text-align:left!important;
}
.article-page .article-body p:has(.cta),
.article-page .article-body .cta{
  margin-left:0!important;
  margin-right:auto!important;
  align-self:flex-start!important;
}
@media(max-width:900px){
  .pricing-page main > .section:has(.pricing-grid){
    padding-bottom:54px!important;
  }
  .article-page .article-hero{
    padding-top:112px!important;
    padding-bottom:34px!important;
    gap:14px!important;
  }
  .article-page .article-hero p,
  .article-page .article-body,
  .article-page .article-body p{
    font-size:19px!important;
  }
}

/* v131: Pricing wide-screen empty-space fix */
@media (min-width: 1200px) and (min-height: 720px){
  .pricing-page .page{
    min-height:100vh!important;
    display:flex!important;
    flex-direction:column!important;
  }
  .pricing-page main{
    flex:1 0 auto!important;
    display:flex!important;
    flex-direction:column!important;
    padding-bottom:0!important;
  }
  .pricing-page .page-hero{
    flex:0 0 auto!important;
  }
  .pricing-page main > .section:has(.pricing-grid){
    flex:1 0 auto!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    padding-top:clamp(18px,2.2vw,34px)!important;
    padding-bottom:clamp(18px,2.8vw,42px)!important;
  }
  .pricing-page .pricing-grid{
    flex:1 0 auto!important;
    display:grid!important;
    align-items:stretch!important;
    margin-bottom:0!important;
  }
  .pricing-page .price-card{
    min-height:clamp(320px,38vh,460px)!important;
  }
  .pricing-page .footer.footer-final.footer-v77{
    flex:0 0 auto!important;
    margin-top:0!important;
    padding-top:clamp(34px,3.4vw,54px)!important;
    padding-bottom:clamp(34px,3.4vw,54px)!important;
  }
}
@media (min-width: 1600px) and (min-height: 820px){
  .pricing-page .price-card{
    min-height:clamp(360px,40vh,520px)!important;
  }
}
@media (max-width: 1199px), (max-height: 719px){
  .pricing-page .price-card{
    min-height:260px!important;
  }
}

/* v132: pricing wide-screen card spacing bug fix
   Removes the vh/flex stretching that created huge empty space inside pricing cards on ultrawide screens. */
@media (min-width: 1200px){
  .pricing-page .page{
    display:block!important;
    min-height:0!important;
  }
  .pricing-page main{
    display:block!important;
    flex:none!important;
    padding-bottom:0!important;
  }
  .pricing-page .page-hero{
    flex:none!important;
  }
  .pricing-page main > .section:has(.pricing-grid){
    display:block!important;
    flex:none!important;
    padding-top:clamp(18px,2.2vw,34px)!important;
    padding-bottom:clamp(44px,4.8vw,76px)!important;
  }
  .pricing-page .pricing-grid{
    display:grid!important;
    flex:none!important;
    align-items:stretch!important;
    margin-bottom:0!important;
  }
  .pricing-page .price-card{
    min-height:clamp(190px,10vw,230px)!important;
    height:auto!important;
    padding:clamp(18px,1.7vw,26px)!important;
    gap:clamp(12px,1.2vw,18px)!important;
    justify-content:flex-start!important;
  }
  .pricing-page .price-card .cta{
    margin-top:auto!important;
  }
  .pricing-page .footer.footer-final.footer-v77{
    flex:none!important;
    margin-top:0!important;
  }
}
@media (max-width: 1199px){
  .pricing-page .price-card{
    min-height:auto!important;
  }
}

/* v133: Pricing page height normalized to 100vh */
.pricing-page,
.pricing-page body{
  min-height:100vh!important;
}
.pricing-page .page{
  min-height:100vh!important;
  display:flex!important;
  flex-direction:column!important;
}
.pricing-page main{
  flex:1 0 auto!important;
  display:flex!important;
  flex-direction:column!important;
  padding-bottom:0!important;
}
.pricing-page .page-hero{
  flex:0 0 auto!important;
}
.pricing-page main > .section:has(.pricing-grid){
  flex:0 0 auto!important;
  padding-bottom:clamp(34px,4vw,64px)!important;
}
.pricing-page .pricing-grid{
  flex:0 0 auto!important;
}
.pricing-page .price-card{
  height:auto!important;
}
.pricing-page .footer.footer-final.footer-v77{
  flex:0 0 auto!important;
  margin-top:auto!important;
}
@media (min-width:1200px){
  .pricing-page .page{
    min-height:100vh!important;
    height:100vh!important;
    overflow:hidden!important;
  }
  .pricing-page main{
    min-height:0!important;
  }
  .pricing-page .page-hero{
    padding-top:clamp(86px,6.2vw,116px)!important;
    padding-bottom:clamp(22px,2.5vw,36px)!important;
  }
  .pricing-page main > .section:has(.pricing-grid){
    padding-top:clamp(18px,2vw,30px)!important;
    padding-bottom:clamp(24px,2.8vw,42px)!important;
  }
  .pricing-page .price-card{
    min-height:clamp(180px,12vh,220px)!important;
  }
}
@media (max-width:1199px){
  .pricing-page .page{
    min-height:100vh!important;
    height:auto!important;
    overflow:visible!important;
  }
}

/* v134: Pricing first screen fit
   Desktop only: pricing content fills the first viewport, cards stay compact at the bottom,
   and the footer starts just below the fold so it appears only after a small scroll. */
@media (min-width:1200px){
  .pricing-page .page{
    display:block!important;
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
  }
  .pricing-page main{
    min-height:100vh!important;
    min-height:100svh!important;
    display:flex!important;
    flex-direction:column!important;
    padding-bottom:0!important;
  }
  .pricing-page .page-hero{
    flex:0 0 auto!important;
    min-height:auto!important;
    display:block!important;
    padding-top:clamp(98px,6.4vw,128px)!important;
    padding-bottom:clamp(14px,1.8vw,28px)!important;
  }
  .pricing-page .page-hero h1{
    margin:0!important;
  }
  .pricing-page .page-hero p{
    margin:clamp(14px,1.4vw,22px) 0 0 0!important;
    max-width:680px!important;
  }
  .pricing-page main > .section:has(.pricing-grid){
    flex:0 0 auto!important;
    display:block!important;
    margin-top:auto!important;
    padding-top:clamp(26px,3vw,44px)!important;
    padding-bottom:clamp(22px,2.4vw,38px)!important;
  }
  .pricing-page .pricing-grid{
    display:grid!important;
    flex:none!important;
    align-items:stretch!important;
    margin:0!important;
  }
  .pricing-page .price-card{
    height:auto!important;
    min-height:clamp(190px,12vw,240px)!important;
    padding:clamp(18px,1.7vw,26px)!important;
    gap:clamp(12px,1.2vw,18px)!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
  }
  .pricing-page .price-card .cta{
    margin-top:auto!important;
  }
  .pricing-page .footer.footer-final.footer-v77{
    flex:none!important;
    margin-top:0!important;
  }
}
@media (max-width:1199px){
  .pricing-page .page{
    height:auto!important;
    min-height:100vh!important;
    overflow:visible!important;
  }
}


/* v136: restore build safety + About visual and Values requested fixes */
.about-page .about-visual-intro.about-compact{
  grid-template-columns:minmax(420px,.42fr) minmax(620px,.58fr)!important;
  gap:clamp(42px,6vw,120px)!important;
  align-items:start!important;
}
.about-page .about-visual-intro.about-compact .about-story-copy h2{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:48px!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
  max-width:720px!important;
  margin:0 0 22px!important;
  color:var(--ink)!important;
}
.about-page .about-compact.about-portraits .about-intro-images{
  width:100%!important;
  max-width:min(900px,50vw)!important;
  justify-self:end!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(20px,1.8vw,34px)!important;
  align-items:start!important;
  padding-top:0!important;
}
.about-page .about-compact.about-portraits .about-intro-image,
.about-page .about-compact.about-portraits .about-intro-image-a,
.about-page .about-compact.about-portraits .about-intro-image-b{
  aspect-ratio:1/1!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
}
.about-page .about-compact.about-portraits .about-intro-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
.about-page .values-section .section-head .section-title,
.about-page .values-section .section-title{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:28px!important;
  line-height:1!important;
  letter-spacing:-.03em!important;
  font-weight:400!important;
  max-width:none!important;
  white-space:normal!important;
}
.about-page .values-section .section-head .eyebrow,
.about-page .values-section .value-grid span{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:12px!important;
  line-height:1.12!important;
  letter-spacing:.095em!important;
  font-weight:400!important;
  text-transform:uppercase!important;
}
.about-page .values-section .value-grid h3{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:24px!important;
  line-height:1.15!important;
  letter-spacing:-.02em!important;
  font-weight:400!important;
  margin:0!important;
}
.about-page .values-section .value-grid p{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:19px!important;
  line-height:1.22!important;
  letter-spacing:-.01em!important;
  font-weight:400!important;
  color:rgba(244,239,232,.62)!important;
}
@media(min-width:1700px){
  .about-page .about-compact.about-portraits .about-intro-images{
    max-width:min(980px,52vw)!important;
  }
}
@media(max-width:1100px){
  .about-page .about-visual-intro.about-compact{
    grid-template-columns:1fr!important;
  }
  .about-page .about-compact.about-portraits .about-intro-images{
    justify-self:start!important;
    max-width:100%!important;
  }
}
@media(max-width:900px){
  .about-page .about-visual-intro.about-compact .about-story-copy h2{
    font-size:48px!important;
    line-height:1.02!important;
    letter-spacing:-.035em!important;
  }
  .about-page .about-compact.about-portraits .about-intro-images{
    grid-template-columns:1fr 1fr!important;
  }
  .about-page .values-section .section-title{
    font-size:28px!important;
  }
  .about-page .values-section .value-grid h3{
    font-size:24px!important;
  }
  .about-page .values-section .value-grid p{
    font-size:19px!important;
  }
}
@media(max-width:620px){
  .about-page .about-compact.about-portraits .about-intro-images{
    grid-template-columns:1fr!important;
  }
}

/* v137: Contact hero typography and left-aligned intro block */
body:has(.contact-hero.contact-hero-compact) .contact-hero.contact-hero-compact{
  min-height:auto!important;
  padding:clamp(130px,13vh,190px) var(--pad) clamp(58px,8vh,96px)!important;
  display:block!important;
  grid-template-columns:none!important;
  gap:0!important;
  align-items:start!important;
}
body:has(.contact-hero.contact-hero-compact) .contact-hero.contact-hero-compact > div:first-child{
  max-width:min(760px,100%)!important;
}
body:has(.contact-hero.contact-hero-compact) .contact-hero.contact-hero-compact h1{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:48px!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
  max-width:760px!important;
  margin:18px 0 0!important;
  text-align:left!important;
}
body:has(.contact-hero.contact-hero-compact) .contact-hero.contact-hero-compact .contact-intro{
  width:min(760px,100%)!important;
  max-width:760px!important;
  margin:clamp(18px,2.2vw,28px) 0 0!important;
  padding:0!important;
  justify-self:start!important;
  text-align:left!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:clamp(18px,2.1vw,26px)!important;
}
body:has(.contact-hero.contact-hero-compact) .contact-hero.contact-hero-compact .contact-intro p{
  margin:0!important;
  max-width:760px!important;
  text-align:left!important;
}
body:has(.contact-hero.contact-hero-compact) .contact-hero.contact-hero-compact .contact-main-cta{
  align-self:flex-start!important;
  margin:0!important;
}
@media(max-width:900px){
  body:has(.contact-hero.contact-hero-compact) .contact-hero.contact-hero-compact{
    padding:118px var(--pad) 54px!important;
  }
  body:has(.contact-hero.contact-hero-compact) .contact-hero.contact-hero-compact h1{
    font-size:48px!important;
    line-height:1.02!important;
  }
}
@media(max-width:520px){
  body:has(.contact-hero.contact-hero-compact) .contact-hero.contact-hero-compact h1{
    font-size:clamp(38px,11.2vw,48px)!important;
  }
}

/* v138: About mobile Values title alignment */
@media (max-width: 900px){
  .about-page .values-section .section-head{
    padding-left: clamp(28px, 7vw, 44px) !important;
    padding-right: clamp(16px, 4vw, 24px) !important;
  }
}

/* v139: About Values mobile title alignment fix
   Desktop remains unchanged. Reduce the extra mobile offset added in v138 so
   the Values heading aligns closer to the intended red-line position. */
@media (max-width: 900px){
  .about-page .values-section .section-head{
    padding-left: clamp(12px, 3vw, 18px) !important;
    padding-right: clamp(16px, 4vw, 24px) !important;
  }
}

/* v140: Home and About visual spacing refinements */
.home-services-snapshot-title,
.section.dark-block .section-head .home-services-snapshot-title{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:48px!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
}
.about-page .values-section .section-head .section-title,
.about-page .values-section .section-title{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:48px!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
}
.about-page .about-visual-intro.about-compact{
  padding-top:clamp(118px,10vw,180px)!important;
  padding-bottom:clamp(92px,7.5vw,142px)!important;
  gap:clamp(70px,7vw,136px)!important;
}
.about-page .about-visual-intro.about-compact .about-story-copy h2{
  margin-bottom:clamp(26px,2.2vw,40px)!important;
}
.about-page .about-visual-intro.about-compact .about-story-copy p{
  max-width:720px!important;
}
.about-page .about-compact.about-portraits .about-intro-images{
  padding-top:clamp(10px,1.2vw,24px)!important;
}
.cta-band h2 br{
  display:block!important;
}
@media(max-width:900px){
  .home-services-snapshot-title,
  .section.dark-block .section-head .home-services-snapshot-title,
  .about-page .values-section .section-head .section-title,
  .about-page .values-section .section-title{
    font-size:clamp(38px,11vw,48px)!important;
    line-height:1.04!important;
  }
  .about-page .about-visual-intro.about-compact{
    padding-top:clamp(104px,18vw,132px)!important;
    padding-bottom:clamp(64px,12vw,92px)!important;
    gap:clamp(34px,8vw,58px)!important;
  }
  .about-page .about-compact.about-portraits .about-intro-images{
    padding-top:0!important;
  }
}

/* v141: hard fix Services snapshot size + black mobile menu header */
.home-services-snapshot-title,
.section.dark-block .section-head .home-services-snapshot-title,
section.dark-block .section-head h2.home-services-snapshot-title,
body .home-services-snapshot-title{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:48px!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
}

@media (max-width: 900px){
  body.mobile-menu-is-open .site-header,
  body.mobile-menu-is-open .site-header.nav-scroll-visible,
  body.mobile-menu-is-open .site-header.nav-inverse,
  body.mobile-menu-is-open .site-header.nav-white{
    background:#050505!important;
    color:#f4efe8!important;
    border-bottom-color:rgba(244,239,232,.14)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    mix-blend-mode:normal!important;
  }
  body.mobile-menu-is-open .site-header .brand,
  body.mobile-menu-is-open .site-header .brand b{
    color:#f4efe8!important;
  }
  body.mobile-menu-is-open .site-header .mobile-open,
  body.mobile-menu-is-open .site-header .mobile-open.is-open{
    color:transparent!important;
    border-color:#f4efe8!important;
    background:transparent!important;
  }
  body.mobile-menu-is-open .site-header .mobile-open::before,
  body.mobile-menu-is-open .site-header .mobile-open::after,
  body.mobile-menu-is-open .site-header .mobile-open.is-open::before,
  body.mobile-menu-is-open .site-header .mobile-open.is-open::after{
    color:#f4efe8!important;
  }
  body.mobile-menu-is-open .site-header .mobile-open:hover,
  body.mobile-menu-is-open .site-header .mobile-open.is-open:hover{
    background:#f4efe8!important;
    border-color:#f4efe8!important;
  }
  body.mobile-menu-is-open .site-header .mobile-open:hover::before,
  body.mobile-menu-is-open .site-header .mobile-open:hover::after,
  body.mobile-menu-is-open .site-header .mobile-open.is-open:hover::before,
  body.mobile-menu-is-open .site-header .mobile-open.is-open:hover::after{
    color:#050505!important;
  }
  body.mobile-menu-is-open .mobile-menu{
    background:#050505!important;
    color:#f4efe8!important;
  }
  body.mobile-menu-is-open .mobile-menu .panel-close{
    display:none!important;
  }
}

/* v142 contact intro body text size fix */
.contact-intro p {
  font-size: 19px !important;
}


/* v143: Contact intro exact 19px hard fix
   This overrides older, more-specific Contact hero rules that used clamp(). */
html body:has(.contact-hero.contact-hero-compact) .contact-hero.contact-hero-compact .contact-intro p.contact-intro-19,
html body .contact-hero.contact-hero-compact .contact-intro p.contact-intro-19,
html body .contact-intro p.contact-intro-19 {
  font-size: 19px !important;
  line-height: 1.22 !important;
  letter-spacing: 0 !important;
  font-weight: 400 !important;
}

/* v144: requested typography only, do not change layout */
.services-hero-editorial .services-header-copy > p{
  font-size:19px!important;
}
body.work-page .page-hero > h1{
  font-size:48px!important;
}
.home-studio-copy > .large-copy{
  font-size:48px!important;
}


/* v145: hard exact Portfolio title size, only this element */
html body.work-page section.page-hero > h1.portfolio-title-48,
html body.work-page .page-hero h1.portfolio-title-48,
html body.work-page .page-hero > h1[style] {
  font-size: 48px !important;
}


/* v146: home hero navbar only, no white backing inside hero */
body:has(.hero) .site-header{
  transition:transform .18s cubic-bezier(.2,.7,.2,1), opacity .14s ease, background-color .32s cubic-bezier(.22,.61,.36,1), border-color .32s cubic-bezier(.22,.61,.36,1), backdrop-filter .32s cubic-bezier(.22,.61,.36,1)!important;
}
body:has(.hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating){
  background:transparent!important;
  border-bottom-color:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:none!important;
}
body:has(.hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .brand,
body:has(.hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .brand b{
  color:#fff!important;
  font-weight:700!important;
  font-size:clamp(17px,1.45vw,22px)!important;
}
body:has(.hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .nav-right > a:not(.quote-mini):not(.nav-quote),
body:has(.hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .mobile-open{
  color:#fff!important;
  border-color:#fff!important;
}
body:has(.hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .quote-mini,
body:has(.hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .quote-mini.nav-quote{
  color:#fff!important;
  border-color:#fff!important;
  background:transparent!important;
}
body:has(.hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .quote-mini:hover,
body:has(.hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .quote-mini.nav-quote:hover{
  background:#fff!important;
  color:#080806!important;
  border-color:#fff!important;
}
@media(max-width:900px){
  body.mobile-menu-is-open .site-header.nav-over-hero{
    background:#050505!important;
    border-bottom-color:rgba(244,239,232,.14)!important;
  }
}

/* v146 final guard: transparent navbar while any page hero is under the fixed header */
body:not(.mobile-menu-is-open) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating){
  background:transparent!important;
  border-bottom-color:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:none!important;
}
body:not(.mobile-menu-is-open) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .brand,
body:not(.mobile-menu-is-open) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .brand b{
  font-weight:700!important;
  font-size:clamp(17px,1.45vw,22px)!important;
}

/* v146 case/image hero text color guard */
body:has(.case-hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .brand,
body:has(.case-hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .brand b,
body:has(.case-hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .nav-right > a:not(.quote-mini):not(.nav-quote),
body:has(.case-hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .mobile-open{
  color:#fff!important;
  border-color:#fff!important;
}
body:has(.case-hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .quote-mini,
body:has(.case-hero) .site-header.nav-over-hero:not(.nav-scroll-hidden):not(.nav-is-navigating) .quote-mini.nav-quote{
  color:#fff!important;
  border-color:#fff!important;
  background:transparent!important;
}

/* v147: keep navbar visible while hero is under the header, and make hero logo bolder only there */
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero.nav-scroll-hidden,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero.nav-scroll-visible{
  transform:translate3d(0,0,0)!important;
  opacity:1!important;
  visibility:visible!important;
  background:transparent!important;
  border-bottom-color:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  pointer-events:none!important;
}

body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero a,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero button,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .brand,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .nav-right,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .mobile-open{
  pointer-events:auto!important;
}

body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .brand,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .brand b{
  font-weight:800!important;
  font-synthesis:weight!important;
  -webkit-text-stroke:.22px currentColor!important;
  text-shadow:.18px 0 0 currentColor!important;
  font-size:clamp(17px,1.45vw,22px)!important;
}

/* v148: keep home hero navbar fully white while scrolling inside hero */
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero.nav-scroll-hidden,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero.nav-scroll-visible,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero.nav-white,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero.nav-inverse{
  transform:translate3d(0,0,0)!important;
  opacity:1!important;
  visibility:visible!important;
  background:transparent!important;
  color:#fff!important;
  border-bottom-color:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  mix-blend-mode:normal!important;
  pointer-events:none!important;
}

body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .brand,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .brand b,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .nav-right > a,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .mobile-open,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .nav-quote,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .quote-mini,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .quote-mini.nav-quote{
  color:#fff!important;
  border-color:#fff!important;
  background:transparent!important;
  mix-blend-mode:normal!important;
  opacity:1!important;
  text-shadow:none!important;
  pointer-events:auto!important;
}

body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .brand,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .brand b{
  font-weight:900!important;
  font-synthesis:weight!important;
  -webkit-text-stroke:.32px currentColor!important;
  text-shadow:.24px 0 0 currentColor!important;
}

body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .nav-quote:hover,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .quote-mini:hover,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .quote-mini.nav-quote:hover,
body:not(.mobile-menu-is-open):not(.lightbox-lock) .site-header.nav-over-hero .mobile-open:hover{
  background:#fff!important;
  color:#080806!important;
  border-color:#fff!important;
}

/* v149: navbar logo must stay bold everywhere, inside and outside hero */
html body .site-header .brand,
html body .site-header .brand b,
html body .site-header.nav-over-hero .brand,
html body .site-header.nav-over-hero .brand b,
html body .site-header.nav-scroll-visible .brand,
html body .site-header.nav-scroll-visible .brand b,
html body .site-header.nav-scroll-hidden .brand,
html body .site-header.nav-scroll-hidden .brand b,
html body .site-header.nav-white .brand,
html body .site-header.nav-white .brand b,
html body .site-header.nav-inverse .brand,
html body .site-header.nav-inverse .brand b{
  font-weight:900!important;
  font-synthesis:weight!important;
  -webkit-text-stroke:.32px currentColor!important;
  text-shadow:.24px 0 0 currentColor!important;
}

/* v150: match navbar logo thickness outside hero to the hero logo */
html body .site-header .brand,
html body .site-header .brand b{
  font-family:Grotesk,Arial,sans-serif!important;
  font-weight:900!important;
  font-synthesis:weight!important;
  font-size:clamp(17px,1.45vw,22px)!important;
  line-height:1!important;
  letter-spacing:.095em!important;
  -webkit-text-stroke:.32px currentColor!important;
  text-shadow:.24px 0 0 currentColor!important;
}

html body .site-header:not(.nav-over-hero) .brand,
html body .site-header:not(.nav-over-hero) .brand b,
html body .site-header.nav-scroll-visible:not(.nav-over-hero) .brand,
html body .site-header.nav-scroll-visible:not(.nav-over-hero) .brand b,
html body .site-header.nav-white:not(.nav-over-hero) .brand,
html body .site-header.nav-white:not(.nav-over-hero) .brand b{
  font-weight:900!important;
  font-synthesis:weight!important;
  -webkit-text-stroke:.44px currentColor!important;
  text-shadow:.34px 0 0 currentColor!important;
}

/* v152 strict fix: keep home CTA heading on one line on desktop */
@media (min-width:901px){
  .cta-band h2{
    white-space:nowrap!important;
    max-width:none!important;
    width:max-content!important;
  }
}

/* v153: footer columns desktop alignment with CTA button edge */
@media (min-width: 901px){
  .footer.footer-final.footer-v77 .footer-columns-v77{
    justify-self:end!important;
    width:min(58vw, 980px)!important;
    max-width:calc(100vw - (var(--pad) * 2) - 520px)!important;
    margin-left:auto!important;
    margin-right:0!important;
  }
}
@media (min-width: 1400px){
  .footer.footer-final.footer-v77 .footer-columns-v77{
    width:min(58vw, 980px)!important;
    max-width:none!important;
  }
}

/* v154: desktop footer columns visual alignment to CTA button right edge */
@media (min-width: 901px){
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77{
    justify-self:end!important;
    margin-left:auto!important;
    margin-right:0!important;
    width:min(58vw, 980px)!important;
    max-width:none!important;
    display:grid!important;
    grid-template-columns:repeat(4, max-content)!important;
    justify-content:space-between!important;
    gap:clamp(42px, 5vw, 88px)!important;
  }
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77 > div{
    width:max-content!important;
    min-width:0!important;
    justify-self:auto!important;
  }
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77 > div:last-child{
    justify-self:end!important;
  }
}

/* v155: footer columns precise desktop alignment to Book a Call right edge */
@media (min-width: 901px){
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77{
    margin-right:clamp(34px, 2.45vw, 48px)!important;
  }
}

/* v156: footer columns responsive horizontal alignment
   1920 desktop: a little left. Wide screens: a little right. */
@media (min-width: 901px) and (max-width: 2199px){
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77{
    margin-right:clamp(58px, 3.75vw, 72px)!important;
  }
}
@media (min-width: 2200px){
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77{
    margin-right:clamp(12px, 1vw, 28px)!important;
  }
}

/* v157: footer columns align exactly to the Book a Call right edge on desktop and wide screens */
@media (min-width: 901px){
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77{
    margin-right:0!important;
  }
}

/* v162: center Legal footer column under Book a Call zone on non-mobile screens
   Safe override only for footer columns, no HTML/layout structure changes. */
@media (min-width: 901px){
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77{
    margin-right:0!important;
    overflow:visible!important;
  }
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77 > div:last-child{
    position:relative!important;
    left:calc(-1 * clamp(56px, 3.25vw, 72px))!important;
    justify-self:end!important;
    text-align:left!important;
    width:max-content!important;
  }
}

@media (min-width: 2200px){
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77 > div:last-child{
    left:calc(-1 * clamp(64px, 2.7vw, 86px))!important;
  }
}

@media (max-width: 900px){
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77 > div:last-child{
    position:static!important;
    left:auto!important;
    text-align:left!important;
  }
}

/* v167: keep Legal column position, align its text like the other footer columns */
@media (min-width: 1400px){
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77{
    position:relative!important;
    left:0!important;
    margin-right:0!important;
    width:min(48vw, 700px)!important;
    overflow:visible!important;
  }
  .footer.footer-final.footer-v77 .footer-grid.footer-columns-final.footer-columns-v77 > div:last-child{
    position:static!important;
    left:auto!important;
    justify-self:auto!important;
    text-align:left!important;
    width:max-content!important;
  }
}

/* v168: inner pages navbar fix
   Home keeps existing hero animation/transparent behavior.
   Every other page uses a solid light navbar when visible and hides only on scroll down. */
@media (min-width: 901px){
  body.tp-inner-nav-page .site-header,
  body.tp-inner-nav-page .site-header.nav-scroll-visible,
  body.tp-inner-nav-page .site-header.nav-is-navigating,
  body:not(:has(section.hero)) .site-header,
  body:not(:has(section.hero)) .site-header.nav-scroll-visible,
  body:not(:has(section.hero)) .site-header.nav-is-navigating{
    background:#f4efe8!important;
    border-bottom:1px solid rgba(8,8,6,.08)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    color:#080806!important;
    mix-blend-mode:normal!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:none!important;
  }

  body.tp-inner-nav-page .site-header.nav-scroll-hidden:not(.nav-is-navigating),
  body:not(:has(section.hero)) .site-header.nav-scroll-hidden:not(.nav-is-navigating){
    transform:translate3d(0,-104%,0)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  body.tp-inner-nav-page .site-header:not(.nav-scroll-hidden) .brand,
  body.tp-inner-nav-page .site-header:not(.nav-scroll-hidden) .brand b,
  body.tp-inner-nav-page .site-header:not(.nav-scroll-hidden) .nav-right > a:not(.quote-mini):not(.nav-quote),
  body.tp-inner-nav-page .site-header:not(.nav-scroll-hidden) .mobile-open,
  body:not(:has(section.hero)) .site-header:not(.nav-scroll-hidden) .brand,
  body:not(:has(section.hero)) .site-header:not(.nav-scroll-hidden) .brand b,
  body:not(:has(section.hero)) .site-header:not(.nav-scroll-hidden) .nav-right > a:not(.quote-mini):not(.nav-quote),
  body:not(:has(section.hero)) .site-header:not(.nav-scroll-hidden) .mobile-open{
    color:#080806!important;
    border-color:#080806!important;
    background:transparent!important;
    mix-blend-mode:normal!important;
    opacity:1!important;
    text-shadow:none!important;
    filter:none!important;
  }

  body.tp-inner-nav-page .site-header:not(.nav-scroll-hidden) .quote-mini,
  body.tp-inner-nav-page .site-header:not(.nav-scroll-hidden) .quote-mini.nav-quote,
  body:not(:has(section.hero)) .site-header:not(.nav-scroll-hidden) .quote-mini,
  body:not(:has(section.hero)) .site-header:not(.nav-scroll-hidden) .quote-mini.nav-quote{
    background:transparent!important;
    color:#080806!important;
    border-color:#080806!important;
    mix-blend-mode:normal!important;
    opacity:1!important;
  }

  body.tp-inner-nav-page .site-header:not(.nav-scroll-hidden) .quote-mini:hover,
  body.tp-inner-nav-page .site-header:not(.nav-scroll-hidden) .quote-mini.nav-quote:hover,
  body:not(:has(section.hero)) .site-header:not(.nav-scroll-hidden) .quote-mini:hover,
  body:not(:has(section.hero)) .site-header:not(.nav-scroll-hidden) .quote-mini.nav-quote:hover{
    background:#080806!important;
    color:#f4efe8!important;
    border-color:#080806!important;
    transform:none!important;
  }

  body.tp-inner-nav-page .site-header a,
  body.tp-inner-nav-page .site-header button,
  body:not(:has(section.hero)) .site-header a,
  body:not(:has(section.hero)) .site-header button{
    pointer-events:auto!important;
  }
}


/* v169 services safe fixes: dark button outline, service row bottom alignment, remove wrapping CTA copy */
.dark-block .cta,
.dark-block a.cta{
  background:transparent!important;
  color:var(--paper)!important;
  border-color:rgba(244,239,232,.88)!important;
  box-shadow:none!important;
}
.dark-block .cta:hover,
.dark-block a.cta:hover{
  background:var(--paper)!important;
  color:var(--ink)!important;
  border-color:var(--paper)!important;
}
@media (min-width:901px){
  .services-cms-list .service-body{
    justify-content:flex-end!important;
    padding-top:clamp(18px,3vw,42px)!important;
    padding-bottom:0!important;
  }
  .services-cms-list .service-cta{
    justify-content:flex-end!important;
    padding-top:clamp(18px,3vw,42px)!important;
    padding-bottom:0!important;
  }
  .services-fast-quote-clean .services-fast-quote-inner{
    align-items:center!important;
  }
  .services-fast-quote-clean .large-copy{
    white-space:nowrap!important;
    max-width:none!important;
    flex:1 1 auto!important;
    font-size:clamp(34px,3.25vw,62px)!important;
  }
  .services-fast-quote-clean .services-fast-quote-action{
    flex:0 0 auto!important;
  }
}

/* v170: homepage CTA outline + case CTA line and navigation alignment */
@media (min-width:901px){
  /* Homepage bottom BOOK A CALL should be outline, not filled */
  .hero ~ .cta-band .cta[href="contact.html"]{
    background:transparent!important;
    color:var(--ink)!important;
    border-color:var(--ink)!important;
  }
  .hero ~ .cta-band .cta[href="contact.html"]:hover{
    background:var(--ink)!important;
    color:var(--paper)!important;
    border-color:var(--ink)!important;
  }

  /* Keep the case CTA sentence on one line on desktop */
  body:has(.case-hero) .related-clean-section .related-clean-inner{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:clamp(28px,4vw,82px)!important;
  }
  body:has(.case-hero) .related-clean-section .large-copy{
    white-space:nowrap!important;
    max-width:none!important;
    flex:1 1 auto!important;
    min-width:0!important;
    font-size:clamp(30px,3.15vw,56px)!important;
  }
  body:has(.case-hero) .related-clean-section .cta{
    flex:0 0 auto!important;
  }

  /* Center the Next Project label inside the right navigation half on every case page */
  body:has(.case-hero) .next-prev{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  }
  body:has(.case-hero) .next-prev a{
    display:flex!important;
    align-items:center!important;
  }
  body:has(.case-hero) .next-prev a:first-child{
    justify-content:flex-start!important;
    text-align:left!important;
  }
  body:has(.case-hero) .next-prev a:last-child{
    justify-content:center!important;
    text-align:center!important;
    border-left:1px solid var(--line)!important;
  }
}

/* v171: CTA band outline buttons + case next-project right redline alignment */
@media (min-width:901px){
  /* Make Start a project buttons in CTA bands outline, including "Start with drawings" */
  .cta-band .cta[href="contact.html"]{
    background:transparent!important;
    color:var(--ink)!important;
    border-color:var(--ink)!important;
    box-shadow:none!important;
  }
  .cta-band .cta[href="contact.html"]:hover{
    background:var(--ink)!important;
    color:var(--paper)!important;
    border-color:var(--ink)!important;
  }

  /* Align Next Project to the same right-side content line instead of centering it */
  body:has(.case-hero) .next-prev a:last-child{
    justify-content:flex-end!important;
    text-align:right!important;
    border-left:1px solid var(--line)!important;
    white-space:nowrap!important;
  }
}

/* v172: exact wide-screen case navigation alignment
   Fixes previous max-width inheritance on .next-prev links, which prevented
   Next Project from reaching the real right edge on wide screens. */
@media (min-width:901px){
  .next-prev{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    width:100%!important;
  }
  .next-prev a{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
  }
  .next-prev a:first-child{
    justify-content:flex-start!important;
    text-align:left!important;
  }
  .next-prev a:last-child{
    justify-content:flex-end!important;
    text-align:right!important;
    border-left:1px solid var(--line)!important;
    white-space:nowrap!important;
  }
}


/* v173: contact page card layout cleanup, safe desktop-only */
@media (min-width:901px){
  body:has(.contact-hero.contact-hero-compact) .contact-highlights.contact-highlighted{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    padding-top:clamp(28px,3vw,58px)!important;
    padding-bottom:clamp(90px,9vw,160px)!important;
  }
  body:has(.contact-hero.contact-hero-compact) .contact-highlights.contact-highlighted .contact-card{
    min-height:clamp(370px,24vw,500px)!important;
  }
}
@media (min-width:1921px){
  body:has(.contact-hero.contact-hero-compact) .contact-highlights.contact-highlighted .contact-card{
    min-height:clamp(420px,20vw,560px)!important;
  }
  body:has(.contact-hero.contact-hero-compact) .contact-highlights.contact-highlighted{
    padding-bottom:clamp(110px,8vw,190px)!important;
  }
}

/* v174: mobile hero menu color + prevent MENU/CLOSE text overlap
   Safe mobile-only fix. Keeps existing navbar animation and desktop behavior intact. */
@media (max-width: 900px){
  .site-header .mobile-open,
  .site-header .mobile-open.is-open,
  body:has(.hero) .site-header.nav-over-hero .mobile-open,
  body.mobile-menu-is-open .site-header .mobile-open,
  body.mobile-menu-is-open .site-header .mobile-open.is-open{
    color:transparent!important;
    text-shadow:none!important;
    -webkit-text-fill-color:transparent!important;
    overflow:hidden!important;
  }

  body:has(.hero):not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open{
    border-color:#fff!important;
    background:transparent!important;
  }

  body:has(.hero):not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open::before,
  body:has(.hero):not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open::after{
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
  }

  body.mobile-menu-is-open .site-header,
  body.mobile-menu-is-open .site-header.nav-over-hero,
  body.mobile-menu-is-open .site-header.nav-scroll-visible,
  body.mobile-menu-is-open .site-header.nav-inverse,
  body.mobile-menu-is-open .site-header.nav-white{
    background:#050505!important;
    border-bottom-color:rgba(244,239,232,.14)!important;
    color:#f4efe8!important;
    transform:translate3d(0,0,0)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:none!important;
  }

  body.mobile-menu-is-open .site-header .brand,
  body.mobile-menu-is-open .site-header .brand b{
    color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
  }

  body.mobile-menu-is-open .site-header .mobile-open,
  body.mobile-menu-is-open .site-header .mobile-open.is-open{
    border-color:#f4efe8!important;
    background:transparent!important;
    pointer-events:auto!important;
  }

  body.mobile-menu-is-open .site-header .mobile-open::before,
  body.mobile-menu-is-open .site-header .mobile-open::after,
  body.mobile-menu-is-open .site-header .mobile-open.is-open::before,
  body.mobile-menu-is-open .site-header .mobile-open.is-open::after{
    color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
    text-shadow:none!important;
  }

  body.mobile-menu-is-open .mobile-menu{
    padding-top:calc(var(--pad) + 72px)!important;
  }
  body.mobile-menu-is-open .mobile-menu nav{
    margin-top:clamp(46px, 10vh, 92px)!important;
  }
}

/* v175: mobile-only home hero/menu/services snapshot alignment fixes
   Safe scope: max-width 900px and homepage sections only. */
@media (max-width: 900px){
  /* Raise the first hero title so it is not cut off by mobile browser UI. */
  body:has(section.hero) .hero .hero-content.hero-clean,
  body:has(section.hero) .hero .hero-content{
    padding-bottom:clamp(86px,18vh,132px)!important;
    min-height:100svh!important;
  }

  /* Keep the home mobile MENU button readable on hero and dark home sections. */
  body:has(section.hero):not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open,
  body:has(section.hero):not(.mobile-menu-is-open) .site-header .mobile-open{
    border-color:#f4efe8!important;
    background:transparent!important;
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
    box-shadow:none!important;
  }
  body:has(section.hero):not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open::before,
  body:has(section.hero):not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open::after,
  body:has(section.hero):not(.mobile-menu-is-open) .site-header .mobile-open::before,
  body:has(section.hero):not(.mobile-menu-is-open) .site-header .mobile-open::after{
    color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
    text-shadow:none!important;
  }

  /* Services snapshot: align with the page left edge and place CTA below title. */
  body:has(section.hero) .section.dark-block:has(.services-list){
    padding-left:var(--pad)!important;
    padding-right:var(--pad)!important;
  }
  body:has(section.hero) .section.dark-block:has(.services-list) > .section-head{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:18px!important;
    width:100%!important;
    padding-left:0!important;
    padding-right:0!important;
    margin-left:0!important;
    margin-right:0!important;
    margin-bottom:clamp(28px,7vw,40px)!important;
  }
  body:has(section.hero) .section.dark-block:has(.services-list) > .section-head .home-services-snapshot-title{
    margin:0!important;
    max-width:100%!important;
  }
  body:has(section.hero) .section.dark-block:has(.services-list) > .section-head .cta{
    align-self:flex-start!important;
    margin:0!important;
    max-width:calc(100vw - (var(--pad) * 2))!important;
    width:auto!important;
    white-space:nowrap!important;
  }
}

/* v176: mobile-only homepage navbar color + Services snapshot alignment cleanup
   Scope: max-width 900px, homepage only. Desktop/tablet and inner pages untouched. */
@media (max-width: 900px){
  /* On the home hero the MENU pill stays white. */
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open{
    border-color:#f4efe8!important;
    background:transparent!important;
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
    box-shadow:none!important;
  }
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open::after{
    color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
  }

  /* Outside the hero on the home page the MENU pill becomes black again. */
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open{
    border-color:#080806!important;
    background:transparent!important;
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
    box-shadow:none!important;
  }
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open::after{
    color:#080806!important;
    -webkit-text-fill-color:#080806!important;
  }

  /* Keep all content inside Services snapshot on the same left page line. */
  body.tp-home-nav-page .section.dark-block:has(.services-list){
    padding-left:var(--pad)!important;
    padding-right:var(--pad)!important;
  }
  body.tp-home-nav-page .section.dark-block:has(.services-list) .services-list{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    border-top:1px solid rgba(244,239,232,.18)!important;
  }
  body.tp-home-nav-page .section.dark-block:has(.services-list) .service-card{
    padding-left:0!important;
    padding-right:0!important;
    margin-left:0!important;
    margin-right:0!important;
    border-right:0!important;
    border-bottom:1px solid rgba(244,239,232,.18)!important;
  }
  body.tp-home-nav-page .section.dark-block:has(.services-list) .service-card h3,
  body.tp-home-nav-page .section.dark-block:has(.services-list) .service-card p,
  body.tp-home-nav-page .section.dark-block:has(.services-list) .service-card .service-meta{
    margin-left:0!important;
    padding-left:0!important;
  }
}

/* v177: mobile-only menu cleanup
   Removes duplicate close control and makes hero MENU hover invert cleanly. */
@media (max-width: 900px){
  /* Hide the separate overlay close button completely, header pill handles MENU/CLOSE. */
  .mobile-menu .panel-close,
  .mobile-menu.open .panel-close,
  body.mobile-menu-is-open .mobile-menu .panel-close{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  /* While closing, never leave a stray CLOSE label visible outside the header button. */
  body:not(.mobile-menu-is-open) .mobile-menu:not(.open) .panel-close{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
  }

  /* Home hero MENU default: white outline and white text. */
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open{
    border-color:#f4efe8!important;
    background:transparent!important;
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
  }
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open::after{
    color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
  }

  /* Home hero MENU hover/focus: invert to black text and black outline without breaking animation. */
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:hover,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:focus-visible{
    border-color:#080806!important;
    background:#f4efe8!important;
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
  }
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:hover::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:hover::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:focus-visible::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:focus-visible::after{
    color:#080806!important;
    -webkit-text-fill-color:#080806!important;
  }

  /* When menu is open, keep only the header CLOSE pill visible and stable. */
  body.mobile-menu-is-open .site-header .mobile-open,
  body.mobile-menu-is-open .site-header .mobile-open.is-open{
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
}

/* v178: requested mobile/home safe fixes
   Scope: mobile nav states, homepage mobile hero/sections, and global footer phone removal handled in HTML. */
@media (max-width: 900px){
  /* The mobile menu pill must never get a filled background, including hover, tap, open, and closing animation states. */
  .site-header .mobile-open,
  .site-header .mobile-open:hover,
  .site-header .mobile-open:focus,
  .site-header .mobile-open:focus-visible,
  .site-header .mobile-open:active,
  .site-header .mobile-open.is-open,
  .site-header .mobile-open.is-open:hover,
  .site-header .mobile-open.is-open:focus,
  .site-header .mobile-open.is-open:focus-visible,
  .site-header .mobile-open.is-open:active,
  body.mobile-menu-is-open .site-header .mobile-open,
  body.mobile-menu-is-open .site-header .mobile-open:hover,
  body.mobile-menu-is-open .site-header .mobile-open:focus,
  body.mobile-menu-is-open .site-header .mobile-open:focus-visible,
  body.mobile-menu-is-open .site-header .mobile-open:active,
  body.mobile-menu-is-open .site-header .mobile-open.is-open,
  body.mobile-menu-is-open .site-header .mobile-open.is-open:hover,
  body.mobile-menu-is-open .site-header .mobile-open.is-open:focus,
  body.mobile-menu-is-open .site-header .mobile-open.is-open:focus-visible,
  body.mobile-menu-is-open .site-header .mobile-open.is-open:active{
    background:transparent!important;
    box-shadow:none!important;
  }

  /* Homepage hero: outline stays white normally, but pressed/hovered state turns outline/text black without fill. */
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open{
    border-color:#f4efe8!important;
    background:transparent!important;
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
  }
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open::after{
    color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
  }
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:hover,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:focus-visible,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:active{
    border-color:#080806!important;
    background:transparent!important;
  }
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:hover::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:hover::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:focus-visible::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:focus-visible::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:active::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero .mobile-open:active::after{
    color:#080806!important;
    -webkit-text-fill-color:#080806!important;
  }

  /* Homepage outside hero and all inner pages on the light navbar: black outline, black text, transparent fill. */
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open,
  body:not(.tp-home-nav-page):not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open{
    border-color:#080806!important;
    background:transparent!important;
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
  }
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open::after,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open::before,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open::after,
  body:not(.tp-home-nav-page):not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open::before,
  body:not(.tp-home-nav-page):not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open::after{
    color:#080806!important;
    -webkit-text-fill-color:#080806!important;
  }

  /* Open menu overlay: transparent outline button, no white fill during open/close animation. */
  body.mobile-menu-is-open .site-header .mobile-open,
  body.mobile-menu-is-open .site-header .mobile-open.is-open{
    border-color:#f4efe8!important;
    background:transparent!important;
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
  }
  body.mobile-menu-is-open .site-header .mobile-open::before,
  body.mobile-menu-is-open .site-header .mobile-open::after,
  body.mobile-menu-is-open .site-header .mobile-open.is-open::before,
  body.mobile-menu-is-open .site-header .mobile-open.is-open::after{
    color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
  }

  /* Hero title was raised too much. Lower it slightly while keeping it visible on mobile. */
  body.tp-home-nav-page .hero .hero-content.hero-clean,
  body.tp-home-nav-page .hero .hero-content{
    padding-bottom:clamp(50px,11vh,88px)!important;
    min-height:100svh!important;
  }

  /* Mobile Featured projects should visually match Services snapshot scale. */
  body.tp-home-nav-page .work-strip .section-head .section-title,
  body.tp-home-nav-page .work-strip h2.section-title{
    font-size:clamp(54px,15vw,72px)!important;
    line-height:.96!important;
    letter-spacing:-.045em!important;
  }

  /* Lift Services snapshot section and keep all its inner content on the page left line. */
  body.tp-home-nav-page .section.dark-block:has(.services-list){
    padding-top:clamp(50px,12vw,74px)!important;
    padding-left:var(--pad)!important;
    padding-right:var(--pad)!important;
  }
  body.tp-home-nav-page .section.dark-block:has(.services-list) > .section-head,
  body.tp-home-nav-page .section.dark-block:has(.services-list) .services-list,
  body.tp-home-nav-page .section.dark-block:has(.services-list) .service-card{
    margin-left:0!important;
    padding-left:0!important;
  }
  body.tp-home-nav-page .section.dark-block:has(.services-list) > .section-head{
    margin-bottom:clamp(24px,6vw,34px)!important;
  }
}


/* v179: exact Featured projects typography and CTA placement, all formats */
body.tp-home-nav-page .work-strip > .section-head,
body:has(.hero) .work-strip > .section-head{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:16px!important;
  margin-bottom:22px!important;
}
body.tp-home-nav-page .work-strip > .section-head > h2.section-title,
body.tp-home-nav-page .work-strip .section-head .section-title,
body.tp-home-nav-page .work-strip h2.section-title,
body:has(.hero) .work-strip > .section-head > h2.section-title,
body:has(.hero) .work-strip .section-head .section-title,
body:has(.hero) .work-strip h2.section-title{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:48px!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  font-weight:400!important;
  max-width:none!important;
  margin:0!important;
}
body.tp-home-nav-page .work-strip > .section-head > .cta,
body:has(.hero) .work-strip > .section-head > .cta{
  align-self:flex-start!important;
  margin-top:0!important;
}

/* v180: desktop Featured projects CTA restore + mobile hero title lower
   Keep v179 mobile CTA-under-title behavior, but restore desktop layout. */
@media (min-width: 769px){
  body.tp-home-nav-page .work-strip > .section-head,
  body:has(.hero) .work-strip > .section-head{
    display:flex!important;
    flex-direction:row!important;
    align-items:flex-end!important;
    justify-content:space-between!important;
    gap:24px!important;
    margin-bottom:22px!important;
  }
  body.tp-home-nav-page .work-strip > .section-head > .cta,
  body:has(.hero) .work-strip > .section-head > .cta{
    align-self:flex-end!important;
    margin-top:0!important;
  }
}

@media (max-width: 768px){
  /* Lower the home hero headline closer to the bottom red-line area, without clipping it. */
  body.tp-home-nav-page .hero .hero-content.hero-clean,
  body.tp-home-nav-page .hero .hero-content{
    padding-bottom:max(28px, calc(env(safe-area-inset-bottom) + 22px))!important;
    min-height:100svh!important;
  }

  /* Mobile keeps the requested vertical layout: title first, button below. */
  body.tp-home-nav-page .work-strip > .section-head,
  body:has(.hero) .work-strip > .section-head{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:16px!important;
  }
}

/* v181: mobile hero title lower + strict MENU color rules
   Mobile only. No fill states. Hero/dark background = white outline/text. Light navbar = black outline/text. */
@media (max-width: 900px){
  /* Lower the homepage hero headline further on phones. */
  body.tp-home-nav-page .hero .hero-content.hero-clean,
  body.tp-home-nav-page .hero .hero-content{
    padding-bottom:max(8px, calc(env(safe-area-inset-bottom) + 4px))!important;
    min-height:100svh!important;
  }
  body.tp-home-nav-page .hero .hero-title{
    transform:translateY(18px)!important;
  }

  /* The mobile MENU/CLOSE pill is always outline only, never filled during hover/tap/open/close. */
  .site-header .mobile-open,
  .site-header .mobile-open:hover,
  .site-header .mobile-open:focus,
  .site-header .mobile-open:focus-visible,
  .site-header .mobile-open:active,
  .site-header .mobile-open.is-open,
  .site-header .mobile-open.is-open:hover,
  .site-header .mobile-open.is-open:focus,
  .site-header .mobile-open.is-open:focus-visible,
  .site-header .mobile-open.is-open:active,
  body.mobile-menu-is-open .site-header .mobile-open,
  body.mobile-menu-is-open .site-header .mobile-open:hover,
  body.mobile-menu-is-open .site-header .mobile-open:focus,
  body.mobile-menu-is-open .site-header .mobile-open:focus-visible,
  body.mobile-menu-is-open .site-header .mobile-open:active,
  body.mobile-menu-is-open .site-header .mobile-open.is-open,
  body.mobile-menu-is-open .site-header .mobile-open.is-open:hover,
  body.mobile-menu-is-open .site-header .mobile-open.is-open:focus,
  body.mobile-menu-is-open .site-header .mobile-open.is-open:focus-visible,
  body.mobile-menu-is-open .site-header .mobile-open.is-open:active{
    background:transparent!important;
    box-shadow:none!important;
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
  }

  /* HERO and opened black menu overlay: button must stay white. */
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:hover,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:focus,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:focus-visible,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:active,
  body.mobile-menu-is-open .site-header .mobile-open,
  body.mobile-menu-is-open .site-header .mobile-open:hover,
  body.mobile-menu-is-open .site-header .mobile-open:focus,
  body.mobile-menu-is-open .site-header .mobile-open:focus-visible,
  body.mobile-menu-is-open .site-header .mobile-open:active,
  body.mobile-menu-is-open .site-header .mobile-open.is-open{
    border-color:#f4efe8!important;
  }
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open::before,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open::after,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:hover::before,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:hover::after,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:focus-visible::before,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:focus-visible::after,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:active::before,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:active::after,
  body.mobile-menu-is-open .site-header .mobile-open::before,
  body.mobile-menu-is-open .site-header .mobile-open::after,
  body.mobile-menu-is-open .site-header .mobile-open.is-open::before,
  body.mobile-menu-is-open .site-header .mobile-open.is-open::after{
    color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
  }

  /* LIGHT navbar state, on home after hero and on inner pages: button must stay black. */
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open:hover,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open:focus,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open:focus-visible,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open:active,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open:hover,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open:focus,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open:focus-visible,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open:active{
    border-color:#080806!important;
  }
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open:hover::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open:hover::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open:focus-visible::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open:focus-visible::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open:active::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.nav-over-hero) .mobile-open:active::after,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open::before,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open::after,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open:hover::before,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open:hover::after,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open:focus-visible::before,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open:focus-visible::after,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open:active::before,
  body.tp-inner-nav-page:not(.mobile-menu-is-open) .site-header .mobile-open:active::after{
    color:#080806!important;
    -webkit-text-fill-color:#080806!important;
  }
}

/* v182 HARD MOBILE NAV + HERO FIX
   Final mobile-only override. This is intentionally placed at the very end
   to beat older v174-v181 menu rules and prevent browser/selector conflicts. */
@media (max-width: 900px){
  /* HOME HERO TITLE, fixed lower position, not clipped */
  body.tp-home-nav-page section.hero,
  body:has(section.hero) section.hero{
    min-height:100svh!important;
    height:100svh!important;
    overflow:hidden!important;
  }
  body.tp-home-nav-page section.hero .hero-content,
  body.tp-home-nav-page section.hero .hero-content.hero-clean,
  body:has(section.hero) section.hero .hero-content,
  body:has(section.hero) section.hero .hero-content.hero-clean{
    display:block!important;
    min-height:100svh!important;
    height:100svh!important;
    padding:0 var(--pad)!important;
  }
  body.tp-home-nav-page section.hero .hero-title,
  body:has(section.hero) section.hero .hero-title{
    position:absolute!important;
    left:var(--pad)!important;
    right:var(--pad)!important;
    bottom:max(62px, calc(env(safe-area-inset-bottom) + 56px))!important;
    margin:0!important;
    transform:none!important;
    max-width:10.8ch!important;
    line-height:.92!important;
    z-index:3!important;
  }

  /* One source of truth for the mobile menu pill. It is ALWAYS outline only. */
  .site-header .mobile-open,
  .site-header .mobile-open:hover,
  .site-header .mobile-open:focus,
  .site-header .mobile-open:focus-visible,
  .site-header .mobile-open:active,
  .site-header .mobile-open.is-open,
  .site-header .mobile-open.is-open:hover,
  .site-header .mobile-open.is-open:focus,
  .site-header .mobile-open.is-open:focus-visible,
  .site-header .mobile-open.is-open:active,
  body.mobile-menu-is-open .site-header .mobile-open,
  body.mobile-menu-is-open .site-header .mobile-open:hover,
  body.mobile-menu-is-open .site-header .mobile-open:focus,
  body.mobile-menu-is-open .site-header .mobile-open:focus-visible,
  body.mobile-menu-is-open .site-header .mobile-open:active{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:96px!important;
    min-height:44px!important;
    padding:0 20px!important;
    border:1px solid currentColor!important;
    border-radius:999px!important;
    background:transparent!important;
    box-shadow:none!important;
    outline:none!important;
    font-size:0!important; /* hides raw button text so only ::before/::after animate */
    line-height:1!important;
    -webkit-tap-highlight-color:transparent!important;
  }

  .site-header .mobile-open::before,
  .site-header .mobile-open::after{
    position:absolute!important;
    inset:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-family:Grotesk,Arial,sans-serif!important;
    font-size:12px!important;
    font-weight:400!important;
    line-height:1!important;
    letter-spacing:.045em!important;
    text-transform:uppercase!important;
    background:transparent!important;
    pointer-events:none!important;
    transition:opacity .28s cubic-bezier(.22,.61,.36,1), transform .42s cubic-bezier(.22,.61,.36,1)!important;
  }
  .site-header .mobile-open::before{content:"MENU"!important;opacity:1!important;transform:translate3d(0,0,0)!important;}
  .site-header .mobile-open::after{content:"CLOSE"!important;opacity:0!important;transform:translate3d(0,115%,0)!important;}
  .site-header .mobile-open.is-open::before{opacity:0!important;transform:translate3d(0,-115%,0)!important;}
  .site-header .mobile-open.is-open::after{opacity:1!important;transform:translate3d(0,0,0)!important;}

  /* Default mobile header on light/paper backgrounds = black outline + black word. */
  .site-header .mobile-open,
  .site-header .mobile-open:hover,
  .site-header .mobile-open:focus,
  .site-header .mobile-open:focus-visible,
  .site-header .mobile-open:active{
    color:#080806!important;
    border-color:#080806!important;
    -webkit-text-fill-color:#080806!important;
  }
  .site-header .mobile-open::before,
  .site-header .mobile-open::after,
  .site-header .mobile-open:hover::before,
  .site-header .mobile-open:hover::after,
  .site-header .mobile-open:focus::before,
  .site-header .mobile-open:focus::after,
  .site-header .mobile-open:active::before,
  .site-header .mobile-open:active::after{
    color:#080806!important;
    -webkit-text-fill-color:#080806!important;
  }

  /* Home hero or open black menu overlay = white outline + white word. */
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:hover,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:focus,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:focus-visible,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:active,
  body.mobile-menu-is-open .site-header .mobile-open,
  body.mobile-menu-is-open .site-header .mobile-open:hover,
  body.mobile-menu-is-open .site-header .mobile-open:focus,
  body.mobile-menu-is-open .site-header .mobile-open:focus-visible,
  body.mobile-menu-is-open .site-header .mobile-open:active{
    color:#f4efe8!important;
    border-color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
    background:transparent!important;
  }
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open::before,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open::after,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:hover::before,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:hover::after,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:focus::before,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:focus::after,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:active::before,
  body.tp-home-nav-page .site-header.nav-over-hero .mobile-open:active::after,
  body.mobile-menu-is-open .site-header .mobile-open::before,
  body.mobile-menu-is-open .site-header .mobile-open::after,
  body.mobile-menu-is-open .site-header .mobile-open:hover::before,
  body.mobile-menu-is-open .site-header .mobile-open:hover::after,
  body.mobile-menu-is-open .site-header .mobile-open:focus::before,
  body.mobile-menu-is-open .site-header .mobile-open:focus::after,
  body.mobile-menu-is-open .site-header .mobile-open:active::before,
  body.mobile-menu-is-open .site-header .mobile-open:active::after{
    color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
  }

  /* Never show a filled pill during close animation. */
  .site-header .mobile-open *,
  .site-header .mobile-open::before,
  .site-header .mobile-open::after{
    box-shadow:none!important;
  }
}

/* v183: mobile hero menu color after closing fix
   Real source of truth: JS adds .tp-mobile-over-hero while the mobile header is visually over the home hero.
   This beats stale hover/focus/open/close states and keeps the menu pill white after closing the menu on hero. */
@media (max-width: 900px){
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open:hover,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open:focus,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open:focus-visible,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open:active,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open.is-open,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open.is-open:hover,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open.is-open:focus,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open.is-open:active{
    color:#f4efe8!important;
    border-color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open:hover::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open:hover::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open:focus::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open:focus::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open:active::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-mobile-over-hero .mobile-open:active::after{
    color:#f4efe8!important;
    -webkit-text-fill-color:#f4efe8!important;
  }

  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open:hover,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open:focus,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open:active{
    color:#080806!important;
    border-color:#080806!important;
    -webkit-text-fill-color:#080806!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open:hover::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open:hover::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open:focus::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open:focus::after,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open:active::before,
  body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header:not(.tp-mobile-over-hero) .mobile-open:active::after{
    color:#080806!important;
    -webkit-text-fill-color:#080806!important;
  }
}

/* v184: fade home navbar backing away before it reaches the hero.
   Keeps the existing navbar show/hide animation, but moves the light backing to
   a fading layer so it never flashes/blinks over the hero image/video. */
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header{
  background:transparent!important;
  border-bottom-color:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:none!important;
  transition:
    transform .22s cubic-bezier(.2,.7,.2,1),
    opacity .18s ease!important;
}
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  background:#f4efe8!important;
  border-bottom:1px solid rgba(8,8,6,.08)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  opacity:1!important;
  transition:none!important;
}
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header .nav,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header .nav-clean,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header .nav-blend{
  position:relative!important;
  z-index:1!important;
}
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero::before,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-hero-backing-off::before,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-scroll-hidden::before{
  opacity:0!important;
}
/* Keep the old direct backing disabled while the fading layer is in charge. */
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-scroll-visible,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-is-navigating,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-hero-backing-off{
  background:transparent!important;
  border-bottom-color:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:none!important;
}


/* v185: opaque home navbar backing + instant removal near hero.
   Fixes fast-scroll flash: no opacity fade, no blur, no transparency. */
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header::before{
  background:#f4efe8!important;
  border-bottom:1px solid rgba(8,8,6,.08)!important;
  opacity:1!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transition:none!important;
}
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero::before,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-hero-backing-off::before,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-scroll-hidden::before{
  background:transparent!important;
  border-bottom-color:transparent!important;
  opacity:0!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transition:none!important;
}
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-scroll-visible:not(.nav-over-hero):not(.tp-hero-backing-off)::before,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-is-navigating:not(.nav-over-hero):not(.tp-hero-backing-off)::before{
  background:#f4efe8!important;
  opacity:1!important;
  transition:none!important;
}


/* v186: exact navbar backing removal at the hero edge.
   The earlier v185 buffer hid the paper backing too early. This override keeps
   the backing fully opaque until the viewport top crosses into the home hero,
   then removes it instantly with no fade/flash. */
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-hero-backing-on:not(.nav-scroll-hidden)::before,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero.tp-hero-backing-on:not(.nav-scroll-hidden)::before{
  background:#f4efe8!important;
  border-bottom:1px solid rgba(8,8,6,.08)!important;
  opacity:1!important;
  transition:none!important;
}
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.tp-hero-backing-off::before,
body.tp-home-nav-page:not(.mobile-menu-is-open) .site-header.nav-over-hero.tp-hero-backing-off::before{
  background:transparent!important;
  border-bottom-color:transparent!important;
  opacity:0!important;
  transition:none!important;
}

.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

/* Deploy safety: keep the navbar wordmark geometry identical across scroll states. */
html body .site-header .brand,
html body .site-header .brand b{
  font-family:Grotesk,Arial,sans-serif!important;
  font-size:clamp(17px,1.45vw,22px)!important;
  font-weight:900!important;
  font-synthesis:weight!important;
  line-height:1!important;
  letter-spacing:.095em!important;
  -webkit-text-stroke:.32px currentColor!important;
  text-shadow:.24px 0 0 currentColor!important;
  white-space:nowrap!important;
  transform:none!important;
}
