@import url("palette.css");
.built-inquiry-context{padding:14px 16px;border-left:3px solid var(--merge-viridian);background:var(--merge-pale-mint);color:var(--merge-dark-green);font-size:14px;line-height:1.6;margin:0 0 22px}
/* Contact: warm photography, a forest atlas on ivory, and a light inquiry surface. */
.contact-page{--contact-cream:var(--merge-warm-gray);--contact-green:var(--merge-dark-green);--contact-text:var(--merge-web);--contact-muted:var(--merge-warm-gray);--contact-rule:color-mix(in srgb, var(--merge-pale-mint) 20%, transparent);background:var(--contact-green);color:var(--contact-text);font-size:16px;line-height:1.5}
.contact-page [hidden]{display:none!important}
.contact-page em{font-family:Fraunces,Georgia,serif;font-weight:300;color:var(--acid);letter-spacing:-.045em}
.contact-page .intro-header{position:relative;background:var(--merge-dark-green);color:var(--contact-text);mix-blend-mode:normal;padding:20px max(6vw,calc((100vw - 1440px)/2));border-bottom:1px solid color-mix(in srgb, var(--merge-web) 14.902%, transparent)}
.contact-page .intro-header .menu-toggle i{border-color:color-mix(in srgb, var(--merge-web) 43.922%, transparent)}
.contact-page .intro-header .menu-toggle:hover{color:var(--acid)}
.contact-page .brand-mark img{width:145px;height:50px;filter:grayscale(1) contrast(5);mix-blend-mode:screen}
#contact-main{position:relative;isolation:isolate}
.connect-header,.locations-section,.contact-intro,.career-line,.contact-footer{padding-left:max(6vw,calc((100vw - 1440px)/2));padding-right:max(6vw,calc((100vw - 1440px)/2))}
.contact-kicker{font-size:10px;letter-spacing:.15em;font-weight:600;color:var(--contact-muted)}
/* A photo collage and a drawn cord connect the people to the idea. */
.connect-header{position:relative;isolation:isolate;overflow:hidden;background:var(--contact-cream);color:var(--contact-green);padding-top:48px;padding-bottom:72px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);column-gap:3%;align-items:center}
.connect-header h1{position:relative;z-index:2;font-size:clamp(56px,6.2vw,96px);line-height:1.04;letter-spacing:-.065em;font-weight:400;margin:0 0 34px;text-wrap:initial}
.hero-opening{display:block;white-space:nowrap}
.connect-header h1 em{display:block;color:var(--merge-dark-green);font-size:1.08em;line-height:1.08;margin-top:8px}
.hero-matter{position:relative;display:block;width:fit-content;font-size:1.35em;line-height:1.03}
.hero-matter svg{position:absolute;width:100%;height:34%;left:0;bottom:-22%;overflow:visible;fill:none;stroke:var(--merge-warm-gray);stroke-width:7;stroke-linecap:round;z-index:-1}
.hero-matter path{stroke-dasharray:1;animation:contact-draw 1.2s .15s both}
.hero-thread{position:absolute;inset:0;width:100%;height:100%;z-index:-1;fill:none;stroke:var(--merge-dark-green);stroke-width:2;pointer-events:none}
.hero-thread path{stroke-dasharray:1;animation:contact-draw 1.5s .25s both}
.contact-portrait{position:relative;margin:0;min-width:0;width:100%;aspect-ratio:1.06;isolation:isolate}
.collage-bubble{position:absolute;inset:9% 7% 12% 9%;border-radius:48% 48% 45% 45%;background:var(--acid);transform:rotate(-12deg)}
.collage-bubble:after{content:'';position:absolute;bottom:-9%;left:20%;width:25%;height:28%;background:inherit;clip-path:polygon(0 0,100% 0,0 100%)}
.collage-orbit{position:absolute;inset:0 5% 1% 1%;border:1px solid color-mix(in srgb, var(--merge-dark-green) 53.333%, transparent);border-radius:50%;transform:rotate(-30deg) scaleX(1.04);pointer-events:none}
.portrait-main{position:absolute;left:2%;top:12%;width:87%;height:53%;object-fit:cover;object-position:50% center;border:6px solid var(--contact-cream);border-radius:10px 72px 10px 10px;transform:translate(var(--collage-x,0px),var(--collage-y,0px)) rotate(-7deg);box-shadow:0 18px 32px color-mix(in srgb, var(--merge-dark-green) 10.196%, transparent);transition:transform .3s ease-out}
.portrait-inset{position:absolute;right:1%;bottom:5%;width:60%;height:39%;object-fit:cover;border:6px solid var(--contact-cream);border-radius:10px 10px 48px 10px;transform:translate(calc(var(--collage-x,0px) * -.7),calc(var(--collage-y,0px) * -.7)) rotate(9deg);box-shadow:0 16px 30px color-mix(in srgb, var(--merge-dark-green) 14.902%, transparent);transition:transform .3s ease-out}
@keyframes contact-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.portrait-main{transform:rotate(-7deg)!important}.portrait-inset{transform:rotate(9deg)!important}}
.locations-section{--contact-text:var(--contact-green);position:relative;isolation:isolate;background:var(--merge-warm-gray);color:var(--contact-text);padding-top:32px;padding-bottom:64px;scroll-margin-top:20px}
.locations-section:before{content:'';position:absolute;inset:0;z-index:-1;opacity:.1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.5' d='M0 0h160v160H0z'/%3E%3C/svg%3E");background-size:160px}
.atlas-introduction{margin:32px 0}
.atlas-introduction>h2{font-size:clamp(28px,3.1vw,44px);line-height:1.15;letter-spacing:-.045em;font-weight:400;margin:0}
.atlas-introduction>h2 em{color:var(--merge-dark-green)}

.atlas-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:6%;align-items:center}
.map-wrap{position:relative;min-width:0}
.map-wrap svg{display:block;width:100%;height:auto;overflow:visible}
#map-status:empty{display:none}
#map-status{font-size:13px}
.map-state{fill:var(--merge-dark-green);stroke:var(--merge-gray);stroke-width:1.3;transition:fill .3s}
.map-state.is-active{fill:var(--acid)}
.map-pin{cursor:pointer;outline:none}
.map-pin .hit-target{fill:transparent}
.map-pin .pin-dot{fill:var(--merge-warm-gray);stroke:var(--merge-dark-green);stroke-width:3;transition:r .2s}
.map-pin.is-selected .pin-dot{fill:var(--acid);stroke:var(--merge-dark-green)}
.map-pin .pin-halo{fill:none;stroke:var(--acid);stroke-width:1;opacity:.7}
.map-pin:not(.is-selected) .pin-halo{opacity:0}
.map-pin text{font:500 13px Epilogue,sans-serif;fill:var(--merge-dark-green);paint-order:stroke;stroke:var(--merge-warm-gray);stroke-width:3px;stroke-linejoin:round}
.map-pin.is-selected text{font-weight:600;fill:var(--merge-dark-green)}
.map-pin:hover .pin-dot,.map-pin:focus-visible .pin-dot{r:10}
.map-pin:focus-visible .hit-target{stroke:var(--merge-dark-green);stroke-width:2}
.map-pin:focus-visible .pin-halo{opacity:1;stroke:var(--merge-warm-gray);stroke-width:3}
.office-panel{min-width:0}
.office-card{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:24px;background:var(--merge-web);border-radius:8px;color:var(--contact-green);box-shadow:0 12px 35px color-mix(in srgb, var(--merge-dark-green) 7.843%, transparent)}
.office-card:before{content:'';position:absolute;left:24px;right:24px;top:0;height:3px;background:var(--contact-green)}
.city-title-picker{position:relative;padding:4px 40px 4px 0;width:100%;cursor:pointer}
.office-card h3{font-size:clamp(30px,2.7vw,40px);font-weight:400;line-height:1.12;letter-spacing:-.06em;margin:0;pointer-events:none}
.office-card h3 em{color:var(--merge-dark-green);font-size:.7em}
.city-title-picker select{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;font-size:16px;color-scheme:light}
.city-title-picker select option{background:var(--contact-cream);color:var(--contact-green)}
.city-title-picker:focus-within{outline:2px solid var(--merge-dark-green);outline-offset:5px}
.city-select-chevron{position:absolute;right:0;top:50%;transform:translateY(-50%);width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.5;border:1px solid var(--merge-warm-gray);border-radius:50%;padding:5px;pointer-events:none}
.office-meta{min-height:24px;margin-top:8px;font-size:10px;letter-spacing:.04em}
.office-artwork{position:relative;isolation:isolate;width:100%;height:220px;margin:8px 0 0;display:flex;align-items:center;justify-content:center}
.office-artwork:before{content:'';position:absolute;z-index:-1;width:220px;height:220px;left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(ellipse at 40% 35%,color-mix(in srgb, var(--merge-warm-gray) 40%, transparent),transparent 73%);border-radius:43% 57% 62% 38% / 48% 42% 58% 52%}
#office-illustration,#office-film{height:100%;width:100%;margin:0;object-fit:contain;mix-blend-mode:multiply;mask-image:radial-gradient(ellipse 48% 55% at 50% 55%,#000 65%,transparent 97%)}
#office-film{position:absolute;inset:0;opacity:0;pointer-events:none}
#office-film.is-ready{opacity:1}
.office-artwork:has(#office-film.is-ready) #office-illustration{visibility:hidden}
.office-visit{border-top:1px solid var(--merge-warm-gray);padding-top:15px}
.visit-label{display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.08em;color:var(--merge-dark-green)}
#sample-address{font-size:10px;letter-spacing:0}
#office-address{font-size:12px;line-height:1.7;margin:9px 0 18px;min-height:41px}
.office-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto}
.office-actions a{display:flex;justify-content:center;align-items:center;gap:12px;min-height:44px;padding:10px 6px;border:1px solid var(--merge-gray);font-size:11px;border-radius:3px}
.office-actions a:focus-visible{outline:2px solid var(--merge-dark-green);outline-offset:4px}
#office-directions{background:var(--merge-dark-green);color:var(--merge-web)}
#office-directions:hover{background:var(--merge-dark-green)}
#connect-city:hover{background:var(--merge-warm-gray);color:var(--merge-dark-green)}
.contact-intro{--contact-text:var(--merge-dark-green);--contact-muted:var(--merge-dark-green);--contact-rule:color-mix(in srgb, var(--merge-dark-green) 14.902%, transparent);position:relative;isolation:isolate;background:var(--contact-cream);color:var(--contact-text);padding-top:65px;padding-bottom:65px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8%;scroll-margin-top:32px}
.contact-intro:before{content:'';position:absolute;inset:0 55% 0 0;z-index:-1;pointer-events:none;background-image:radial-gradient(color-mix(in srgb, var(--merge-dark-green) 13.333%, transparent) .7px,transparent .7px);background-size:9px 9px;mask-image:linear-gradient(90deg,#000,transparent)}
.contact-intro>*{min-width:0}

.hello-copy h2{font-size:clamp(38px,4vw,58px);line-height:1.08;letter-spacing:-.055em;font-weight:400;margin:0 0 22px}
.contact-intro em{color:var(--merge-dark-green)}
.conversation-art{margin:12px 0 0;max-width:600px;isolation:isolate}
.conversation-art img{display:block;width:100%;height:auto;aspect-ratio:1168/880;object-fit:contain}
.conversation-phone{display:block;position:relative;border-radius:18px;perspective:900px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.conversation-phone:focus-visible{outline:2px solid var(--merge-dark-green);outline-offset:6px}
.phone-scene{display:block;position:relative;transform:rotateX(var(--phone-x,0deg)) rotateY(var(--phone-y,0deg));transition:transform .22s ease-out;transform-origin:50% 65%;pointer-events:none}

.phone-rings{position:absolute;inset:12% 16% 20%;pointer-events:none}
.phone-rings:before,.phone-rings:after{content:'';position:absolute;inset:0;border:2px solid var(--merge-dark-green);border-radius:50%;opacity:0}
.conversation-phone.is-ringing img{animation:phone-ring .58s ease-in-out both;transform-origin:50% 80%}
.conversation-phone.is-ringing .phone-rings:before{animation:phone-ripple .6s ease-out both}
.conversation-phone.is-ringing .phone-rings:after{animation:phone-ripple .45s .12s ease-out both}
@keyframes phone-ring{0%,100%{transform:rotate(0)}15%,45%,75%{transform:rotate(-4deg)}30%,60%,90%{transform:rotate(4deg)}}
@keyframes phone-ripple{0%{opacity:0;transform:scale(.72)}20%{opacity:.45}100%{opacity:0;transform:scale(1.2)}}
@media(prefers-reduced-motion:reduce){.phone-scene{transform:none!important}}
.contact-intro :is(a,button,input,select,textarea):focus-visible{outline-color:var(--merge-dark-green)}
.inquiry-form{padding:28px 30px 24px;background:var(--merge-web);border:1px solid color-mix(in srgb, var(--merge-dark-green) 14.902%, transparent);scroll-margin-top:24px}
.form-heading h2{font-size:21px;font-weight:400;letter-spacing:-.035em;margin:0 0 10px}
.form-heading>span{font-size:11px;color:var(--contact-muted)}
/* Marketo retains its native fields and behavior; all presentation stays local. */
#mktoForm_1033{width:100%!important;max-width:100%;padding:0!important;margin:28px 0 0!important;font:400 16px/1.5 Epilogue,Arial,sans-serif!important;color:var(--contact-text)!important}
#mktoForm_1033 .mktoFormRow{clear:both;margin:0 0 22px}
#mktoForm_1033 :is(.mktoFormCol,.mktoFieldWrap){float:none!important;width:100%!important;min-width:0;margin:0!important}
#mktoForm_1033 :is(.mktoOffset,.mktoGutter){display:none}
#mktoForm_1033 .mktoLabel{float:none!important;display:block;width:100%!important;margin:0 0 6px;padding:0!important;font:500 12px/1.5 Epilogue,Arial,sans-serif;color:var(--contact-text)}
#mktoForm_1033 .mktoAsterix{float:none;display:none;margin-right:4px;color:var(--contact-text)}
#mktoForm_1033 .mktoRequiredField .mktoAsterix{display:inline}
#mktoForm_1033 .mktoFormRow:has(>input[type=hidden]){display:none}
#mktoForm_1033 :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea){width:100%!important;max-width:100%;height:auto!important;min-height:44px;box-shadow:none!important;border:0;border-bottom:1px solid var(--merge-gray);border-radius:0;padding:10px 0;background:transparent;font:400 16px/1.5 Epilogue,Arial,sans-serif;color:var(--contact-text)}
#mktoForm_1033 textarea{resize:vertical;min-height:110px;max-height:320px}
#mktoForm_1033 .mktoButton:focus-visible{outline:2px solid var(--merge-dark-green);outline-offset:4px}
/* Fields show focus with a heavier underline, not a box that would cover their error message. */
#mktoForm_1033 .mktoFieldWrap :is(input,select,textarea).mktoField:focus-visible{outline:none;border-bottom:2px solid var(--merge-dark-green);box-shadow:0 1px 0 var(--merge-dark-green)!important}
#mktoForm_1033 fieldset{min-width:0;width:100%!important;padding:0!important;margin:0!important;border:0!important}
#mktoForm_1033 .mktoHtmlText{width:100%!important;overflow-wrap:anywhere}
#mktoForm_1033 .mktoHtmlText,#mktoForm_1033 .mktoHtmlText span{font:400 12px/1.7 Epilogue,Arial,sans-serif!important;color:var(--contact-text)}
#mktoForm_1033 .mktoHtmlText a{text-decoration:underline}
#mktoForm_1033 .mktoButtonRow{display:block}
#mktoForm_1033 .mktoButtonWrap{display:inline-block;margin:0!important}
#mktoForm_1033 .mktoButton{min-height:48px;padding:13px 24px!important;border:0!important;border-radius:40px!important;background:var(--merge-dark-green)!important;box-shadow:none!important;color:var(--merge-warm-gray)!important;font:600 14px/1.5 Epilogue,Arial,sans-serif!important;cursor:pointer}
#mktoForm_1033 .mktoButton:hover{background:var(--merge-charcoal)!important}
#mktoForm_1033 .mktoButton:disabled{opacity:.65;cursor:wait}
/* Marketo's single floating tooltip is replaced by one inline message per invalid field (contact-form.js). */
#mktoForm_1033 .mktoError{display:none!important}
/* Invalid fields turn red: label, underline (also while focused) and message. Keyed to aria-invalid, which contact-form.js keeps current. */
#mktoForm_1033 .mktoFieldWrap:has(>.mktoField[aria-invalid=true]) .mktoLabel{color:var(--color-error)}
#mktoForm_1033 .mktoFieldWrap :is(input,select,textarea).mktoField[aria-invalid=true]{border-bottom:2px solid var(--color-error);box-shadow:0 1px 0 var(--color-error)!important}
#mktoForm_1033 .contact-field-error{margin:8px 0 0;font:500 13px/1.5 Epilogue,Arial,sans-serif;color:var(--color-error)}
#mktoForm_1033 .contact-field-error::before{content:"!";display:inline-grid;place-items:center;width:16px;height:16px;margin-right:8px;border-radius:50%;background:var(--color-error);color:#fff;font:700 11px/1 Epilogue,Arial,sans-serif;vertical-align:1px}
#form-status,#form-fallback{font-size:13px;line-height:1.6;color:var(--contact-muted);margin-top:20px}
#form-status:empty{display:none}
#form-fallback a,.inquiry-form noscript a{text-decoration:underline}
#form-confirmation{margin-top:24px;border-top:1px solid var(--merge-gray);padding-top:24px}
#form-confirmation h3{font-size:23px;letter-spacing:-.035em;margin:0 0 12px}
#form-confirmation p{font-size:15px}
.career-line{position:relative;padding-top:36px;padding-bottom:42px;display:flex;justify-content:space-between;align-items:center;gap:30px;background:var(--merge-dark-green)}
.career-line h2{font-size:clamp(24px,2.6vw,38px);letter-spacing:-.045em;font-weight:400;margin:0}
.career-line>a{font-size:12px;border-bottom:1px solid var(--merge-gray);padding:10px 0;white-space:nowrap}
.contact-footer{padding-top:32px;padding-bottom:28px;background:var(--merge-dark-green);border-top:1px solid var(--contact-rule);display:flex;align-items:center;justify-content:space-between;gap:40px}
.contact-footer>a{font-size:40px;font-weight:600;letter-spacing:-.09em;line-height:1}
.contact-footer>a span{color:var(--acid);font-size:22px;vertical-align:top;margin-left:8px}
.contact-footer>div{display:flex;gap:24px;align-items:center;font-size:10px;color:var(--contact-muted)}
@media(max-width:1000px){.atlas-layout{gap:3%;grid-template-columns:minmax(0,1fr) 300px}.office-card{padding:20px}.office-artwork{height:200px}.contact-intro{gap:5%}.inquiry-form{padding:24px 20px}.contact-footer>div{flex-wrap:wrap;gap:12px 22px}.contact-footer>div>span{width:100%}.form-actions{flex-wrap:wrap}}
@media(min-width:701px) and (max-width:900px){.atlas-layout{grid-template-columns:minmax(0,1fr) 280px;gap:20px}.map-pin text{font-size:21px}.office-card{padding:18px}.office-card h3{font-size:30px}.office-artwork{height:180px}.office-actions{grid-template-columns:1fr}.atlas-introduction>h2{font-size:30px}.contact-intro{grid-template-columns:1fr}.hello-copy{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}.hello-copy>h2{grid-column:1;align-self:center;margin:0}.conversation-art{grid-column:2;grid-row:1;margin:0;align-self:center}.inquiry-form{margin-top:32px}.form-actions{flex-wrap:nowrap}}
@media(max-width:700px){.contact-page .intro-header{padding:14px 6vw}.contact-page .brand-mark img{width:120px;height:42px}.locations-section{padding-top:24px;padding-bottom:38px}.atlas-introduction{display:block;margin:22px 0}.atlas-introduction>h2{font-size:31px}.atlas-layout{display:flex;flex-direction:column;gap:18px}.map-wrap{width:100%}.map-wrap svg{max-height:300px}.map-pin text{font-size:20px}.map-pin .hit-target{r:24}.office-panel{width:100%;max-width:440px}.office-card{padding:22px}.office-card h3{font-size:36px}.office-artwork{height:220px}.office-actions a{font-size:12px}.contact-intro{grid-template-columns:1fr;gap:30px;padding-top:36px;padding-bottom:36px}.contact-intro:before{inset:0;mask-image:linear-gradient(#000,transparent 40%)}.hello-copy h2{font-size:10vw;margin:0 0 16px}.conversation-art{max-width:460px;margin:0 auto}.inquiry-form{padding:24px 18px}.form-grid{gap:22px 16px}.career-line{display:block;padding-top:30px;padding-bottom:30px}.career-line h2{font-size:28px;margin-bottom:18px}.career-line h2 em{display:block}.career-line>a{display:inline-block}.contact-footer{align-items:flex-start;gap:30px}.contact-footer>div{font-size:9px}.form-actions{gap:16px}.contact-pill{gap:18px}}
@media(prefers-reduced-motion:reduce){.contact-page *,.contact-page *:before,.contact-page *:after{animation:none!important;transition:none!important}#office-film{display:none!important}.office-artwork:has(#office-film.is-ready) #office-illustration{visibility:visible}}

@media(max-width:1000px){.connect-header{column-gap:4%;padding-top:44px;padding-bottom:60px}.connect-header h1{font-size:6.1vw}.portrait-main,.portrait-inset{border-width:4px}.portrait-main{border-top-right-radius:48px}}
@media(max-width:700px){.connect-header{grid-template-columns:1fr;gap:20px;padding-top:42px;padding-bottom:35px}.connect-header h1{font-size:clamp(44px,11.6vw,76px);margin:0;z-index:2}.connect-header h1 em{margin-top:2px}.hero-matter{display:inline-block;font-size:1.15em}.hero-matter svg{height:27%;bottom:-17%;stroke-width:6}.contact-portrait{width:95%;max-width:470px;justify-self:center;margin-top:15px;aspect-ratio:1.18}.hero-thread{inset:38% -25% 0;width:150%;height:65%}.portrait-main{height:56%;border-top-right-radius:52px}.portrait-inset{height:40%;bottom:2%;border-bottom-right-radius:34px}}
