@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#12354d;--ink:#152f42;--muted:#526775;--teal:#267d7d;--line:#dae3e8;--pale:#f2f6f8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}button{font:inherit}header{height:100px;padding:0 max(5vw,24px);display:flex;align-items:center;justify-content:space-between;background:#fff;position:relative;z-index:10;border-bottom:1px solid #e9eef1}.brand{display:flex;gap:13px;align-items:center;font-size:23px;font-weight:800;letter-spacing:2px;line-height:1.25}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:4px}.mark{font-size:54px;letter-spacing:-6px;line-height:1}.mark span{color:var(--teal)}nav{display:flex;gap:36px;align-items:center;font-size:14px;font-weight:600}a:hover{color:var(--teal)}.button{background:var(--navy);color:white;padding:16px 24px;display:inline-flex;align-items:center;justify-content:space-between;gap:25px;font-size:14px;font-weight:700;border-radius:4px;transition:background .2s}.button:hover{background:#24627b;color:white}.button span{font-size:20px}.button.small{padding:11px 20px}.menu{display:none}.hero{min-height:640px;position:relative;display:flex;align-items:center;overflow:hidden}.hero-photo{position:absolute;inset:0;background:url('assets/halifax-hero.jpg') center 58%/cover no-repeat}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 22%,rgba(255,255,255,.9) 37%,rgba(255,255,255,.5) 53%,rgba(255,255,255,0) 72%)}.hero-content{z-index:1;position:relative;margin:65px 0 60px max(5vw,24px);max-width:660px}.eyebrow{font-size:11px;letter-spacing:2.1px;font-weight:800;color:var(--teal);margin:0 0 20px}h1,h2,h3{font-family:'Manrope',Arial,sans-serif;line-height:1.2;margin:0;font-weight:800;letter-spacing:-1px}h1{font-size:clamp(39px,4.2vw,62px);line-height:1.16;letter-spacing:-2px}h1 em{font-style:normal;color:var(--teal)}.intro{font-size:18px;max-width:475px;margin:27px 0 30px;color:var(--muted);line-height:1.7}.actions{display:flex;gap:25px;align-items:center}.text-link{font-size:14px;font-weight:700;border-bottom:1px solid #bccfd7;padding-bottom:5px}.location{font-size:11px;margin-top:40px;color:#526775;letter-spacing:.3px}.location span{color:var(--teal);margin-right:6px}.sector-bar{padding:27px 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.sector-bar>span{font-size:10px;letter-spacing:1.7px;color:#687d8a;font-weight:700}.sector-bar p{margin:0;font-size:14px;font-weight:600}.sector-bar i{font-style:normal;margin:0 18px;color:#bbcad3}.section{padding:85px max(5vw,24px)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:40px}h2{font-size:clamp(30px,3vw,43px);line-height:1.25}.section-heading>p{max-width:365px;color:var(--muted);margin:0}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.services article{border-top:2px solid var(--navy);padding:30px 5px 5px}.service-icon{font-family:monospace;font-size:28px;color:var(--teal);margin-bottom:23px;height:38px}.services h3{font-size:21px;letter-spacing:-.6px}.services p{font-size:15px;color:var(--muted)}ul{padding-left:20px}.services ul{font-size:13px;color:var(--muted);line-height:2.2;margin:20px 0 25px}.services article>a,.project-copy>a{font-size:13px;font-weight:700}.work-section{background:var(--pale)}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.project{background:white;border:1px solid #e1e8ec;border-radius:5px;overflow:hidden}.project-image{height:300px;width:100%;display:block;object-fit:cover;object-position:top}.project-copy{padding:28px 30px}.project-copy h3{font-size:21px}.project-copy p{font-size:14px;color:var(--muted)}.about{display:grid;grid-template-columns:1fr 1fr;gap:90px}.about p:not(.eyebrow){font-size:15px;color:var(--muted)}.about p.large{font-size:21px;color:var(--ink);line-height:1.6;margin-top:0}.process{background:#f8fafb;border-top:1px solid var(--line);padding-top:45px;padding-bottom:50px}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:65px}.process-grid span{font-size:13px;color:var(--teal);font-weight:700;display:block;margin-bottom:14px}.process-grid h3{font-size:23px}.process-grid p{color:var(--muted);font-size:14px;margin-bottom:0}.contact{display:grid;grid-template-columns:1.2fr 1fr;gap:100px;background:var(--navy);color:white}.contact .eyebrow{color:#82cbc7}.contact h2{font-size:47px}.contact p{max-width:490px;color:#d1e0e8;font-size:15px}.contact .contact-note{font-size:12px;margin:25px 0}.light{background:white;color:var(--navy)}.contact-panel{border-left:1px solid #466377;padding:25px 0 25px 45px;align-self:center}.contact-panel h3{font-size:23px}.contact-panel ul{font-size:14px;line-height:2.3;color:#d1e0e8}footer{padding:35px 5vw;display:flex;justify-content:space-between;align-items:center;gap:25px}footer .brand{transform:scale(.8);transform-origin:left}footer p{font-size:12px;color:var(--muted);line-height:1.8}footer>a:last-child{font-size:12px}a:focus-visible,button:focus-visible{outline:3px solid #42a49f;outline-offset:5px}
@media(min-width:1600px){.section,header,footer,.sector-bar{padding-left:calc((100vw - 1440px)/2);padding-right:calc((100vw - 1440px)/2)}.hero-content{margin-left:calc((100vw - 1440px)/2)}}@media(max-width:1000px){nav{gap:22px}.hero{min-height:610px}.hero-content{max-width:590px}.sector-bar{flex-direction:column;align-items:flex-start}.about{gap:40px}.contact{gap:45px}.services{gap:22px}.services h3{font-size:19px}.actions{gap:18px}.process-grid{gap:30px}}@media(max-width:700px){header{height:82px}.brand{font-size:20px}.mark{font-size:45px}.menu{display:block;background:none;border:1px solid var(--line);padding:7px 12px;font-size:13px;border-radius:4px}nav{display:none;position:absolute;top:81px;left:0;right:0;background:white;padding:24px;box-shadow:0 10px 18px #12354d15;align-items:stretch}nav.open{display:flex;flex-direction:column;gap:19px}.hero{min-height:750px;align-items:flex-start}.hero-photo{background-position:65% bottom;background-size:auto 440px;top:300px}.hero:after{background:linear-gradient(180deg,#fff 0%,#fff 36%,rgba(255,255,255,.85) 49%,rgba(255,255,255,0) 66%)}.hero-content{margin:45px 24px 0;max-width:100%}h1{font-size:39px;letter-spacing:-1.7px}.eyebrow{font-size:9px;letter-spacing:1.5px}.intro{font-size:15px;margin:20px 0}.actions{flex-direction:column;align-items:flex-start;gap:14px}.button{font-size:12px;padding:13px 19px}.location{font-size:9px;margin-top:24px}.sector-bar{padding:24px;gap:9px}.sector-bar>span{font-size:8px}.sector-bar p{font-size:11px;line-height:2}.sector-bar i{margin:0 5px}.section{padding:55px 24px}.section-heading{display:block;margin-bottom:30px}.section-heading>p,.section-heading>a{margin-top:20px;display:block;font-size:14px}.section-heading>a{display:inline-block}h2{font-size:31px}.services,.work-grid,.about,.process-grid,.contact{grid-template-columns:1fr;gap:30px}.services article{padding-top:22px}.services h3{font-size:22px}.service-icon{margin-bottom:14px}.project-image{height:250px}.project-copy{padding:23px}.about p.large{font-size:19px}.process-grid{gap:25px}.contact h2{font-size:37px}.contact-panel{padding:25px 0 0;border-left:0;border-top:1px solid #466377}.contact-panel h3{font-size:21px}footer{flex-wrap:wrap;padding:24px;gap:5px}footer p{font-size:10px}footer>a:last-child{width:100%;text-align:right;margin-top:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Harbour palette: vivid blue, Atlantic teal and warm amber. */
:root{--teal:#087b80;--navy:#123d5b;--pale:#e9f4f8;--amber:#f5b74d}
header{border-top:4px solid #087b80}.mark span{color:#eaa73b}.button{background:#087b80;box-shadow:0 5px 16px #087b801c}.button:hover{background:#075e63}.hero:after{background:linear-gradient(90deg,#edf8fb 0%,rgba(237,248,251,.97) 20%,rgba(237,248,251,.87) 36%,rgba(237,248,251,.35) 53%,transparent 70%)}.hero-content .eyebrow{border-left:3px solid #e9ac44;padding-left:12px}.hero-content h1 em{color:#087b80}.hero .text-link{border-color:#087b80}.sector-bar{background:#123d5b;color:white;border:0}.sector-bar>span{color:#87d8d7}.sector-bar i{color:#f5b74d}.services{gap:24px}.services article{padding:30px 26px 28px;border-radius:6px;border:1px solid #d8e9ec;border-top:4px solid #087b80;background:#ecf8f7}.services article:nth-child(2){background:#edf4fc;border-color:#d9e6f5;border-top-color:#326ac0}.services article:nth-child(3){background:#fff7e9;border-color:#efdfc3;border-top-color:#d3962e}.service-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:12px;background:#087b80;color:white;font-size:25px}.services article:nth-child(2) .service-icon{background:#326ac0}.services article:nth-child(3) .service-icon{background:#926317}.services article:nth-child(2)>a{color:#2859a3}.services article:nth-child(3)>a{color:#805b16}.work-section{background:linear-gradient(125deg,#e8f4fa,#d9efef)}.work-section .eyebrow{color:#0b7279}.project{border:0;box-shadow:0 8px 25px #123d5b0c}.project-copy{border-top:4px solid #087b80}.project:nth-child(2) .project-copy{border-color:#326ac0}.about{position:relative;background:#fff}.about>div:first-child{padding-left:23px;border-left:4px solid #e9ac44;align-self:start}.process{background:#08747a;border:0;color:white}.process .eyebrow{color:#b4e9e7}.process-grid span{color:#f5c66c;font-size:23px}.process-grid p{color:#ddf2f1}.contact{background:linear-gradient(115deg,#123d5b,#18566e)}.contact .eyebrow{color:#f5c66c}.contact .light{background:#f5b74d;color:#15354b;box-shadow:none}.contact .light:hover{background:#ffd080}.contact-panel{border-color:#67959e}footer{background:#eff6f9}.location span{color:#087b80}
@media(max-width:700px){.hero:after{background:linear-gradient(180deg,#edf8fb 0%,#edf8fb 36%,rgba(237,248,251,.87) 49%,transparent 66%)}.hero{background:#edf8fb}.services article{padding:24px}.about>div:first-child{padding-left:17px}.process-grid span{margin-bottom:8px}}
.portfolio-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.portfolio-filters{display:flex;gap:10px;flex-wrap:wrap}.portfolio-filters button{border:1px solid #aecdd3;background:#ffffff80;color:#173e53;border-radius:30px;padding:10px 21px;font-size:13px;font-weight:700;cursor:pointer}.portfolio-filters button[aria-pressed=true]{background:#087b80;border-color:#087b80;color:white}#portfolio-count{font-size:12px;color:#486877;white-space:nowrap}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.portfolio-project{display:flex;flex-direction:column}.portfolio-project .project-image{height:220px}.portfolio-project .project-copy{padding:24px;display:flex;flex-direction:column;flex:1}.portfolio-project h3{font-size:20px}.project-tag{text-transform:uppercase;font-size:9px;letter-spacing:1.8px;font-weight:700;color:#087b80;display:block;margin-bottom:12px}.portfolio-project:nth-child(3n+2) .project-copy{border-color:#326ac0}.portfolio-project:nth-child(3n+3) .project-copy{border-color:#d3962e}.project-details{background:none;border:0;border-bottom:1px solid #bad0d7;color:#154e63;align-self:flex-start;padding:4px 0;font-size:12px;font-weight:700;margin-top:auto;cursor:pointer}.portfolio-more{display:flex;margin:35px auto 0;border:0;cursor:pointer}.portfolio-more[hidden]{display:none}.contact{grid-template-columns:.85fr 1.15fr;gap:60px}.contact-form{background:#fff;color:#173e53;padding:32px;border-radius:8px;box-shadow:0 12px 35px #082c3f35}.contact-form h3{font-size:25px}.contact-form p{color:#526775;font-size:12px}.contact-form .form-intro{margin:8px 0 22px}.contact-form label{display:block;font-size:12px;font-weight:600;margin-bottom:17px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form input,.contact-form select,.contact-form textarea{display:block;width:100%;margin-top:6px;border:1px solid #bdd0d8;background:#f7fafc;border-radius:4px;padding:11px 12px;color:#173e53;font:inherit;font-size:14px;line-height:1.5}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid #087b80;outline-offset:2px}.contact-form .light{border:0;background:#087b80;color:white;cursor:pointer}.contact-form .light:hover{background:#065f63}.contact-form button:disabled{opacity:.6;cursor:wait}.contact-form #form-status{margin-bottom:0;line-height:1.6}.contact-form #form-status a{text-decoration:underline;color:#08737a}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}dialog{border:0;border-radius:10px;padding:0;width:min(850px,92vw);max-height:88vh;box-shadow:0 25px 80px #082c3f50;color:#173e53}dialog::backdrop{background:#092b40bf;backdrop-filter:blur(4px)}#project-detail>img{display:block;width:100%;max-height:400px;object-fit:cover;object-position:top;background:#e9f4f8}.dialog-body{padding:32px}.dialog-body h2{font-size:31px}.dialog-body>p{font-size:15px}.dialog-body .eyebrow{font-size:10px}.project-role{font-weight:700;color:#087b80}.dialog-close{position:sticky;top:14px;margin:14px 14px -54px auto;display:block;z-index:1;border:0;background:#123d5b;color:white;border-radius:50%;width:40px;height:40px;font-size:27px;cursor:pointer}.dialog-body .project-note{font-size:12px;color:#526775}
@media(max-width:1000px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}.contact{gap:30px}.contact-form{padding:25px}.form-row{grid-template-columns:1fr;gap:0}}@media(max-width:700px){.portfolio-grid{grid-template-columns:1fr}.portfolio-toolbar{align-items:flex-start;flex-direction:column;gap:12px}.portfolio-filters{gap:7px}.portfolio-filters button{padding:8px 15px;font-size:12px}.contact{grid-template-columns:1fr}.contact-form{padding:23px}.dialog-body{padding:25px}#project-detail>img{max-height:280px}.dialog-body h2{font-size:25px}}
.about{row-gap:45px}.about-heading{position:static}.about-location{font-size:10px!important;letter-spacing:2px;margin-top:22px!important;color:#087b80!important;font-weight:700}.about-founder{display:flex;align-items:center;gap:14px;margin-top:35px}.founder-monogram{display:flex;align-items:center;justify-content:center;width:60px;height:60px;background:#e2f2f3;color:#087b80;font-family:Manrope,Arial,sans-serif;font-size:21px;font-weight:800;border-radius:50%}.about-founder strong{display:block;font-size:15px}.about-founder div>span{display:block;font-size:12px;color:#526775}.about-story h3{font-size:20px;letter-spacing:-.4px;margin-top:27px}.about-story .text-link{display:inline-block;margin-top:12px}.about-capabilities{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:30px;border-top:1px solid #d8e9ec;padding-top:35px}.about-capabilities>div{padding:24px;border-radius:6px;background:#ecf8f7}.about-capabilities>div:nth-child(2){background:#edf4fc}.about-capabilities>div:nth-child(3){background:#fff7e9}.about-capabilities h3{font-size:19px;margin-top:10px;letter-spacing:-.5px}.about-capabilities p{font-size:13px!important;margin-bottom:0}.capability-number{font-size:12px;font-weight:800;color:#087b80}.about-capabilities>div:nth-child(2) .capability-number{color:#326ac0}.about-capabilities>div:nth-child(3) .capability-number{color:#926317}.contact-form #form-status:empty{display:none}
@media(max-width:700px){.about-heading{position:static}.about-capabilities{grid-template-columns:1fr;gap:15px;padding-top:25px}.about-founder{margin-top:24px}.about-capabilities>div{padding:22px}}
/* Keep the introduction and capabilities together beside the About story. */
.about{grid-template-columns:.85fr 1.15fr;column-gap:65px;row-gap:28px;align-items:start}.about-heading{grid-column:1;grid-row:1}.about-story{grid-column:2;grid-row:1 / span 2}.about-capabilities{grid-column:1;grid-row:2;grid-template-columns:1fr;gap:14px;border-top:0;padding-top:0}.about-capabilities>div{padding:20px 24px}.about-capabilities h3{margin-top:6px}.about-capabilities p{margin-top:9px}
@media(max-width:1000px) and (min-width:701px){.about{column-gap:35px}}
@media(max-width:700px){.about{grid-template-columns:1fr;row-gap:28px}.about-heading,.about-story,.about-capabilities{grid-column:1;grid-row:auto}.about-capabilities{gap:14px}}
:root{--p-dark:#172d55;--p-primary:#2859a8;--p-secondary:#4356a0;--p-accent:#f4ce58;--p-warm:#c69a22;--p-card1:#edf3fd;--p-card2:#f0effb;--p-card3:#fff8dd;--p-section1:#edf2fc;--p-section2:#e2e8fa;--p-hero:#f0f5ff;--navy:var(--p-dark);--teal:var(--p-primary)}
header{border-top-color:var(--p-primary)}.mark span{color:var(--p-warm)}.button{background:var(--p-primary);box-shadow:none}.button:hover{background:var(--p-dark)}.hero:after{background:linear-gradient(90deg,var(--p-hero) 0%,color-mix(in srgb,var(--p-hero) 97%,transparent) 20%,color-mix(in srgb,var(--p-hero) 87%,transparent) 36%,color-mix(in srgb,var(--p-hero) 35%,transparent) 53%,transparent 70%)}.hero-content .eyebrow,.about>div:first-child{border-left-color:var(--p-warm)}.hero-content h1 em,.location span{color:var(--p-primary)}.hero .text-link{border-color:var(--p-primary)}.sector-bar{background:var(--p-dark)}.sector-bar>span{color:var(--p-accent)}.sector-bar i{color:var(--p-accent)}.services article,.about-capabilities>div{background:var(--p-card1);border-top-color:var(--p-primary)}.services article:nth-child(2),.about-capabilities>div:nth-child(2){background:var(--p-card2);border-top-color:var(--p-secondary)}.services article:nth-child(3),.about-capabilities>div:nth-child(3){background:var(--p-card3);border-top-color:var(--p-warm)}.service-icon{background:var(--p-primary)}.services article:nth-child(2) .service-icon{background:var(--p-secondary)}.services article:nth-child(3) .service-icon{background:var(--p-dark)}.services article>a,.services article:nth-child(2)>a,.services article:nth-child(3)>a,.project-details{color:var(--p-primary)}.work-section{background:linear-gradient(125deg,var(--p-section1),var(--p-section2))}.work-section .eyebrow,.project-tag,.about-location,.capability-number,.project-role{color:var(--p-primary)!important}.project-copy{border-top-color:var(--p-primary)}.project:nth-child(2) .project-copy,.portfolio-project:nth-child(3n+2) .project-copy{border-color:var(--p-secondary)}.portfolio-project:nth-child(3n+3) .project-copy{border-color:var(--p-warm)}.founder-monogram{background:var(--p-card1);color:var(--p-primary)}.about-capabilities>div:nth-child(2) .capability-number{color:var(--p-secondary)!important}.about-capabilities>div:nth-child(3) .capability-number{color:var(--p-dark)!important}.process{background:var(--p-primary)}.process .eyebrow,.process-grid p{color:white}.process-grid span{color:var(--p-accent)}.contact{background:linear-gradient(115deg,var(--p-dark),var(--p-primary))}.contact .eyebrow{color:var(--p-accent)}.contact .light{background:var(--p-accent);color:#15354b}.contact .light:hover{background:var(--p-card3);color:#15354b}.contact-form .light{background:var(--p-primary);color:white}.contact-form .light:hover{background:var(--p-dark);color:white}.contact-form #form-status a{color:var(--p-primary)}.portfolio-filters button[aria-pressed=true]{background:var(--p-primary);border-color:var(--p-primary)}.dialog-close{background:var(--p-dark)}footer{background:var(--p-hero)}a:focus-visible,button:focus-visible{outline-color:var(--p-primary)}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline-color:var(--p-primary)}
@media(max-width:700px){.hero{background:var(--p-hero)}.hero:after{background:linear-gradient(180deg,var(--p-hero) 0%,var(--p-hero) 36%,color-mix(in srgb,var(--p-hero) 87%,transparent) 49%,transparent 66%)}}
.brand-lighthouse{width:54px;height:58px;display:block;flex-shrink:0}.brand{letter-spacing:1.6px;gap:14px}.brand small{letter-spacing:1.7px}footer .brand{transform:none;font-size:20px}footer .brand-lighthouse{width:44px;height:48px}footer .brand small{font-size:8px}
@media(max-width:700px){header .brand{font-size:20px;gap:10px}header .brand-lighthouse{width:43px;height:47px}header .brand small{font-size:8px;letter-spacing:1.3px}footer .brand{font-size:18px}footer .brand-lighthouse{width:38px;height:42px}}
