:root{
    --ink:#112935;
    --ink-deep:#0b1d27;
    --muted:#607178;
    --paper:#f7f6f1;
    --line:#d9e0db;
    --teal:#087d79;
    --lime:#d5e768;
    --coral:#e0785d;
    --mist:#e1ebe5;
    --white:#fff
}
*{
    box-sizing:border-box
}
html{
    scroll-behavior:smooth
}
body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:Manrope,Arial,sans-serif;
    line-height:1.6
}
/* Skip layout and paint work for sections outside the initial viewport. */
.intro-band,.section,.work-section,.contact-banner,.site-footer{
    content-visibility:auto;
    contain-intrinsic-size:auto 650px
}
a{
    color:inherit;
    text-decoration:none
}
h1,h2,h3,p{
    margin-top:0
}
h1{
    font-size:clamp(44px,5.4vw,80px);
    line-height:1.04;
    font-weight:800;
    letter-spacing:0;
    margin-bottom:25px
}
h2{
    font-size:clamp(32px,3.6vw,54px);
    line-height:1.12;
    font-weight:800;
    letter-spacing:0;
    margin-bottom:16px
}
h3{
    font-size:21px;
    line-height:1.28;
    margin-bottom:13px
}
.site-header{
    height:80px;
    padding:0 clamp(21px,6.2vw,112px);
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid var(--line);
    background:rgba(247,246,241,.97);
    position:sticky;
    top:0;
    z-index:10
}
.brand{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-weight:800;
    font-size:15px
}
.brand-mark{
    display:grid;
    place-items:center;
    width:31px;
    height:31px;
    background:var(--ink);
    color:var(--lime);
    font:700 11px 'DM Mono',monospace
}
.nav{
    display:flex;
    align-items:center;
    gap:28px;
    font-size:13px;
    font-weight:700
}
.nav a:not(.nav-cta){
    position:relative
}
.nav a:not(.nav-cta):after{
    content:'';
    display:block;
    position:absolute;
    bottom:-7px;
    width:0;
    height:1px;
    background:var(--teal);
    transition:width .2s
}
.nav a:not(.nav-cta):hover{
    color:var(--teal)
}
.nav a:not(.nav-cta):hover:after{
    width:100%
}
.nav-cta,.button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    background:var(--ink);
    color:var(--white);
    padding:13px 19px;
    font-size:13px;
    font-weight:800;
    border:0;
    border-radius:0;
    cursor:pointer
}
.nav-cta{
    padding:10px 15px
}
.button-lime{
    background:var(--lime);
    color:var(--ink)
}
.button span{
    font-size:18px;
    line-height:1
}
.nav-toggle{
    display:none;
    background:none;
    border:0;
    font:700 13px Manrope;
    color:var(--ink)
}
.hero{
    min-height:calc(100vh - 80px);
    display:grid;
    grid-template-columns:minmax(0,1.03fr) minmax(370px,.97fr);
    background:var(--ink-deep);
    color:var(--white)
}
.hero-copy{
    padding:clamp(65px,10vw,150px) clamp(24px,8vw,145px);
    display:flex;
    flex-direction:column;
    justify-content:center
}
.hero-copy h1{
    max-width:670px
}
.lede{
    font-size:17px;
    max-width:590px;
    color:inherit;
    opacity:.79
}
.eyebrow{
    font:600 11px 'DM Mono',monospace;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--teal);
    margin-bottom:18px
}
.hero .eyebrow,.contact-banner .eyebrow{
    color:var(--lime)
}
.actions{
    display:flex;
    gap:25px;
    align-items:center;
    margin-top:33px
}
.text-link{
    font-size:13px;
    font-weight:800;
    padding-bottom:4px;
    border-bottom:1px solid currentColor
}
.text-link span{
    padding-left:5px;
    color:var(--teal);
    font-size:17px
}
.hero-note{
    font:11px 'DM Mono',monospace;
    color:#9eb1b6;
    margin:58px 0 0;
    text-transform:uppercase;
    letter-spacing:.035em
}
.hero-media{
    position:relative;
    min-height:530px;
    overflow:hidden;
    background:#244652
}
.hero-media img{
    width:100%;
    height:100%;
    min-height:530px;
    display:block;
    object-fit:cover
}
.media-caption{
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    padding:18px 25px;
    background:rgba(11,29,39,.94);
    display:flex;
    gap:17px;
    align-items:center
}
.media-caption span{
    font:600 11px 'DM Mono',monospace;
    color:var(--lime)
}
.media-caption p{
    margin:0;
    font-size:12px;
    font-weight:700
}
.proof-strip{
    padding:22px clamp(21px,8vw,145px);
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:35px;
    background:var(--mist);
    border-bottom:1px solid var(--line)
}
.proof-strip p{
    margin:0;
    font-weight:800;
    font-size:13px;
    max-width:330px
}
.proof-strip div{
    display:flex;
    gap:clamp(15px,3vw,46px);
    font:600 11px 'DM Mono',monospace;
    text-transform:uppercase;
    color:var(--teal)
}
.intro-band{
    position:relative;
    padding:clamp(67px,8vw,125px) clamp(21px,14vw,250px);
    display:grid;
    grid-template-columns:170px minmax(0,1fr) auto;
    gap:30px;
    background:var(--lime)
}
.intro-band h2{
    max-width:720px
}
.intro-band div p{
    max-width:570px;
    font-size:16px;
    margin:0
}
.intro-number{
    font:700 clamp(44px,5vw,82px) 'DM Mono',monospace;
    line-height:1;
    color:rgba(17,41,53,.18)
}
.section,.work-section{
    padding:clamp(70px,9vw,135px) clamp(21px,8vw,145px)
}
.section-heading{
    display:flex;
    justify-content:space-between;
    gap:32px;
    align-items:end;
    margin-bottom:50px
}
.section-heading h2{
    max-width:650px;
    margin-bottom:0
}
.service-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-top:1px solid var(--line);
    border-left:1px solid var(--line)
}
.service-card{
    padding:27px 25px 24px;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    min-height:295px;
    display:flex;
    flex-direction:column;
    background:var(--paper);
    transition:background .2s,color .2s
}
.service-card:hover{
    background:var(--ink);
    color:white
}
.service-index{
    font:11px 'DM Mono',monospace;
    color:var(--teal);
    margin-bottom:62px
}
.service-card:hover .service-index,.service-card:hover a span{
    color:var(--lime)
}
.service-card p{
    color:var(--muted);
    font-size:13px
}
.service-card:hover p{
    color:#c3d0d1
}
.service-card a{
    font-size:13px;
    font-weight:800;
    margin-top:auto
}
.service-card a span{
    color:var(--teal);
    font-size:19px;
    padding-left:4px
}
.work-section{
    background:var(--mist)
}
.work-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px
}
.work-card{
    padding-bottom:5px
}
.work-visual{
    height:265px;
    padding:18px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    margin-bottom:19px;
    color:var(--white);
    transition:transform .25s
}
.work-card:hover .work-visual{
    transform:translateY(-5px)
}
.work-visual span{
    font:11px 'DM Mono',monospace;
    text-transform:uppercase;
    background:rgba(11,29,39,.88);
    padding:6px 8px
}
.work-visual b{
    font:600 23px 'DM Mono',monospace;
    color:rgba(255,255,255,.68)
}
.work-card>p{
    font:11px 'DM Mono',monospace;
    color:var(--teal);
    text-transform:uppercase;
    margin-bottom:8px
}
.work-card h3{
    font-size:22px
}
.work-card a{
    font-size:13px;
    font-weight:800
}
.work-card a span{
    color:var(--teal);
    padding-left:4px
}
.contact-banner{
    padding:clamp(80px,10vw,145px) 22px;
    text-align:center;
    background:var(--coral);
    color:var(--ink)
}
.contact-banner h2{
    font-size:clamp(35px,4.2vw,63px);
    margin:0 auto 30px;
    max-width:700px
}
.button-light{
    background:var(--paper);
    color:var(--ink)
}
.site-footer{
    padding:68px clamp(21px,8vw,145px) 23px;
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:35px;
    background:var(--ink-deep);
    color:var(--white)
}
.site-footer .brand-mark{
    background:var(--lime);
    color:var(--ink)
}
.site-footer p{
    font-size:13px;
    color:#b7c6c6;
    margin-top:16px;
    max-width:290px
}
.footer-links{
    display:flex;
    flex-direction:column;
    gap:9px;
    font-size:13px;
    font-weight:700
}
.footer-links a:hover{
    color:var(--lime)
}
.site-footer>div:last-of-type{
    font-size:13px;
    font-weight:700
}
.site-footer small{
    grid-column:1/-1;
    color:#81999c;
    border-top:1px solid #28424c;
    padding-top:18px;
    font-size:10px
}
.page-hero{
    padding:110px clamp(21px,16vw,270px) 87px;
    background:var(--mist);
    border-bottom:1px solid var(--line)
}
.page-hero h1{
    font-size:clamp(43px,5vw,72px);
    max-width:850px
}
.content-page{
    max-width:850px;
    padding:95px 22px;
    margin:auto
}
.rich-copy{
    font-size:17px;
    color:#31424a
}
.rich-copy p{
    margin-bottom:23px
}
.service-grid-full{
    grid-template-columns:repeat(2,1fr)
}
.work-grid-full{
    grid-template-columns:repeat(3,1fr)
}
.contact-page{
    padding:105px clamp(21px,12vw,210px);
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:100px
}
.contact-details{
    margin-top:45px;
    border-top:1px solid var(--line)
}
.contact-details p{
    display:flex;
    flex-direction:column;
    padding:15px 0;
    border-bottom:1px solid var(--line)
}
.contact-details strong{
    font:11px 'DM Mono',monospace;
    text-transform:uppercase;
    color:var(--teal)
}
.contact-form{
    background:var(--white);
    padding:34px;
    border-top:4px solid var(--teal);
    align-self:start
}
.contact-form label{
    display:block;
    font-weight:800;
    font-size:12px;
    margin-bottom:20px
}
.contact-form input,.contact-form select,.contact-form textarea{
    font:inherit;
    width:100%;
    display:block;
    border:0;
    border-bottom:1px solid var(--line);
    background:transparent;
    padding:8px 0;
    outline-color:var(--teal);
    resize:vertical
}
.form-success{
    color:var(--teal);
    font-size:14px;
    margin-top:15px
}
@media(max-width:900px){
    .hero{
        grid-template-columns:1fr
    }
    .hero-copy{
        min-height:540px
    }
    .hero-media{
        min-height:340px
    }
    .hero-media img{
        min-height:340px
    }
    .proof-strip{
        align-items:flex-start;
        flex-direction:column
    }
    .intro-band{
        grid-template-columns:1fr auto
    }
    .intro-band>.eyebrow{
        grid-column:1/-1
    }
    .service-grid{
        grid-template-columns:repeat(2,1fr)
    }
    .work-grid,.work-grid-full{
        grid-template-columns:repeat(2,1fr)
    }
    .work-card:last-child{
        grid-column:span 2
    }
    .contact-page{
        grid-template-columns:1fr;
        gap:50px
    }
}
@media(max-width:620px){
    h1{
        font-size:44px
    }
    .site-header{
        height:70px
    }
    .nav-toggle{
        display:block
    }
    .nav{
        display:none;
        position:absolute;
        top:69px;
        left:0;
        right:0;
        padding:20px 21px;
        background:var(--paper);
        border-bottom:1px solid var(--line);
        flex-direction:column;
        align-items:flex-start
    }
    .nav.open{
        display:flex
    }
    .hero{
        min-height:0
    }
    .hero-copy{
        min-height:505px;
        padding:62px 22px
    }
    .hero-media,.hero-media img{
        min-height:300px
    }
    .hero-note{
        margin-top:38px;
        font-size:10px
    }
    .proof-strip{
        padding-block:19px;
        gap:14px
    }
    .proof-strip div{
        gap:14px;
        flex-wrap:wrap;
        font-size:10px
    }
    .intro-band{
        padding:64px 22px;
        grid-template-columns:1fr
    }
    .intro-number{
        display:none
    }
    .section,.work-section{
        padding:72px 22px
    }
    .section-heading{
        align-items:flex-start;
        flex-direction:column;
        margin-bottom:35px
    }
    .service-grid,.service-grid-full{
        grid-template-columns:1fr
    }
    .service-card{
        min-height:235px
    }
    .service-index{
        margin-bottom:39px
    }
    .work-grid,.work-grid-full{
        grid-template-columns:1fr
    }
    .work-card:last-child{
        grid-column:auto
    }
    .work-visual{
        height:230px
    }
    .site-footer{
        grid-template-columns:1fr;
        padding-top:52px
    }
    .contact-page{
        padding:72px 22px
    }
    .page-hero{
        padding:72px 22px
    }
    .content-page{
        padding:65px 22px
    }
    .actions{
        gap:18px;
        flex-wrap:wrap
    }
}
